打印

移植UCOS-II时堆栈增长方向的疑问?

[复制链接]
4668|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
499734424|  楼主 | 2011-10-29 16:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在文件OS_CPU.H
中,通过定义#define  OS_STK_GROWTH  的值来确定栈增长方向。

但是问题来了
参考网上大家移植到AVR单片机时,写的是
#define  OS_STK_GROWTH      1
然后看任哲老师编剧的《嵌入式实时操作系统UCOS-II原理及其应用》(第2版)
P207——在51单片机上移植写的也是
#define  OS_STK_GROWTH      1

但是AVR的堆栈是向下增长
51单片机的堆栈是 向上增长

定义的值怎么会一样呢?

相关帖子

沙发
airwill| | 2011-10-29 18:33 | 只看该作者
如果堆栈从内存高地址向低地址方向增长, 常量 OS_STK_GROWTH 应设为 1, 这在 OS 里是很明确的

51单片机的堆栈是 向上增长的,不应该设为1。
但是 由于 51 内部的RAM 太小, ucos51 使用外部 xdata 模拟 stack。采用向下方式处理任务栈。
所以, OS_STK_GROWTH   应该为   1

使用特权

评论回复
板凳
499734424|  楼主 | 2011-11-18 18:52 | 只看该作者

然来如此
都忘了结贴了:dizzy:

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:开始学习中~

5

主题

434

帖子

2

粉丝