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

发布者:心有所属最新更新时间:2008-03-12 来源: 国外电子元器件关键字:EDMA  DSP  Flash存储器  自举  总线周期  输出模块  置位  COFF  非易失存储器  引导方式 手机看文章 扫描二维码
随时随地手机看文章

  摘要:在基于DSP的系统设计中,为了保证掉电时程序不丢失,总是将程序保存在非易失性存储器中,以便系统在上电复位时可将其引导到DSP内部的RAM中执行。以TI公司的TMS320C6713浮点DSP和AMD公司的AM29LV040Flash存储器为例,通过JTAG加载来设计一个完整的自举引导方案。着重描述了引导引脚以及相关寄存器的设置,分析了采用EDMA传输方式将代码从Flash复制到DSP的过程,并对引导程序给出基于汇编语言的代码实现。工程实践证明,该设计方案是可行、有效的。

  关键词:TMS320C6713;自举引导;Flash

  引言

  在许多基于DSP的系统设计中,程序代码总是保存在ROM、Flash或其他非易失存储器中,以保证掉电时代码仍存在,因此必须要解决引导装载的问题。自举引导(Bootload)是指系统上电时,DSP将一段存储在外部非易失性存储器的代码搬移到内部的高速存储器单元中执行(如片内RAM)。本文以TI 公司的TMS320C6713(以下简称为C6713)浮点DSP和AMD公司的AM29LV040Flash存储器为例,通过JTAG口加载来设计一个完整的引导装载方案。

  TMS320C6713的引导配置

  外部信号BOOTMODE[4:3]决定了C6713的引导配置,在RESET信号的上升沿BOOTMODE[4:3]信号被获取。C6713DSP只有2种引导方式:

  (1)ROM/Flash引导。外部存储器的一部分通过EDMA控制器拷贝到DSP内部地址0处。尽管引导程序在器件从外部复位释放后才开始执行,但在 CPU被保持在内部复位时,这个拷贝就进行了。Flash宽度也通过BOOTMODE[4:3]选择。在Flash宽度小于32bit的情况下,DSP通过EMIF读取时,可以自动将相邻的8bit字节或16bit半字打包形成32bit的指令字,并且这些数值在外部存储器中可以通过设定HD8来确定 endian存储模式。

  (2)主机引导。核心CPU停留在复位状态,器件其余部分保持正常状态。外部主机通过HPI或扩展总线初始化CPU的存储空间。在必要的初始化完成之后,主机在HPI控制寄存器的DSPINT位写1,这个写操作引起DSPINT信号的跳变,从而导致引导配置逻辑使CPU脱离复位状态,然后CPU从地址0处开始运行。

  Flash引导模式的实现

  硬件设计

  C6713引导引脚说明如表1所列。

  设计时将DSP主机口引脚HD[4:3]中的HD4通过下拉电阻接地,HD3通过上拉电阻接3.3V电源,即HD[4:3]=01B。C6713的 EMIF含有4个CE空间寄存器,由于Flash加载程序是从CE1空间搬入的,因此DSP的CE1与Flash(AM29LV040)的片选相连,这种连接将Flash的内部地址映射到DSP的0x90000000处,从而完成了基本的硬件设计。DSP与Flash接口的硬件连接如图1所示。

  

  

  图1 DSP与Flash的引脚连接

  引导程序的设计

  Flash存储器的擦除

  在对AM29LV040Flash进行读写操作之前,应对其进行擦除,擦除操作需要6个总线周期:

  (1)向555H地址的存储单元写入数据AAH;

  (2)向2AAH地址的存储单元写入数据55H;

  (3)向555H地址的存储单元写入数据80H;

  (4)向555H地址的存储单元写入数据AAH;

  (5)向2AAH地址的存储单元写入数据55H;

  (6)向555H地址的存储单元写入数据10H;

  完成上述操作后,Flash存储器完全擦除。

  在CCS环境下,用C语言编写上述操作如下:

  voidFlash_Erase()

  {

  *(char*)FLASH_ADR1=0xAA;

  *(char*)FLASH_ADR2=0x55;

  *(char*)FLASH_ADR1=0x80;

  *(char*)FLASH_ADR1=0xAA;

  *(char*)FLASH_ADR2=0x55;

  *(char*)FLASH_ADR1=0x10;

  }

  根据前面的设计,Flash的内部地址已经映射到C6713的CE1空间,其开始地址为0x90000000。因此FLASH_ADR1,FLASH_ADR2的定义如下:

  #define FLASH_ADR1 0x90000555

  #define FLASH_ADR2 0x900002AA

  汇编源代码文件

  对于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中运行。链接器提供了一个处理该问题的简单方法。利用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也不需频繁拆卸,利于工程上的快速开发。

 

