16static uint16_t critical_nesting_count = (uint16_t)0u;
23 port_disable_interrupts
24 critical_nesting_count++;
32 core_assert(critical_nesting_count,
"NESTING CRITICAL UNBALANCED");
33 critical_nesting_count--;
34 if (critical_nesting_count == 0)
36 port_enable_interrupts
Build-time configuration macros for AK-mOS.
void akos_core_run(void)
Start scheduler and switch to the first task.
void akos_core_init(void)
Initialize kernel modules.
void akos_core_exit_critical(void)
Exit nested critical section.
void akos_core_enter_critical(void)
Enter nested critical section.
Kernel control and critical-section API.
void akos_port_start_first_task(void)
Start the first thread by restoring the initial exception context.
void akos_port_systick_init_freq(uint32_t cpu_freq)
Initialize SysTick to generate 1ms OS ticks.
Logging and assertion macro definitions.
Message object and message queue APIs.
void akos_message_init(void)
Initialize global message pool.
Priority bitmap scheduler helpers.
void akos_priority_init(void)
Initialize priority table.
Thread scheduling and thread messaging APIs.
void akos_thread_register_static_threads(void)
Create all statically defined threads and kernel internal threads.
void akos_thread_start(void)
Start scheduler state.
void akos_timer_init(void)
Initialize timer module.