硬汉嵌入式论坛

 找回密码
 立即注册
查看: 4292|回复: 5
收起左侧

[FreeRTOS] 中断堆栈的大小 设置  MSP

[复制链接]

22

主题

12

回帖

21

积分

新手上路

积分
21
发表于 2016-8-11 14:29:33 | 显示全部楼层 |阅读模式
eric2013,楼主,这个FREERTOS 是在哪里设置的 MSP呢,任务是在创建的时候设置的栈大小,但是进中断以后就是使用的系统主栈,这个MSP 在UCOS中 我记得是 在汇编代码中手动设置的,这里FREERTOS我始终没有找见在哪里设置的? 而且这个主栈一般都是设置在单片机RAM中的最高地址吗?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107034
QQ
发表于 2016-8-11 14:51:25 | 显示全部楼层
1.  这个问题在我发布的FreeRTOS教程里面讲解比较清楚,看
1.jpg


2. 现在uCOS-II和III已经不在启动代码里面设置了,因为系统无法管理系统堆栈。
回复

使用道具 举报

22

主题

12

回帖

21

积分

新手上路

积分
21
 楼主| 发表于 2016-8-11 15:40:16 | 显示全部楼层
eric2013  ,我可以这样理解吗?  RAM区  从低地址 到 高地址开始依次是 ;RW,  ZI  ,系统栈,堆  ;;;;系统栈的大小就是 启动文件.S中的  configuration  wizard中设置的大小?而不是  系统栈指针在 RAM去的最高地址处?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107034
QQ
发表于 2016-8-11 15:44:35 | 显示全部楼层

回 尼泊尔3144 的帖子

尼泊尔3144:eric2013  ,我可以这样理解吗?  RAM区  从低地址 到 高地址开始依次是 ;RW,  ZI  ,系统栈,堆  ;;;;系统栈的大小就是 启动文件.S中的  configuration  wizard中设置的大小?而不是   .. (2016-08-11 15:40) 
栈空间就是在最高处,向下生长,
然后是堆,向上生长
之后才是ZI 和 RW。 MDK中是这么安排,对于这个堆栈的问题,我在我们V5板子的入门视频教程中详细讲解了。
回复

使用道具 举报

22

主题

12

回帖

21

积分

新手上路

积分
21
 楼主| 发表于 2016-8-11 17:54:40 | 显示全部楼层
eric2013    ,楼主,我调试后发现  configuration  wizard 这里设置后  MSP的值会变,就是说 内存中分布是;  RW  ZI  HEAP  STACK  栈还是在最高的地址,但是不一定是 单片机的可用内存上的最高的地址值,相当于有部分没用上?  除非把栈的空间设置加大?这个MSP的值是个动态的,看我们要设置栈的空间和堆得空间是多大来 确定 是吗?  我看了您的视频,但是还是没弄明白,直接晕了
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107034
QQ
发表于 2016-8-12 10:28:58 | 显示全部楼层

回 尼泊尔3144 的帖子

尼泊尔3144:eric2013    ,楼主,我调试后发现  configuration  wizard 这里设置后  MSP的值会变,就是说 内存中分布是;  RW  ZI  HEAP  STACK  栈还是在最高的地址,但是不一定是 单片 .. (2016-08-11 17:54) 
是的,要看MDK编译出来实际效果的内存大小。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-15 07:12 , Processed in 0.245125 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表