关键字:EDMA  DSP  Flash存储器  自举  总线周期  输出模块  置位  COFF  非易失存储器  引导方式 引用地址:基于EDMA的TMS320C6713片外Flash自举引导

上一篇:一种基于DSP的软件无线电调制解调实验平台
下一篇:基于FPGA的UART接口开发

推荐阅读最新更新时间:2024-03-30 23:59

研究关于DSP的双电源解决方案
DSP的供电 电路 设计是DSP应用系统设计的一个重要组成部分。TIDSP家族(C6000和C54xx)要求有独立的内核 电源 和I/O电源,如TMS320VC5402,它的内核 电压 是1.8V,I/O电压是3.3V。由于DSP一般在系统中要承担大量的实时数据计算,在其CPU内部,频繁的部件开关转换会使系统功耗大大增加。所以降低DSP内部CPU供电的核心电压无疑是降低系统功耗的最有效的办法之一。 虽然TI的DSP不要求内核电源和I/O电源之间有特殊的上电顺序,但是假如有一个电源低于正常的工作电压,设计时就要确保没有任何一个电源在这个时间段处于上电状态,如果违反此规则,将严重影响器件的长期可靠性。另外,从系统级考虑,总线竞争就要求
[电源管理]
研究关于<font color='red'>DSP</font>的双电源解决方案
基于C语言在FPGA上实现DSP的解决方案
    硬件设计者已经开始在高性能DSP的设计中采用FPGA技术,因为它可以提供比基于PC或者单片机的解决方法快上10-100倍的运算量。以前,对硬件设计不熟悉的软件开发者们很难发挥出FPGA的优势,而如今基于C语言的方法可以让软件开发者毫不费力的将FPGA的优势发挥得淋漓尽致。这些基于C语言的开发工具可以比基于HDL语言的硬件设计更节省设计时间,同时不需要太多的硬件知识。由于具有这些优势,FPGA技术不仅可使这些器件作为I/O器件的前端,FPGA还可实现大量的高带宽和运算密集型应用的实时处理。此外,FPGA还可很紧密地与板上存储器结合,并在一块电路板上集成多个器件。更好的是,FPGA电路板可通过新兴的串口通讯标准进行通讯,如Ra
[嵌入式]
基于DSP的视频监控系统硬件电路设计
  目前视频监控广泛应用于安防监控、工业监控和交通监控等领域。视频监控系统大致经历3个阶段:首先是基于模拟信号的电视监控系统,其功能单一、易受干扰且不易扩展;随后出现基于PC机的图像监控系统,其终端功能较强.但价格昂贵,稳定性差;近年来,随着嵌入式技术成熟,嵌入式视频采集处理系统具有可靠性高、速度快、成本低、体积小、功耗低、环境适应性强等优点。    视频信号处理电路   本设计采用SONY公司专用信号处理器件CXD3142R作为信号处理器。CXD3142R是专用于对Ye,Cv,Mg和G补色单片CCD输出信号进行处理的低功耗、高效率的信号处理器;具有自动曝光和自动白平衡功能,可同时输出复合视频信号和YUV 8位数字信号输出。内部
