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

单片机开发过程中如何准确地计算stack用量?

cb40d88cb80ae349 2019-01-22 浏览量:1089
尤其是低成本单片机一般内存较小,可能只有几K,给stack多了可用内存就少了,给stack少了肯定会崩,如何才能准确地计算stack用量进而合理地分配stack空间大小呢?
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 栈用量无法准确测量只能粗略估计,你就算一下你程序种开辟了多少个局部变量,函数嵌套层数会不会过大,这些都是影响栈区用量的因素。
    • 发布于 2019-01-22
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:9
  • 一般编译工具会在编译结束后,显示输出stack的大小

    比如 keiliar这些都会在编译结束后有ram使用情况

    • 发布于2019-01-22
    • 举报
    • 评论 0
    • 0
    • 0

  • 编译结束会有内存使用量,后面两个相加就是ram量,根据ram大小分配
    • 发布于2019-01-22
    • 举报
    • 评论 0
    • 0
    • 0

  • 生成MAP文件可以查看,但是不是非常准。
    • 发布于2019-01-23
    • 举报
    • 评论 0
    • 0
    • 0

  • 可以先分配多一点,然后实际运行过程中统计最大使用量,然后就设置这个最大量为栈大小
    • 发布于2019-01-31
    • 举报
    • 评论 0
    • 0
    • 0

  • 通过查看MAP文件,来分析。内存的使用情况
    • 发布于2019-02-20
    • 举报
    • 评论 0
    • 0
    • 0

  • 可以在编译后查看map文件中的位置大小定义
    • 发布于2019-02-20
    • 举报
    • 评论 0
    • 0
    • 0

  • stack没法精确计算的,都是动态分配,一般取个经验值就差不多
    • 发布于2019-02-23
    • 举报
    • 评论 0
    • 0
    • 0

  • 可以直接根据你的stack计算,直接用动态分配的方式
    • 发布于2019-02-27
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

单片机开发过程中如何准确地计算stack用量?