/* Board */ #include "board.h" #include "clock_config.h" #include "peripherals.h" #include "pin_mux.h" /* ThreadX */ #include "tx_api.h" /* App */ #include "app_init.h" extern void *__HeapLimit; extern void *_tx_initialize_unused_memory; extern void _tx_timer_interrupt(void); void tx_application_define(void *first_unused_memory) { tx_thread_create(&app_init_thread_id, "INIT", app_init_thread, 0, first_unused_memory, 1024, 3, 3, TX_NO_TIME_SLICE, TX_AUTO_START); } void _tx_initialize_low_level(void) { const uint32_t primask = DisableGlobalIRQ(); _tx_initialize_unused_memory = (void *)&__HeapLimit; DWT->CTRL |= DWT_CTRL_CYCCNTENA_Msk; SysTick_Config(CLOCK_GetCoreSysClkFreq() / TX_TIMER_TICKS_PER_SECOND); NVIC_SetPriority(SVCall_IRQn, 7); NVIC_SetPriority(PendSV_IRQn, 7); NVIC_SetPriority(SysTick_IRQn, 6); EnableGlobalIRQ(primask); } void SysTick_Handler(void) { _tx_timer_interrupt(); } int main(void) { BOARD_InitBootPins(); BOARD_InitBootClocks(); BOARD_InitBootPeripherals(); BOARD_InitDebugConsole(); tx_kernel_enter(); for (;;) { __WFI(); } }