[嵌入式]
基于<font color='red'>DSP</font>的视频监控系统硬件电路设计
DSP供电的TPS5602
TI公司TPS5602双通道同步降压开关电源控制器具有非常快的反馈控制和双通道特性,它是为要求快速瞬态响应和高效率的DSP应用而特别设计的。它采用迟滞控制方法,这对于高瞬态电流应用(如6000和C54XDSP)是理想的器件。靠置位待机引脚可实现上电和继电时序,这是因显两个通道是独立的。TPS5602宽输入电压和可调输出电压使它适合于很多应用。 TPS5602工作条件 ·VIN范围 4.5V~25V ·VOUT范围 1.2V(对给定的输入电压) ·IOUT范围 每个输出14A(增加并联开关器件可扩展电流能力) 关键特性 ·独立的双通道 ·快速瞬态响应的迟滞控制 ·可调的输出电压(降到1.2V) ·
[嵌入式]
基于DSP的网络通信程序设计
摘要:通过分析网卡基本通信过程控制和数字信号处理器(DSP)对网卡直接编程方法,成功设计基于DSP的网络通信程序,从而最终实现DSP系统数字化和网络化的融合。 关键词:DSP 网络通信程序 通信协议 网卡 DSP芯片是专门为实现各种数字信号处理算法而设计的、具有特殊结构的微处理器,其卓越的性能、不断上升的性价比、日渐完善的开发方式使它的应用越来越广泛。将计算机网络技术引入以DSP为核心的嵌入式系统,使其成为数字化、网络化相结合,集通信、计算机和视听功能于一体的电子产品,必须大大提升DSP系统的应用价值和市场前景。将DSP技术与网络技术相结合,必须解决两个关键问题:一是实现DSP与网卡的硬件接口技术,二是基于DSP的网络通信程
[应用]
FPGA与DSP信号处理系统的散热设计
   引言   随着系统性能的不断提升,系统功耗也随之增大,如何对系统进行有效的散热,控制系统温度满足芯片的正常工作条件变成了一个十分棘手的问题。通常使用风冷技术对系统进行散热。采用风冷技术时要重点考虑散热效率问题,一般可以通过使用较好的导热材料和增大散热面积来实现,但这就带来了系统成本的提高和体积的增加,因此必须选择最优的结合点。另外,要充分考虑热量传播的方向,使其在以尽可能的路径传播到外界的同时,能够保证热量远离那些易受温度影响的器件。现在,一些公司也推出了进行系统散热设计的辅助工具,大大提高了系统设计的可靠性。    1 系统结构   本系统以FPGA作为高性能实时信号处理系统的数据采集和控制中心,2片DSP为数据处理
[嵌入式]
FPGA与<font color='red'>DSP</font>信号处理系统的散热设计
基于ARM11和DSP协作视频流处理技术的3G视频安全帽设计
1.引言 为提高在高危工作场所现场作业的可控性,本文采用仿生学原理和高集成度设计实现了与人眼同视角的3G视频安全帽。本设计由视频安全帽和腰跨式数据处理终端两部分组成,采用高可靠性航空插头连接。其中图像处理采用三星公司的S3C6410ARM11处理器和 TMS320DM642 DSP处理器组成。本设计结合DSP处理器在视频压缩方面的优势和运行于ARM之上的Linux操作系统在数据管理与任务调度机制方面的出色表现,由DSP完成图像处理功能,并通过高速接口把视频数据传输给嵌入式微处理系统,完成视频数据的传输、存储功能。 2.系统构成 本设计由视频安全帽和腰跨式视频终端两部分组成。视频安全帽中包含1路视频输入、1路音频输入和1路音
[嵌入式]
基于ARM11和<font color='red'>DSP</font>协作视频流处理技术的3G视频安全帽设计
DSP编程过程中的几个关键问题的研究
   1 McBSP(Multichannel Buffered Serial Port)串口利用DMA中的多帧(Multi-Frame)方式通信的中断处理   在实际通信应用中,一个突发之后,程序必须为下一个突发作准备。因此一般采用串口的DMA多帧方式但在串口以DMA方式传输数据时却有一些问题要讨论。首先DMA的传输同步事件应设McBSP的传输事件即XEVT,这样一字节传输后会自动准备另一字节(McBSP的READY上升沿触发DMA传输)。中断发生时意味着一个块已传完,这时DMA的使能自动关闭,McBSP的READY将一直保持高状态。但是在下一次突发传输直接使能DMA时却启动不了传输(相信会有许多我遇到此类问题)。这是因为无法
[嵌入式]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
最新安防电子文章
换一换 更多 相关热搜器件

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 视频监控 智能卡 防盗报警 智能管理 处理器 传感器 其他技术 综合资讯 安防论坛

词云: 1 2 3 4 5 6 7 8 9 10

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved