微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 硬件工程师文库 > 基于EDMA的TMS320C6713片外Flash自举引导

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

时间:02-12 来源:本站整理 点击:

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也不需频繁拆卸,利于工程上的快速开发。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top