【电路笔记 TMS320F28335DSP】栈溢出踩坑记录 关闭优化 & 改变数据位置

  • 函数中对于数组的初始化不起作用。在第一次正常运行,切换其他逻辑后再切换回来就不起作用了。

B4为固定数值存储的地址,后续代码中一个unsigned short 2^15大小的0数组导致其值变为0

关闭优化

  • volatile 和关闭优化均( 右键项目名称->Show Build Settings)不起作用:

  • 注:最好不要开启优化,这可能导致各种奇怪的问题。

增加栈空间

int16_t test_array[30] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};

改变数据位置

static int16_t test_array[30] =  {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
  • 存储在 Flash(节省 RAM)
int16_t test_array[30];
generate_test_array(test_array);
  • 初始化对应的代码为:
MVK.S2 0x8900, B4 ; 
  • B4为固定数值存储的地址,后续代码中一个大的0数组导致其值变为0。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值