• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

使用RTOS开发的时候,怎么确定堆栈大小?

DengQilong 2017-12-10 浏览量:1034
多了也不行,在资源紧张的MCU上真头疼,怎么确定分配内存呢?我看了keil生成的map文件,也没看出什么名堂。
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 任务栈大小由以下几项决定
    函数的局部变量
    函数的形参
    函数的返回值
    函数内部的状态保存操作

    等等参考于:https://www.cnblogs.com/yangguang-it/p/7123727.html

    http://blog.sina.com.cn/s/blog_98ee3a930102wfo8.html​

    • 发布于 2017-12-10
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了 :封装: LQFP-48 品牌: 国民技术 型号: N32G452CBL7 需要和客户确认一下,没有完全替代,有几个引脚定义和客户的不是完全一样, 有部分引脚 回复

其他答案 数量:3
  • RTOS堆栈的大小的确定是非常有技术含量的工作.

    这个你要对整个任务所用到的所有的变量,计算单元.说白了就是内存,都由很深入的了解.

    通常写程序的人往往不会有这么多精力来摸清每一个任务具体需要多大堆栈.

    而是设定一个确定能用的值.

    然后慢慢减小,

    运行程序,看是否会出问题.

    在某些情况下,即使没有出现问题.

    也不一定说明程序的堆栈就可以改成这么小.

    • 发布于2017-12-11
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :目前只有规格书,没有其他的资料或文档了 回复

  • 这样看看你的这个任务 里使用了多少局部变量了,而且可以通过map文件相看
    • 发布于2017-12-17
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :IRF640NS是系列号,有尾缀的是包装区别,尾缀TRL:卷装。编带方向向左,尾缀TRR:卷装,编带方向向右,IRF640NSHR:管装 回复

  • 一般在KEIL编译的提示里可以大致判断占用的堆栈大小,然后设置一个1.5倍左右的值差不多了。

    • 发布于2017-12-25
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :TMCM-1630-2C 详细说明 无刷12〜48VDC电源10A 12〜48V负载 回复

相关问题

问题达人换一批

使用RTOS开发的时候,怎么确定堆栈大小?