基于EDMA的DSP片外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的引脚连接
引导程序的设计
在对AM29LV040Flash进行读写操作之前,应对其进行擦除,擦除操作需要6个总线周期:
(1)向555H地址的存储单元写入数据AAH;
(2)向2AAH地址的存储单元写入数据55H;
(3)向555H地址的存储单元写入数据80H;
(4)向555H地址的存储单元写入数据AAH;
(5)向2AAH地址的存储单元写入数据55H;
(6)向555H地址的存储单元写入数据10H;
完成上述操作后,Flash存储器完全擦除。
在CCS环境下,用C语言编写上述操作如下:
相关文章
- 2024-02-04机械秒表测量不确定度分析
- 2023-11-02电冰箱换热器以铝代铜腐蚀特性的实验研究
- 2022-07-22基于MCl45026/27的病房传呼系统的研制
- 2021-11-19波特率自适应的RS-485中继器设计
- 2023-03-13简单活塞式压力计的误差修正
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。