freertos的钩子函数

在main中添加:

/**

 * @brief FreeRTOS 内存分配失败钩子函数

 */

void vApplicationMallocFailedHook(void)

{

    taskDISABLE_INTERRUPTS();

    printf("Malloc Failed Hook ");

    for(;;);

}

/**

 * @brief FreeRTOS 栈溢出钩子函数

 */

void vApplicationStackOverflowHook(TaskHandle_t pxTask, char *pcTaskName)

{

    (void) pxTask;

    printf("Stack Overflow Hook ");

    for(;;);

}

在FreeRTOSConfig.h中添加

//add by mxx

#define configCHECK_FOR_STACK_OVERFLOW           1

#define configUSE_MALLOC_FAILED_HOOK             1

在回调函数中添加中断点,运行

程序奔溃,一直在

原因是内存不够用

由0x400改为0x800,

同时把configTOTAL_HEAP_SIZE变大

原文地址:https://www.cnblogs.com/maxpak/p/8308640.html