This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

28335向片外RAM烧写程序



我想通过XINTF接口外扩一片256k x16的RAM,烧写程序时向片外RAM中烧写,而不烧写到片内RAM中,以前没做过这方面的东西,请问我都需要做什么?听说CMD文件是一定要修改的,不知道要怎么改呢,有没有人做过这方面?请求帮助!!!

  • 1. RAM是掉电丢失的存储器,所以不存在烧写的概念,应该叫加载load;

    2. 您为什么要加载到外部RAM中?在调试过程中,使用内部RAM调试即可;

    3. 如果非要加到外部RAM的话,需要两部分工作需要做:1.XINTF接口初始化;2.CMD文件修改。XINTF初始化在gel标题栏有,cmd修改。http://www.ti.com/litv/pdf/spra958l

  • 片内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中定义的片内外设地址不变,还映射到片内存储器中。