kopia lustrzana https://github.com/espressif/esp-idf
freertos: Fix crash when waking task on CPU1 with scheduler disabled
xPendingReadyList[1] was never initialised correctly, so if a task is added to this list (ie by xSemaphoreGiveFromISR() or similar) while scheduler is disabled, then it causes a null pointer dereference. Bug produces stack traces similar to: 0x40086e87: vListInsertEnd at /home/gus/esp/32/idf/components/freertos/./list.c:130 0x40084ba3: xTaskRemoveFromEventList at /home/gus/esp/32/idf/components/freertos/./tasks.c:3439 0x40083c54: xQueueGiveFromISR at /home/gus/esp/32/idf/components/freertos/./queue.c:2034 0x400f50a0: timer_group0_isr at /home/gus/esp/32/idf/components/freertos/test/./test_suspend_scheduler.c:27 0x40081d7d: _xt_lowint1 at xtensa_vectors.o:?pull/669/merge
rodzic
f40ae10a5d
commit
b9fc5ecf68
|
@ -3508,7 +3508,10 @@ UBaseType_t uxPriority;
|
|||
|
||||
vListInitialise( &xDelayedTaskList1 );
|
||||
vListInitialise( &xDelayedTaskList2 );
|
||||
vListInitialise( &xPendingReadyList[ xPortGetCoreID() ] );
|
||||
vListInitialise( &xPendingReadyList[ 0 ] );
|
||||
if (portNUM_PROCESSORS == 2) {
|
||||
vListInitialise( &xPendingReadyList[ 1 ] );
|
||||
}
|
||||
|
||||
#if ( INCLUDE_vTaskDelete == 1 )
|
||||
{
|
||||
|
|
Ładowanie…
Reference in New Issue