打印

每次运行程序都会跑飞

[复制链接]
1232|40
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
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 | 只看该作者

定义了一些比较大的数组

使用特权

评论回复
5
liliang9554| | 2019-1-4 15:04 | 只看该作者
观察内存数据

使用特权

评论回复
6
huangchui|  楼主 | 2019-1-4 15:08 | 只看该作者

发现这些数组中的数据竟然不是初始定义的数值

使用特权

评论回复
7
午夜粪车| | 2019-1-4 15:11 | 只看该作者
请问楼上这个是为什么吗?我不是很懂啊

使用特权

评论回复
8
huangchui|  楼主 | 2019-1-4 15:15 | 只看该作者
在程序中没有对这些数组进行任何操作

使用特权

评论回复
9
huangchui|  楼主 | 2019-1-4 15:19 | 只看该作者
与相应的0x008000区域的数值一样,举例来说,假如数组Data_A实际分配的地址可能是0x3F8100~0x3F8200,运行程序并把Data_A拖到watch窗口中观察,这个数组里的数据数值与地址为0x008100~0x008200的saram区域的数值相同。该怎么办啊

使用特权

评论回复
10
heweibig| | 2019-1-4 15:22 | 只看该作者
如果是代码段肯定是不能放到SARAM中的   

使用特权

评论回复
11
wuhany| | 2019-1-4 15:47 | 只看该作者
如果嫌内存小,那么就需要外扩内存

使用特权

评论回复
12
shimx| | 2019-1-4 15:51 | 只看该作者
不过外扩内存的读写速度会比片内内存慢很多哦

使用特权

评论回复
13
zhaoxqi| | 2019-1-4 15:54 | 只看该作者
仿真的时候跑飞吗?
cmd怎么分配的?

使用特权

评论回复
14
zhaoxqi| | 2019-1-4 16:00 | 只看该作者
先用一个小点的数组试试

使用特权

评论回复
15
dengdc| | 2019-1-4 16:03 | 只看该作者

仿真的时候才会跑飞。
cmd里面尽量不要修改。

使用特权

评论回复
16
heweibig| | 2019-1-4 16:06 | 只看该作者
程序跑飞一般都是变量问题
检查一下是不是存在超出变量的。

使用特权

评论回复
17
jiahy| | 2019-1-4 16:14 | 只看该作者
程序跑飞是在仿真的时候吗?
cmd分配不要设置太大的data空间。

使用特权

评论回复
18
jiahy| | 2019-1-4 16:18 | 只看该作者
这个注意SRAM片区的分配使用了

使用特权

评论回复
19
heweibig| | 2019-1-4 16:21 | 只看该作者
这个添加看门狗的试试,监测下跑飞的位置的。

使用特权

评论回复
20
yszong| | 2019-1-4 16:24 | 只看该作者
芯片内存不够吗,外扩内存要考虑成本啊

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

918

主题

12323

帖子

4

粉丝