您当前的位置:五五电子网电子知识单片机-工控设备DSP/FPGA技术基于EDMA的TMS320C6713片外Flash自举引导 正文
基于EDMA的TMS320C6713片外Flash自举引导

基于EDMA的TMS320C6713片外Flash自举引导

点击数:7771 次   录入时间:03-04 11:42:55   整理:http://www.55dianzi.com   DSP/FPGA技术
     STW   .D1  B4, *A5            ;将ESR第一位置1
     NOP5
        传输结束后,跳转到C程序的入口地址 _c_int00处,开始执行主程序:
     MVKL   .S2_c_int00,   B0
     MVKH   .S2_c_int00,   B0
     B.S2B0
     NOP5

       链接命令文件
   

        链接命令文件是DSP开发过程中生成可执行文件(.out)必不可少的一个环节。它对段的功能有2 个,一是将由汇编器产生的COFF格式的OBJ文件作为输入块,当有多个文件进行链接时,将相应的段结合在一起生成可执行输出模块;二是重新定位,将输出的段分配到存储器中的指定地址。

       编写命令文件时,有时希望将代码装入存储器的一个地方,而在另一个地方运行。例如:一些关键的执行代码必须装在系统的ROM中,但希望在较快的RAM中运行。链接器提供了一个处理该问题的简单方法。利用SECTIONS伪指令选项可让链接器定位2次。第一次使用装载关键字load设置装入地址,再使用运行关键字run设置它的运行地址。装载地址确定段的原始数据或代码装入的地方,而任何对段的引用则参考它的运行地址。在应用中必须将该段从装载地址复制到运行地址,本引导程序便使用EDMA方式完成这一复制过程。链接命令文件(boot.cmd)如下:

     MEMORY
     {
     VEC:ORG=0x00000000,LEN=0x00001000
     PMEM:ORG=0x00001000,LEN=0x00004000
     CEVEC:ORG=0x90000000,LEN=0x00001000
     CEPMEM:ORG=0x90001000,LEN=0x00004000
     }

    以上设置是将整个存储器分成具有不同名称的存储区域。VEC,PMEM代表内部RAM的两块存储空间,而CEVEC,CEPMEM代表Flash内的两块存储空间。对目标文件中各段的加载地址和运行地址在SECTIONS段实现。

     SECTIONS
     {
    .BootCode:load=CEVEC;用户的引导代码段定位在Flash的最开始。
    .text:load=CEPMEM,run=PMEM;用户程序段装载于
     Flash空间,而运行在C6713内部RAM中。
     }

       通过JTAG口的Flash在线烧写

       用汇编语言编写一个搬移程序,内容仅是Flash的擦除过程,以及对EDMA的多次操作构成的由片内RAM到片外Flash的写入过程。把该搬移程序直接嵌入主程序中,这样程序代码长度很短,不会占用过多的主程序空间。在主机引导方式下,通过JTAG口load后,手工更改PC值使其指向这段代码,控制其运行结束,完成自举程序的在线烧写。而在此之后,这段短小的搬移程序不会被主程序中任何一段代码所调用。

       结束语

       工程实际应用表明该方法是切实可行的,与以往Flash引导程序编写方法相比避免了目标代码的格式转换,利用EDMA直接搬移,无需编程器,Flash也不需频繁拆卸,利于工程上的快速开发。



上一页  [1] [2] 


本文关键字:FLASH  DSP/FPGA技术单片机-工控设备 - DSP/FPGA技术