TI论坛
直播中

林旭

8年用户 207经验值
私信 关注
[问答]

C6000 FLASH到RAM必须要写run=BOOTRAM吗

您好,
这是一段cmd文件
MEMORY
[
    BOOTRAM:o = 00000000h   l = 00000400h   
    IRAM   :o = 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了吗??
谢谢谢谢

回帖(6)

林旭

2019-1-15 10:32:14
谢谢您的回复,非常感谢
我还有一个疑问,
用JTAG在线调试,仿真时,cmd文件中,可以把程序所有生成的段都放在内部RAM区,这样load之后,全部在RAM区。
情况1:如果也是在线调试,可不可以,把某些段,比如code段或text段,放在外部FLASH??这是什么情况??
情况2: 烧写FLASH,这时把text等段,在CMD文件中都指定在内部RAM区,行吗??
期待您的回复,谢谢
1 举报

李峰

2019-1-15 10:49:40
引用: lxz0404 发表于 2019-1-15 16:44
谢谢您的回复,非常感谢
我还有一个疑问,
用JTAG在线调试,仿真时,cmd文件中,可以把程序所有生成的段都放在内部RAM区,这样load之后,全部在RAM区。

你好,你前面这个“  .text       : load = FLASH_REST, run = IRAM ”,不就是直接将text段放在外部FLASH了嘛。。。运行出了什么错误码?
把text等段,在CMD文件中都指定在内部RAM区当然是可行的,此时每次加载OUT程序的时候,都会根据你的CMD的设置将相应的段加载到指定的RAM。
举报

林旭

2019-1-15 11:03:35
引用: kingnet_52004 发表于 2019-1-15 17:01
你好,你前面这个“  .text       : load = FLASH_REST, run = IRAM ”,不就是直接将text段放在外部FLASH了嘛。。。运行出了什么错误码?
把text等段,在CMD文件中都指定在内部RAM区当然是可行的,此时每次加载OUT程序的时候,都会根据你的CMD的设置将相应的段加载到指定的RAM。 ...

谢谢您,可能我没有表达清楚,不用看上边帖子的cmd程序,
第一种情况,在线调试一个程序,可以把所有的段指定在CMD文件中,然后load这个.out文件,运行OK,没有问题
第二种情况,在线调试一个程序,但是把一些段通过CMD文件指定在了外部FLASH,这样可以吗??会是什么样的运行情况?比如把TEXT指定在FLASH
第三种情况,烧写一个程序,把所有段指定在内部RAM,最后把对应的.dat文件,烧写到FLASH,断电,在上电,这样又是什么情况???
非常谢谢
举报

李峰

2019-1-15 11:15:41
引用: lxz0404 发表于 2019-1-15 17:15
谢谢您,可能我没有表达清楚,不用看上边帖子的cmd程序,
第一种情况,在线调试一个程序,可以把所有的段指定在CMD文件中,然后load这个.out文件,运行OK,没有问题
第二种情况,在线调试一个程序,但是把一些段通过CMD文件指定在了外部FLASH,这样可以吗??会是什么样的运行情况?比如把TEXT指定在FLASH

你好,第一种情况就不说了,第二种情况,就是直接把一些程序段如.TEXT,烧写进了FLASH中,是可以的,运行的时候直接从FLASH运行。第三种情况,不能随便设计。因为芯片有自己的运行逻辑,上电内部RBL运行,自动搬移用户在90000000h处的二次bootloader,二次bootloader在00000000h处执行,把90000400h处存放的程序相应的搬移到指定内存中,以此启动整个工程。就如同你在第一帖子里CMD文件所设计的一样。
当然,你可以直接用我们提供的工具以及方法,制作一个单独从FLASH启动,hex文件,然后可以将这个hex文件直接烧到FLASH中,上电自启动。参考 http://www.ti.com/general/docs/lit/getliterature.tsp?baseLiteratureNumber=spru186&fileType=pdf
第11章 Hex Conversion Utility Description
举报

更多回帖

发帖
×
20
完善资料,
赚取积分