打印
[STM32F4]

请教STM32F4上移植ucosiii 堆栈生长方向问题

[复制链接]
1108|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Spurs26|  楼主 | 2017-8-25 17:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
情况描述如下:
建立任务时堆栈基地址是(CPU_STK      *)&AppTaskStartStk[0u],
堆栈生长方向#define  CPU_CFG_STK_GROWTH       CPU_STK_GROWTH_HI_TO_LO ;

疑问:传递的堆栈基地址是其低地址,而生长方向是高到低,这样会不会存在问题啊???为什么不用CPU_STK_GROWTH_LO_TO_HI ?? 请赐教,谢谢

沙发
Spurs26|  楼主 | 2017-8-25 17:11 | 只看该作者
程序长时间运行,一段时间后程序死机了,停止运行,会不会和 堆栈生长方向#define  CPU_CFG_STK_GROWTH       CPU_STK_GROWTH_HI_TO_LO ;配置有关呢??

使用特权

评论回复
板凳
feelhyq| | 2017-8-25 17:11 | 只看该作者
针对ARM和绝大多数体系结构的核来说,栈的生长方向都是满递减 空递增,即从上往下。当然也有从下往上的,
早期的51单片机就是从下往上的。你看到初始化线程代码关于初始化通用寄存器的地方就明白了,虽然传递的栈底地址,但是在真正初始化使用的时候 stack(top stack) = stack bottom + 栈的大小。

使用特权

评论回复
地板
feelhyq| | 2017-8-25 17:13 | 只看该作者
Spurs26 发表于 2017-8-25 17:11
程序长时间运行,一段时间后程序死机了,停止运行,会不会和 堆栈生长方向#define  CPU_CFG_STK_GROWTH     ...

如果对UCOS吃的不是特别透,建议用网上现有的成功工程去修改,不然的话出错了都不知道在哪里。

使用特权

评论回复
5
xixi2017| | 2017-8-25 19:21 | 只看该作者
这个在ucOS官网有现成移植好的。

使用特权

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

本版积分规则

3

主题

18

帖子

0

粉丝