1. 程式人生 > >TI-RTOS Sys-Bios作業系統:task棧溢位檢測方法

TI-RTOS Sys-Bios作業系統:task棧溢位檢測方法

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);
}