这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » AXD,OS,II AXD下查看μC/OS-II任务堆栈的方法

共2条 1/1 1 跳转至

AXD,OS,II AXD下查看μC/OS-II任务堆栈的方法

院士
2006-09-17 18:14:16     打赏
AXD,OS,II AXD下查看μC/OS-II任务堆栈的方法



关键词: 查看     OS-II     任务     堆栈     方法    

院士
2006-12-22 22:43:00     打赏
2楼
问 μC/OS-II中每个任务的堆栈使用情况,除了可以OSTaskStkChk来观察外,我尝试着从AXD里观察,但是不知道这样是不是正确,请大家指正。

方法是:
AXD中通过JTAG下载完IMAGE后,在Processor Views -> Variables -> Globles 中去查看在源程序中定义的任务堆栈,再把它们分别展开。可以看到其中共有你所定义的堆栈数个单元,每个值都是0x00000000,运行程序足够时间,暂停,然后观察,刚才展开的单元,可以看到有的值改变,变成红颜色了。去查这些改变了的值的个数,我觉得就是你的程序运行时,相应任务所使用的堆栈。

举例如下:

在一个程序里,有一个TaskBeep的任务,定义该任务的堆栈如下:
#define TaskBeepStkSize     64
OS_STK  TaskBeepStk     [TaskBeepStkSize];

按照上面的步骤,在AXD里查看TaskBeepStk的值如下图:
  
可以数出变化了的变量数为19,则在本次系统运行中TaskBeep所使用的堆栈就是19,可依此重设该任务的堆栈大小,不知这种方法观察出的堆栈大小是准确的吗?
1: AXD下查看任务堆栈的图 2: 不知道KEIL有没有这个功能…………

共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]