基于EDMA的TMS320C6713片外Flash自举引导
汇编源代码文件
对于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中运行。链接器提供了一个处理该问题的简单方法。利用
TMS320C671 相关文章:
- LT3751如何使高压电容器充电变得简单(08-12)
- 三路输出LED驱动器可驱动共阳极LED串(08-17)
- 浪涌抑制器IC简化了危险环境中电子设备的本质安全势垒设计(08-19)
- 严酷的汽车环境要求高性能电源转换(08-17)
- 适用于工业能源采集的技术 (08-10)
- 单片式电池充电器简化太阳能供电设计(08-20)