44 void (*pf_task)(
void *),
47#define port_disable_interrupts { __asm inline("CPSID I \n"); }
48#define port_enable_interrupts { __asm inline("CPSIE I \n"); }
51#define port_setup_PendSV() (*(uint32_t volatile *)0xE000ED20 |= (0xFFU << 16))
52#define port_trigger_PendSV() (*(uint32_t volatile *)0xE000ED04 = (1U << 28))
54#define port_SVCHandler SVC_Handler
55#define port_PendSVHandler PendSV_Handler
56#define port_SysTickHandler SysTick_Handler
uint32_t * akos_port_task_stack_init(uint32_t *p_stack, size_t stack_size, void(*pf_task)(void *), void *p_arg)
Build the initial Cortex-M thread stack frame.
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)
Configure SysTick to generate 1ms OS ticks.