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

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

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

     汇编源代码文件
    对于C6713而言,DSP上电复位后,EDMA自动从CE1空间拷贝1KB数据(引导代码应定位与此)到地址0处,然后从0地址处开始执行引导代码指令。本引导代码的主要功能是将用户程序段从Flash复制到DSP内部RAM中,然后再跳转到程序的入口处开始执行主程序。在引导程序内复制程序段要使用 EDMA,以快速、灵活地实现DSP存储空间内数据的搬移。数据搬移的源/目的可以是片内存储器、片内外设或外部器件。而此时需要对EDMA的源、目的地址、搬移长度以及基本的传输方式进行相关的设置,如表2所示,然后运用汇编语言编程加入到引导程序即可。

    

    核心引导程序如下:

    .sect“.BootCode”              ;将引导代码分配到BootCode段中
    .global  myBootCode
    .ref_c_int00                    ;C程序的入口地址
     MVKL   .S1EDMA0_OPT    ,A5
     MVKL   . S10x50010001  ,B4     ;低16bit写入寄存器
     MVKH   .S1EDMA0_OPT    ,A5
     MVKH   .S10x50010001   ,B4     ;高16bit写入寄存器
     STW         .D1B4,*A5          ;装载EDMA的OPT参数
     MVKL   .S1EDMA0_SRA    ,A5
     MVKL   .S10x90001000   ,B4     ;低16bit写入寄存器
     MVKH   .S1EDMA0_SRA    ,A5
     MVKH   .S10x90001000   ,B4     ;高16bit写入寄存器
     STW.D1B4,*A5                  ;装载EDMA的SRC参数
    ....
    ....
    接下来启动EDMA复制主程序段:CPU可以通过写事件置位寄存器(ESR)启动一个EDMA通道。     ESR中某一位写1时,将强行触发对应的事件。程序如下:

     MVKL   .S10x00000001,   B4
     MVKL   .S1EDMA_ESR,     A5    ;低16bit写入寄存器
     MVKH   .S1EDMA_ESR,     A5
     MVKH   .S10x00000001,   B4    ;高16bit写入寄存器
     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中运行。链接器提供了一个处理该问题的简单方法。利用

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

网站地图

Top