评估TI C2000程序堆栈使用情况

   近段时间,遇到F28035运行中无端复位,中断资源排查,主函数程序排查,均未解决。查看堆栈大小,不知道是否是否因为堆栈不足,增大堆栈空间,继续观察。
  1. CCS 堆栈配置
    cmd 文件中配置:
    在这里插入图片描述在这里插入图片描述在这里插入图片描述
    此处0x380就是实际使用的最大值(map文件中也可以找到),该值不能超过RAMM0的长度。如果想将这个值改大,那么就重新分配 RAMM0 和 RAMM1的空间大小,最大的情况就是把两个空间合并成一个空间(0x7B0)。

  2. 堆栈使用大小评估
    在堆栈空间的特定内存区域中预先写入标志性数据如(0x5A)。经由程序的执行,使用过的堆栈空间内的数据会被其他数据覆盖掉,从栈尾开始向低地址走的标志性数据则因其内存空间未被使用而得以保留不变,当然这一切的前提是堆栈不发生溢出。通过寻找被修改数组的最大地址即可以判断出这一测试过程中程序实际所使用的最大堆栈规模。
    理解了以上方法的原理,下面看在CCS中如何实现。可以通过调试模式下的“Memory Browser”,从0x50地址开始,查看RAM变量的情况,数据刷新说明空间被占用。另外一种方式,通过往固定RAM地址写数据,运行一段时间看数据有没有被刷新来判断上限 。在这里插入图片描述
    运行中复位,是比较严重的问题,在不确定堆栈大小的情况下,堆栈空间最好尽量配置大一些。

参考资料: https://e2echina.ti.com/blogs_/b/the_process/posts/ti-c2000

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值