ICARUS OS (Intelligent Cooperative Architecture for Real-time Unified Systems) 0.1.0
Preemptive Real-Time Operating System for ARM Cortex-M7
Loading...
Searching...
No Matches
main.c
Go to the documentation of this file.
1
30#include "main.h"
31#include "interactive_tasks.h"
32#include "game/game.h"
33#include "showcase_tasks.h"
34
35/* ============================================================================
36 * CONFIGURATION
37 * ========================================================================= */
38
43#define ENABLE_STRESS_TEST 0
44
49#define ENABLE_DEMO_TASKS 0
50
55#define ENABLE_INTERACTIVE 0
56
61#define ENABLE_GAME 1
62
69#define ENABLE_SHOWCASE 0
70
72#define ANSI_SHOW_CURSOR() printf("\033[?25h")
73
74/* ============================================================================
75 * MAIN ENTRY POINT
76 * ========================================================================= */
77
97int main(void)
98{
99 hal_init();
100
101 os_init();
102
103#if ENABLE_DEMO_TASKS
104 demo_tasks_init();
105#endif
106
107#if ENABLE_STRESS_TEST
108 stress_test_init();
109#endif
110
111#if ENABLE_INTERACTIVE
112 interactive_tasks_init();
113#endif
114
115#if ENABLE_GAME
116 game_init();
117#endif
118
119#if ENABLE_SHOWCASE
120 showcase_tasks_init();
121#endif
122
123 os_start();
124
125 /* Error path: restore cursor before error message */
127 printf("ERROR: Should not be here\r\n");
128 while (1) {
129 LED_Blink(50, 900);
130 }
131}
void os_start(void)
Start the ICARUS scheduler.
Definition svc.c:502
void os_init(void)
Initialize the ICARUS kernel.
Definition svc.c:501
void LED_Blink(uint32_t on_ticks, uint32_t off_ticks)
Blink LED with specified timing.
#define ANSI_SHOW_CURSOR()
ANSI escape code to show cursor (used in error path)
Definition main.c:72
int main(void)
Application entry point.
Definition main.c:97
void hal_init(void)
Initialize all hardware abstraction layer components.