嵌入式开发:执行最坏情况堆栈分析的3种方法

  弄清楚如何为嵌入式应用程序和其中的任务确定堆栈的大小可能具有挑战性。在许多情况下,开发人员会选择一个他们认为应该足够的值,这些估计有时有点短,大部分时间是粗略估计,很少出现。虽然嵌入式开发人员在整个开发周期中应该监控他们的堆栈使用情况,但有时开发人员应该执行最坏情况的堆栈分析,例如:

  它们在 RAM 上运行得非常危险

  需要提交新的代码版本

  他们正在最终确定用于生产的固件

  在这篇文章中,我将讨论开发人员可以执行最坏情况堆栈分析的三种不同方式。

  技巧 1 – 手工计算

  在过去,嵌入式软件开发人员过去不得不手动计算他们的堆栈使用情况,这可能是一项棘手的工作。为了手动计算堆栈使用量,开发人员需要知道:

  他们要进行多少次函数调用

  在每个函数中将存储在堆栈中的局部变量

  将存储在堆栈中的返回地址的大小

  将存储在堆栈中的局部变量的大小

  如果在执行期间发生中断,中断帧将有多大

  可能发生的嵌套中断数

  正如你可以想象的那样,找到所有这些值并在进行更改时继续跟踪它们可能非常耗时且容易出错,这就是为什么不再推荐这种方法的原因,但嵌入式开发人员尝试一次以更深入地了解其他技术正在做什么仍然很有用。

  

  技巧 2 – 使用静态代码分析器

  许多静态代码分析器可用于估计最坏情况下的堆栈使用情况。在代码分析期间,该工具将

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值