Compiler generate wrong binary file
Posted: Fri Oct 06, 2023 5:00 pm
Hello
I am new to the ESP32 platform, but I have a lot of experience with other microcontrollers. I use VisualStudio2022 and VisualGDB as IDE. I'm trying to make a binary file to download to the ESP32C3 using the OTA bootloader. I took a simple blink example, and it doesn't work. I looked at the resulting blink.bin file. It seems that the file I get is not a pure bin file. I opened the file with a text editor and I see some things related to the project. How do I get a clean bin file???
Below is a part of the bin file that contains some information about the project and directories.
0UL //IDF/components/freertos/FreeRTOS-Kernel/portable/riscv/port.c ***ERROR*** A stack overflow in task has been detected. [0;32mI (%lu) %s: Starting scheduler. [0m
_prvTaskExitError esp_task_wdt_init(&twdt_config) /IDF/components/freertos/FreeRTOS-Kernel/portable/port_common.c main res == pdTRUE //IDF/components/freertos/FreeRTOS-Kernel/portable/port_common.c pxTCBBufferTemp != NULL pxStackBufferTemp != NULL vApplicationGetIdleTaskMemory main_task esp_startup_start_app_common esp_intr_alloc(ETS_SYSTIMER_TARGET0_EDGE_INTR_SOURCE + cpuid, ESP_INTR_FLAG_IRAM | level, SysTickIsrHandler, &systimer_hal, NULL) /IDF/components/freertos/FreeRTOS-Kernel/portable/port_systick.c vPortSetupTimer pxQueueSetContainer //IDF/components/freertos/FreeRTOS-Kernel/queue.c pxQueueSetContainer->uxMessagesWaiting < pxQueueSetContainer->uxLength pxQueue uxQueueLength > ( UBaseType_t ) 0 pxStaticQueue != ((void *)0) !( ( pucQueueStorage != ((void *)0) ) && ( uxItemSize == 0 ) ) !( ( pucQueueStorage == ((void *)0) ) && ( uxItemSize != 0 ) ) xSize == sizeof( Queue_t ) ( uxItemSize == 0 ) || ( uxQueueLength == ( xQueueSizeInBytes / uxItemSize ) ) ( sizeof( Queue_t ) + xQueueSizeInBytes ) > xQueueSizeInBytes !( ( pvItemToQueue == ((void *)0) ) && ( pxQueue->uxItemSize != ( UBaseType_t ) 0U ) ) !( ( xCopyPosition == ( ( BaseType_t ) 2 ) ) && ( pxQueue->uxLength != 1 ) ) !( ( xTaskGetSchedulerState() == ( ( BaseType_t ) 0 ) ) && ( xTicksToWait != 0 ) ) pxQueue->pcHead != ((void *)0) || pxQueue->u.xSemaphore.xMutexHolder == ((void *)0) || pxQueue->u.xSemaphore.xMutexHolder == xTaskGetCurrentTaskHandle() pxMutex pxQueue->uxItemSize == 0 !( ( pxQueue->pcHead == ((void *)0) ) && ( pxQueue->u.xSemaphore.xMutexHolder != ((void *)0) ) ) ( pxQueue ) !( ( ( pvBuffer ) == ((void *)0) ) && ( ( pxQueue )->uxItemSize != ( UBaseType_t ) 0U ) ) xInheritanceOccurred == ( ( BaseType_t ) 0 ) !( ( pvBuffer == ((void *)0) ) && ( pxQueue->uxItemSize != ( UBaseType_t ) 0U )
I am new to the ESP32 platform, but I have a lot of experience with other microcontrollers. I use VisualStudio2022 and VisualGDB as IDE. I'm trying to make a binary file to download to the ESP32C3 using the OTA bootloader. I took a simple blink example, and it doesn't work. I looked at the resulting blink.bin file. It seems that the file I get is not a pure bin file. I opened the file with a text editor and I see some things related to the project. How do I get a clean bin file???
Below is a part of the bin file that contains some information about the project and directories.
0UL //IDF/components/freertos/FreeRTOS-Kernel/portable/riscv/port.c ***ERROR*** A stack overflow in task has been detected. [0;32mI (%lu) %s: Starting scheduler. [0m
_prvTaskExitError esp_task_wdt_init(&twdt_config) /IDF/components/freertos/FreeRTOS-Kernel/portable/port_common.c main res == pdTRUE //IDF/components/freertos/FreeRTOS-Kernel/portable/port_common.c pxTCBBufferTemp != NULL pxStackBufferTemp != NULL vApplicationGetIdleTaskMemory main_task esp_startup_start_app_common esp_intr_alloc(ETS_SYSTIMER_TARGET0_EDGE_INTR_SOURCE + cpuid, ESP_INTR_FLAG_IRAM | level, SysTickIsrHandler, &systimer_hal, NULL) /IDF/components/freertos/FreeRTOS-Kernel/portable/port_systick.c vPortSetupTimer pxQueueSetContainer //IDF/components/freertos/FreeRTOS-Kernel/queue.c pxQueueSetContainer->uxMessagesWaiting < pxQueueSetContainer->uxLength pxQueue uxQueueLength > ( UBaseType_t ) 0 pxStaticQueue != ((void *)0) !( ( pucQueueStorage != ((void *)0) ) && ( uxItemSize == 0 ) ) !( ( pucQueueStorage == ((void *)0) ) && ( uxItemSize != 0 ) ) xSize == sizeof( Queue_t ) ( uxItemSize == 0 ) || ( uxQueueLength == ( xQueueSizeInBytes / uxItemSize ) ) ( sizeof( Queue_t ) + xQueueSizeInBytes ) > xQueueSizeInBytes !( ( pvItemToQueue == ((void *)0) ) && ( pxQueue->uxItemSize != ( UBaseType_t ) 0U ) ) !( ( xCopyPosition == ( ( BaseType_t ) 2 ) ) && ( pxQueue->uxLength != 1 ) ) !( ( xTaskGetSchedulerState() == ( ( BaseType_t ) 0 ) ) && ( xTicksToWait != 0 ) ) pxQueue->pcHead != ((void *)0) || pxQueue->u.xSemaphore.xMutexHolder == ((void *)0) || pxQueue->u.xSemaphore.xMutexHolder == xTaskGetCurrentTaskHandle() pxMutex pxQueue->uxItemSize == 0 !( ( pxQueue->pcHead == ((void *)0) ) && ( pxQueue->u.xSemaphore.xMutexHolder != ((void *)0) ) ) ( pxQueue ) !( ( ( pvBuffer ) == ((void *)0) ) && ( ( pxQueue )->uxItemSize != ( UBaseType_t ) 0U ) ) xInheritanceOccurred == ( ( BaseType_t ) 0 ) !( ( pvBuffer == ((void *)0) ) && ( pxQueue->uxItemSize != ( UBaseType_t ) 0U )