TI中文支持网
TI专业的中文技术问题搜集分享网站

TMS320C6455: CCS5.2如何修改加载.out的时候,是在处理器内部RAM执行而不是外部flash

Part Number:TMS320C6455

1 ccs5.2导入ccs3.3的工程后,现在能编译通过生成.out文件。

2 但是想打断点调试的时候,load .out文件以后,暂停单步执行后卡在b0000000地址,这个地址是emifa nor flash的地址,应该是加载out文件到flash出错且提示"earlier error prevented reading of target memory at xxxx"。

3 gel是用的系统自带的DSK6455.gel,里面有emifa接口相关的代码。

4 已经修改了cdb文件、cmd文件中所有到IRAM但是连接放着器和加载程序的时候地址依然是0xb0000000的地址,正常IRAM地址是0x00800000的地址。

现在想改成加载.out的时候是在处理器内部RAM执行,除了修改cdb文件、cmd文件里面所有到IRAM,还需要修改哪里呢?

Nancy Wang:

先试一下例程。

https://e2echina.ti.com/support/processors/f/processors-forum/204178/tms320c6455

,

wang yanping:

直接加载这个包里的led.out能进main函数,这个时候连接仿真器是到flash地址,运行是在IRAM里面,那看来还是编译的out问题了。

,

Nancy Wang:

wang yanping 说:这个时候连接仿真器是到flash地址,运行是在IRAM里面

由于我这边没有该型号的开发板,能否截图出来看一下。

,

wang yanping:

,

wang yanping:

我用例子程序ledprd,重新编译,load也能成功到main。

,

wang yanping:

sourcecode.zip这是我们的代码,能不能帮忙看下和ledprd有啥区别,是cmd、tcf、cdb差异等造成的吗?谢谢!

,

wang yanping:

我们的out文件大于2MB,能下载到IRAM吧,我看datasheet说IRAM只有2MB。

,

Nancy Wang:

大于2MB就无法load到IRAM,可以load到DDR2。

,

wang yanping:

那要如何修改呢?

,

wang yanping:

开始的时候是加载到emifa flash的。

,

Nancy Wang:

开始连接仿真器的时候还没有加载程序,实际例程也是加载到IRAM的,改到DDR2就是将section部分指向DDR2,同时要定义一下DDR2的地址范围。

例如:

DDR2        : origin = 0xe0000000,  len = 0x10000000

.text:    {} > DDR2

,

wang yanping:

按理直接加载到flash也可以运行的吧,为什么我的加载到flash不行呢?

,

wang yanping:

我把加载的out文件改小到1.8M也不行

,

wang yanping:

现在改成加载到IRAM运行用我们的代码也可以进main打断点了,以前没改完全。但是.out是2.01M比IRAM大也能跑起来吗?

,

Nancy Wang:

比IRAM大应该是不行的,但是在cmd分配内存的时候,也是按段分配,有可能实际您分配的内存大小并没有比IRAM大,你可以查看实际生成的.map文件计算一下占用的内存空间。

,

wang yanping:

查看了map文件,确实没有超过IRAM地址。

,

wang yanping:

这个问题可以关闭了,谢谢

赞(0)
未经允许不得转载:TI中文支持网 » TMS320C6455: CCS5.2如何修改加载.out的时候,是在处理器内部RAM执行而不是外部flash
分享到: 更多 (0)