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

C6000 FLASH 到RAM

您好,

这是一段cmd文件

MEMORY
{
    BOOTRAM:o = 00000000h   l = 00000400h    
    IRAM   😮 = 00000400h   l = 003ffc00h
    FLASH_BOOT : o = 90000000h l = 00000400h
    FLASH_REST : o = 90000400h l = 0003f000h
                                                       
}

SECTIONS
{
   
    .bootloader: load = FLASH_BOOT,run=BOOTRAM
    .text       : load = FLASH_REST, run = IRAM                 LOAD_START(_text_ld_start),
                 RUN_START(_text_rn_start),
                 SIZE(_text_size)
    .cinit        >         FLASH_REST

。。。。}

程序放在了外部FLASH中,reset之后,是FLASH方式进行bootmode,datasheet上说的

会把程序从外部FLASH copy 1kB到,内部RAM,然后执行,那么这都是自动的,怎么这个例程的

cmd 程序 添加了一句 run=BOOTRAM ,告诉DSP程序在RAM执行,这不是自动的吗?

如果不写 run=BOOTRAM 难道就不copy程序到RAM了吗??

谢谢谢谢

noaming:

你好,上面CMD文件中,是CCS下运行需要CCS自己将该“二次bootloader程序”加载到0地址处运行,所以使用了RUN。如果是上电自启动,这这部分动作是芯片自动完成的,它自动把“二次bootloader程序”加载到0地址处运行。在CCS下运行,内部的RBL并没有起作用。

ha zhang:

回复 noaming:

谢谢您的回复,非常感谢

我还有一个疑问,

用JTAG在线调试,仿真时,cmd文件中,可以把程序所有生成的段都放在内部RAM区,这样load之后,全部在RAM区。

情况1:如果也是在线调试,可不可以,把某些段,比如code段或text段,放在外部FLASH??这是什么情况??

情况2: 烧写FLASH,这时把text等段,在CMD文件中都指定在内部RAM区,行吗??

期待您的回复,谢谢

noaming:

回复 ha zhang:

你好,你前面这个“  .text       : load = FLASH_REST, run = IRAM ”,不就是直接将text段放在外部FLASH了嘛。。。运行出了什么错误码?

把text等段,在CMD文件中都指定在内部RAM区当然是可行的,此时每次加载OUT程序的时候,都会根据你的CMD的设置将相应的段加载到指定的RAM。

ha zhang:

回复 noaming:

谢谢您,可能我没有表达清楚,不用看上边帖子的cmd程序,

第一种情况,在线调试一个程序,可以把所有的段指定在CMD文件中,然后load这个.out文件,运行OK,没有问题

第二种情况,在线调试一个程序,但是把一些段通过CMD文件指定在了外部FLASH,这样可以吗??会是什么样的运行情况?比如把TEXT指定在FLASH

第三种情况,烧写一个程序,把所有段指定在内部RAM,最后把对应的.dat文件,烧写到FLASH,断电,在上电,这样又是什么情况???

非常谢谢

ha zhang:

回复 noaming:

THANK YOU !问题解决了

赞(0)
未经允许不得转载:TI中文支持网 » C6000 FLASH 到RAM
分享到: 更多 (0)