tms320c6000价格_tms320c6000_tm320c6000网盘(4)

电脑杂谈  发布时间:2017-02-24 08:23:17  来源:网络整理

在使用时,我们要对上面程序中的

user_size      .equ  0x00001798
user_ld_start  .equ  0x90000400
user_rn_start  .equ  0x00000400

进行修改,user_size表示用户程序段的字节大小,user_ld_start表示用户代码的Flash起始地址(我默认使用0x90000400,一般不改),user_rn_start表示用户代码要存放到RAM的起始地址(从之前的图看,这个我也一般不改)。小程序我一般只修改用户程序段的字节大小。大程序可能要对copyTable(复制表)进行调整。

要满足上面的地址的分布,修改用户应用程序的cmd文件如下:

-c
-x
-l rts6700.lib
-heap  100h
-stack 200h
MEMORY
{
    BOOT_RAM   : o=00000000h,l=00000400h
    IRAM       : o=00000400h,l=00040000h
    FLASH_BOOT : o=90000000h,l=00000400h
    FLASH_REST : o=90000400h,l=000FFB00h
}
SECTIONS
{
      .boot_load:> BOOT_RAM

      /* Initialized User code section */
      .text     :> IRAM
      .cinit    :> IRAM

      .vectors  :> IRAM
      .bss      :> IRAM
      .far      :> IRAM
      .stack    :> IRAM
      .const    :> IRAM
      .switch   :> IRAM
      .sysmem   :> IRAM
      .cio      :> IRAM   
}

注意其中的.boot_load段,与二级引导程序的.sect ".boot_load"对应。如果用户应用程序定义了其它的段,可对cmd文件做相应修改,但.boot_load:> BOOT_RAM不能改,且不要把其它段放在BOOT_RAM存储区中。

将以上3个汇编文件盒一个cmd文件加到用户程序的工程中重新编译工程。

3 提取要烧写的二进制数据

这部分是纯手工活,如果你会使用VIM,那数据处理起来就简单多了。

首先,将Jtag连接上TMS320C6713开发板,下载用户应用程序,使用CCS V3.3的File->Data->Save...功能,将内存中的二进制的代码数据保存到.dat文件。

Address都是上面的cmd文件设定好的。

要保存的*.dat包括两个文件:一个存放二级Bootloader的机器二进制码(boot.dat),一个存放用户应用程序的二进制码(text.dat)

boot.dat: Address=0x00000000, Length=0x00000100

text.dat: Address=0x00000400, Length=?

喔?用户代码的长度怎么知道?还有,不是说一级Bootloader会拷贝1KB长度吗,上面怎么是Length=0x00000100?

请到CCS工程的Debug目录下打开.map文件(如下图),详细的解答在下图的注释中。


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/ruanjian/article-34190-4.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...