/** * @brief Erase the whole flash chip and create the file system * @return 0 if successful, -1 if not */ int32_t PIOS_FLASHFS_Format() { if(PIOS_Flash_W25X_EraseChip() != 0) return -1; if(PIOS_FLASHFS_ClearObjectTableHeader() != 0) return -1; return 0; }
/** * OpenPilot Main function: * * Initialize PiOS<BR> * Create the "System" task (SystemModInitializein Modules/System/systemmod.c) <BR> * Start FreeRTOS Scheduler (vTaskStartScheduler) (Now handled by caller) * If something goes wrong, blink LED1 and LED2 every 100ms * */ int main() { /* NOTE: Do NOT modify the following start-up sequence */ /* Any new initialization functions should be added in OpenPilotInit() */ /* Brings up System using CMSIS functions, enables the LEDs. */ PIOS_SYS_Init(); /* Architecture dependant Hardware and * core subsystem initialisation * (see pios_board.c for your arch) * */ PIOS_Board_Init(); #ifdef ERASE_FLASH PIOS_Flash_W25X_EraseChip(); #if defined(PIOS_LED_HEARTBEAT) PIOS_LED_Off(PIOS_LED_HEARTBEAT); #endif /* PIOS_LED_HEARTBEAT */ while (1) ; #endif /* Initialize modules */ MODULE_INITIALISE_ALL /* swap the stack to use the IRQ stack */ Stack_Change(); /* Start the FreeRTOS scheduler which should never returns.*/ vTaskStartScheduler(); /* If all is well we will never reach here as the scheduler will now be running. */ /* Do some indication to user that something bad just happened */ while (1) { #if defined(PIOS_LED_HEARTBEAT) PIOS_LED_Toggle(PIOS_LED_HEARTBEAT); #endif /* PIOS_LED_HEARTBEAT */ PIOS_DELAY_WaitmS(100); } return 0; }