startup: Add assertion checks around various initialisation sequences

These may fail if close to 192KB of static RAM is allocated (remaining early heap RAM is too small.)
This commit is contained in:
Angus Gratton 2017-07-12 11:33:51 +08:00 committed by Angus Gratton
parent 2b0f623259
commit 99fe61716c
5 changed files with 11 additions and 7 deletions

View file

@ -289,9 +289,10 @@ void start_cpu0_default(void)
esp_core_dump_init();
#endif
xTaskCreatePinnedToCore(&main_task, "main",
ESP_TASK_MAIN_STACK, NULL,
ESP_TASK_MAIN_PRIO, NULL, 0);
portBASE_TYPE res = xTaskCreatePinnedToCore(&main_task, "main",
ESP_TASK_MAIN_STACK, NULL,
ESP_TASK_MAIN_PRIO, NULL, 0);
assert(res == pdTRUE);
ESP_LOGI(TAG, "Starting scheduler on PRO CPU.");
vTaskStartScheduler();
abort(); /* Only get to here if not enough free heap to start scheduler */

View file

@ -173,7 +173,8 @@ static void dport_access_init_core(void *arg)
/* Defer initialisation until after scheduler is running */
void esp_dport_access_int_init(void)
{
xTaskCreatePinnedToCore(&dport_access_init_core, "dport", configMINIMAL_STACK_SIZE, NULL, 5, NULL, xPortGetCoreID());
portBASE_TYPE res = xTaskCreatePinnedToCore(&dport_access_init_core, "dport", configMINIMAL_STACK_SIZE, NULL, 5, NULL, xPortGetCoreID());
assert(res == pdTRUE);
}
void esp_dport_access_int_deinit(void)

View file

@ -80,8 +80,9 @@ void esp_ipc_init()
const char* task_names[2] = {"ipc0", "ipc1"};
for (int i = 0; i < portNUM_PROCESSORS; ++i) {
s_ipc_sem[i] = xSemaphoreCreateBinary();
xTaskCreatePinnedToCore(ipc_task, task_names[i], CONFIG_IPC_TASK_STACK_SIZE, (void*) i,
configMAX_PRIORITIES - 1, &s_ipc_tasks[i], i);
portBASE_TYPE res = xTaskCreatePinnedToCore(ipc_task, task_names[i], CONFIG_IPC_TASK_STACK_SIZE, (void*) i,
configMAX_PRIORITIES - 1, &s_ipc_tasks[i], i);
assert(res == pdTRUE);
}
}

View file

@ -202,7 +202,7 @@ void esp_task_wdt_init() {
#if CONFIG_TASK_WDT_CHECK_IDLE_TASK
esp_register_freertos_idle_hook(idle_hook);
#endif
esp_intr_alloc(ETS_TG0_WDT_LEVEL_INTR_SOURCE, 0, task_wdt_isr, NULL, NULL);
ESP_ERROR_CHECK( esp_intr_alloc(ETS_TG0_WDT_LEVEL_INTR_SOURCE, 0, task_wdt_isr, NULL, NULL) );
}

View file

@ -48,6 +48,7 @@ static volatile int s_flash_op_cpu = -1;
void spi_flash_init_lock()
{
s_flash_op_mutex = xSemaphoreCreateMutex();
assert(s_flash_op_mutex != NULL);
}
void spi_flash_op_lock()