我正在使用 FreeRTOS ,我想使用我制作的mac协议!
在单个任务上,我想Send_Beacon()
功能(发送信标帧)。
当我在任务中调用该函数时,存在堆栈溢出。
void vApplicationStackOverflowHook(TaskHandle_t pxTask, char *pcTaskName)
调用vApplicationStackOverflowHook。
if (xTaskCreate(MAC_Init, (signed portCHAR *)"MAC_Inits", 128, NULL, 3,
NULL) == pdTRUE) {
//GPIOPinWrite(GPIO_C_BASE,GPIO_PIN_3,GPIO_PIN_3);
}
我曾尝试将堆叠深度参数从128更改为1600。
失败了。
有什么问题?
堆栈深度参数的值不是问题吗?
答案 0 :(得分:0)
请记住,堆栈大小是以单词而非字节指定的。请参阅xTaskCreate()和xTaskCreateStatic()函数的文档。
如果您正在使用xTaskCreate(),并且在增加其堆栈大小后无法创建任务,那么您的FreeRTOS heap用完了(该链接告诉您如何处理它)。