每次运行程序都会跑飞

[复制链接]
 楼主| huangchui 发表于 2019-1-4 14:50 | 显示全部楼层 |阅读模式
最近在用TMS320F28335做项目,编写程序时一直都将程序以及数据分配到0x8000~0xFFFF(SARAM)片区,以往的调试过程中也没遇到什么问题,但是由于这次编写的程序量比较大,这个片区已经存放不下了,因此,前两天我把数据存放到0x3F8000~0x3FBFFF(SARAM)片区,但是CMD文件修改好以后,每次运行程序都会跑飞
jiahy 发表于 2019-1-4 14:52 | 显示全部楼层
然后呢?你是怎么应对这个的呢
 楼主| huangchui 发表于 2019-1-4 14:59 | 显示全部楼层
我又做了一个测试程序,这个程序内容很少,但是发现一个奇怪的现象,只要包含main.h这个头文件,程序就会跑飞。
 楼主| huangchui 发表于 2019-1-4 15:01 | 显示全部楼层

定义了一些比较大的数组
liliang9554 发表于 2019-1-4 15:04 | 显示全部楼层
观察内存数据
 楼主| huangchui 发表于 2019-1-4 15:08 | 显示全部楼层

发现这些数组中的数据竟然不是初始定义的数值
午夜粪车 发表于 2019-1-4 15:11 | 显示全部楼层
请问楼上这个是为什么吗?我不是很懂啊
 楼主| huangchui 发表于 2019-1-4 15:15 | 显示全部楼层
在程序中没有对这些数组进行任何操作
 楼主| huangchui 发表于 2019-1-4 15:19 | 显示全部楼层
与相应的0x008000区域的数值一样,举例来说,假如数组Data_A实际分配的地址可能是0x3F8100~0x3F8200,运行程序并把Data_A拖到watch窗口中观察,这个数组里的数据数值与地址为0x008100~0x008200的saram区域的数值相同。该怎么办啊
heweibig 发表于 2019-1-4 15:22 | 显示全部楼层
如果是代码段肯定是不能放到SARAM中的   
wuhany 发表于 2019-1-4 15:47 | 显示全部楼层
如果嫌内存小,那么就需要外扩内存
shimx 发表于 2019-1-4 15:51 | 显示全部楼层
不过外扩内存的读写速度会比片内内存慢很多哦
zhaoxqi 发表于 2019-1-4 15:54 | 显示全部楼层
仿真的时候跑飞吗?
cmd怎么分配的?
zhaoxqi 发表于 2019-1-4 16:00 | 显示全部楼层
先用一个小点的数组试试
dengdc 发表于 2019-1-4 16:03 | 显示全部楼层

仿真的时候才会跑飞。
cmd里面尽量不要修改。
heweibig 发表于 2019-1-4 16:06 | 显示全部楼层
程序跑飞一般都是变量问题
检查一下是不是存在超出变量的。
jiahy 发表于 2019-1-4 16:14 | 显示全部楼层
程序跑飞是在仿真的时候吗?
cmd分配不要设置太大的data空间。
jiahy 发表于 2019-1-4 16:18 | 显示全部楼层
这个注意SRAM片区的分配使用了
heweibig 发表于 2019-1-4 16:21 | 显示全部楼层
这个添加看门狗的试试,监测下跑飞的位置的。
yszong 发表于 2019-1-4 16:24 | 显示全部楼层
芯片内存不够吗,外扩内存要考虑成本啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

918

主题

12323

帖子

4

粉丝
快速回复 在线客服 返回列表 返回顶部