TI-RTOS Sys-Bios作業系統:task棧溢位檢測方法
阿新 • • 發佈:2019-01-22
1. 示例程式碼
Task_Stat statbuf; /* declare buffer */
Task_stat(Task_self(), &statbuf); /* call func to get status */
if (statbuf.used > (statbuf.stackSize * 9 / 10)) {
System_printf("Over 90% of task's stack is in use.\n");
}
2. 改進程式碼
#define STACK_ALARM_USAGE 0.9 Task_Stat statbuf; /* declare buffer */ Task_stat(Task_self(), &statbuf); /* call func to get status */ if (statbuf.used > (statbuf.stackSize * STACK_ALARM_USAGE)) { System_printf("Over %d% of task's stack is in use.\n", STACK_ALARM_USAGE*100); }