/** * Main function - starts ThreadX * Called from the crt0 _start function * */ int main( void ) { #if defined ( __IAR_SYSTEMS_ICC__ ) /* IAR allows init functions in __low_level_init(), but it is run before global * variables have been initialised, so the following init still needs to be done * When using GCC, this is done in crt0_GCC.c */ init_architecture( ); init_platform( ); #endif /* #elif defined ( __IAR_SYSTEMS_ICC__ ) */ #ifndef WICED_DISABLE_WATCHDOG /* Start the watchdog kicking thread */ xTaskCreate( system_monitor_thread_main, (signed char*)"system monitor", SYSTEM_MONITOR_THREAD_STACK_SIZE/sizeof( portSTACK_TYPE ), NULL, RTOS_HIGHEST_PRIORITY, &system_monitor_thread_handle); #endif /* WICED_DISABLE_WATCHDOG */ /* Create an initial thread */ xTaskCreate( application_thread_main, (signed char*)"app_thread", APPLICATION_STACK_SIZE/sizeof( portSTACK_TYPE ), NULL, WICED_PRIORITY_TO_NATIVE_PRIORITY(WICED_APPLICATION_PRIORITY), &app_thread_handle); #ifdef __GNUC__ { wiced_result_t result; result = wiced_freertos_init_malloc_mutex(); wiced_assert( "Unable t create a freertos malloc mutex", result == WICED_SUCCESS ); (void) result; } #endif /* ifdef __GNUC__ */ /* Start the FreeRTOS scheduler - this call should never return */ vTaskStartScheduler( ); /* Should never get here, unless there is an error in vTaskStartScheduler */ return 0; }
int main(void) { //mico_logic_partition_t *partition; init_clocks(); init_memory(); init_architecture(); init_platform_bootloader(); mico_set_bootload_ver(); //update(); enable_protection(); #ifdef MICO_ENABLE_STDIO_TO_BOOT if (stdio_break_in() == 1) goto BOOT; #endif if( MicoShouldEnterBootloader() == false ) bootloader_start_app( (MicoFlashGetInfo(MICO_PARTITION_APPLICATION))->partition_start_addr ); /*else if( MicoShouldEnterMFGMode() == true ) bootloader_start_app( (MicoFlashGetInfo(MICO_PARTITION_APPLICATION))->partition_start_addr ); else if( MicoShouldEnterATEMode() ){ partition = MicoFlashGetInfo( MICO_PARTITION_ATE ); if (partition->partition_owner != MICO_FLASH_NONE) { bootloader_start_app( partition->partition_start_addr ); } }*/ #ifdef MICO_ENABLE_STDIO_TO_BOOT BOOT: #endif _mount(); printf ( menu, MODEL, Bootloader_REVISION, HARDWARE_REVISION ); while(1){ Main_Menu (); } }