ошибка где-то в heap2.c
Отладчик показал, что вылетает HardFault_Handler
при первом вызове
Код
void *pvPortMalloc( size_t xWantedSize )
{
BlockLink_t *pxBlock, *pxPreviousBlock, *pxNewBlockLink;
static BaseType_t xHeapHasBeenInitialised = pdFALSE;
void *pvReturn = NULL;
vTaskSuspendAll();
{
/* If this is the first call to malloc then the heap will require
initialisation to setup the list of free blocks. */
if( xHeapHasBeenInitialised == pdFALSE )
{
prvHeapInit();
xHeapHasBeenInitialised = pdTRUE;
}
...
xHeapHasBeenInitialised равно произвольному числу, почти при каждом запуске число новое.
а не pdFALSE == 0
Код
#define pdFALSE ( ( BaseType_t ) 0 )
Почему эта переменная не инициируется как 0?
При использовании
heap1.c
heap4.c
тоже вылетают похожие ошибки.
Эскизы прикрепленных изображений