我想通过XINTF接口外扩一片256k x16的RAM,烧写程序时向片外RAM中烧写,而不烧写到片内RAM中,以前没做过这方面的东西,请问我都需要做什么?听说CMD文件是一定要修改的,不知道要怎么改呢,有没有人做过这方面?请求帮助!!!
Young Hu:
1. RAM是掉电丢失的存储器,所以不存在烧写的概念,应该叫加载load;
2. 您为什么要加载到外部RAM中?在调试过程中,使用内部RAM调试即可;
3. 如果非要加到外部RAM的话,需要两部分工作需要做:1.XINTF接口初始化;2.CMD文件修改。XINTF初始化在gel标题栏有,cmd修改。http://www.ti.com/litv/pdf/spra958l
我想通过XINTF接口外扩一片256k x16的RAM,烧写程序时向片外RAM中烧写,而不烧写到片内RAM中,以前没做过这方面的东西,请问我都需要做什么?听说CMD文件是一定要修改的,不知道要怎么改呢,有没有人做过这方面?请求帮助!!!
jing meng:
回复 Young Hu:
片内RAM只有34K,我担心片内空间不够,所以外扩了一片256Kx16的RAM。TI有个例程:Example_2823xCodeRunFromXintf,这个例程我理解的是数据段和程序段都映射到片内RAM,只是运行的时候把程序复制到片外RAM中运行,这样说的话,程序还是load到片内RAM中了,不知道我说的对吗?根据这个例程还有上次你说的,我总结了一下步骤:
1. 初始化XINTF,我用区域7就初始化区域7;
2. 在主函数中用Memory()函数将程序从片内RAM复制到区域7中运行。
如果想直接把程序load到片外RAM中,我需要更改CMD文件中所有程序和数据段的地址,从区域7的起始地址开始分配,把所有的段都映射到区域7中。比如说在28335_RAM_lnk.cmd中这样定义:
BEGIN : origin=0x200000, length=0x000002
BooT_RSVD: origin=0x200002, length=0x00004E。。。
其它的地址都定义在区域7的地址范围内。在DSP2833x_Headers_nonBIOS.cmd中定义的片内外设地址不变,还映射到片内存储器中。
TI中文支持网



