jorya_txj 发表于 2014-9-26 10:25
这两种方法都是处于任务未切换的时候,切换了检查就没意义了。假设任务1即将切换到任务2,这个时候检查的 ...
第 一种检查的是栈空间的最底地址是否已经有数据被写过。。。。。写过,那肯定是溢出了。。
第二种检查的是当前任务的栈指针是否低于本任务栈空间的最低地址。。。。低于肯定溢出了。。这个理论是懂了。
但是代码:
if ((PORT_STACK *)(raw_task_active->task_stack) < task_stack_start) {
RAW_ASSERT(0);
}
raw_task_active->task_stack 这个变量是当前任务的栈指针,这个值是实时变化的?实时的指向系统的栈指针的吗。?