首页 新闻 搜索 专区 学院

uCOSII关于申请栈的疑问

0
悬赏园豆:5 [待解决问题]

在一个APP.c中(win32下的),我定义了任务的栈的大小:

#define  TASK_STK_SIZE    128

 

之后在该任务执行时,打印这个栈的首地址和尾地址:

printf("AppStk_1[0]=%p,AppStk_1[TASK_STK_SIZE-1]=%p\n",&AppStk_one[0],&AppStk_one[TASK_STK_SIZE-1]);

 

结果得到:

AppStk_1[0]=002DCC20

AppStk_1[TASK_STK_SIZE-1]=002DCD1E

也就是说这个空间大小为255,是128的2倍减1。

 

换用较小的值(如size为64),也是这样的2倍减1关系,这是为什么?

modempolia的主页 modempolia | 初学一级 | 园豆:197
提问于:2013-11-27 09:53
< >
分享
所有回答(1)
0

跟App_Stk的类型有没有关系,确定下类型看看

robert_cai | 园豆:202 (菜鸟二级) | 2013-11-27 10:06

果然,OS_STK是uint16型的,难怪~~

支持(0) 反对(0) modempolia | 园豆:197 (初学一级) | 2013-11-29 11:40
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册