dsp经过CPLD加载bootloader

dsp经过CPLD加载bootloader

ID:40747200

大小:74.00 KB

页数:4页

时间:2019-08-07

dsp经过CPLD加载bootloader_第1页
dsp经过CPLD加载bootloader_第2页
dsp经过CPLD加载bootloader_第3页
dsp经过CPLD加载bootloader_第4页
资源描述:

《dsp经过CPLD加载bootloader》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、本文介绍了一种基于CPLD快速译码的DSP二次引导方法,利用CPLD的时序严格、译码速度快、可在线编程等特点,在DSP的外部存储器接口EMIF(ExteralMemoryInterface)的CE2空间模拟了一个Flash换页寄存器FPR(FlashPageRegister),在上电复位后控制Flash的高位地址线,从而实现Flash的分页访问。因此,可通过二次bootloader程序修改FPR的值,控制Flash的高位地址线,将最终的应用程序加载到RAM中运行。1TMS320VC5509A的并行引导模式1.15509A的引导模式  5509A的引导模式选择是通

2、过4个模式选择引脚BOOTM[3:0]来配置的,BOOTM3~0引脚分别与GPIO0、3、2、1相连。5509A提供了六种引导模式,即EHPI引导模式、8位/16位并行EMIF引导模式、8位/16位标准串行口引导模式、SPIEEPROM引导模式、USB引导模式以及I2CE2PROM引导模式。本文采用16位并行EMIF引导模式,将BOOTM[3:0]设置为1011即可。  在16位并行EMIF引导模式下,DSP芯片内部固化的Bootloader程序上电复位后,首先从CE1空间首地址0x200000h处开始读取程序代码,并加载到RAM中运行。1.25509A的引导表

3、格式  程序代码以引导表的格式存储在Flash存储器中。引导表是独立于所选引导模式的一种特定的格式,包含了用户程序的代码段、数据段、段在RAM中的目标地址以及程序入口地址等其他相关信息。5509A引导表结构如表1所示。   DSP芯片内部固化的Bootloader的主要功能是将Flash中存储的引导表按一定顺序加载到RAM中,然后跳转到32位程序入口地址开始执行。引导表文件可以通过TI公司提供的16进制转换工具生成,一般是hex格式,然后将此hex文件烧写到Flash存储器中供Bootloader加载。2DSP二次Bootloader的原理及实现  由上述分析可

4、知,DSP用户程序的并行加载过程是由DSP内固化的Bootloader实现的。由于5509A的PGE封装只有14根地址线,最多只能访问到16K×16bit地址空间。对于超过16KB的用户代码,Bootloader将不能加载全部的引导表文件。因此若要加载超过16K的用户代码,必须进行二次Bootloader。二次Bootloader的原理是由用户自行编写一个代码长度小于16KB的引导程序(以下简称uboot),其功能与DSP内固化的Bootloader相同,用于加载最终的用户代码。在uboot程序中控制Flash存储器的高位地址线来访问Flash的其他存储内容。这

5、样,DSP上电复位后,Bootloader首先加载uboot并运行,然后uboot又加载最终用户代码,实现了大于16K代码的二次引导。2.1DSP与Flash及CPLD的硬件接口  本文采用AMD的Am29LV800作为DSP的外部存储器扩展。Am29LV800按8位方式访问,容量为1M字;按16位方式访问,容量为512K字。DSP外围电路逻辑译码及Flash高位地址线模拟由CPLD实现。Xilinx公司的XC9572XL是一款高性能的CPLD芯片,最高主频可达178MHz,包含了72个宏单元,1600个可用门电路,其TQFP封装有72个可用I/O引脚[7]。图

6、1是5509A与CPLD及Flash之间的硬件接口设计原理图。  如图1所示,5509A的地址线A[13:1]与Flash的地址线A[12:0],A0未用。Flash存储器被映射到DSP的CE1空间,由片选线CE1经CPLD译码后选通。其中DSP的地址线A13和A[3:1]与CPLD接口,用于换页寄存器FPR的模拟。Flash存储器的BYTE引脚经上拉后接高电平,即按16位方式访问。2.2CPLD译码VHDL程序设计  目前DSP系统主频越来越高,运算速度越来越快,利用小规模逻辑器件译码的方式已不能满足DSP系统性能的需求。CPLD器件以其严格的时序、快速的译码

7、、良好的可编程性成为DSP系统必不可少的部件之一。  本文利用CPLD的快速逻辑译码功能,模拟了一个FPR寄存器来控制Flash的高位地址线。VHDL语言源程序如下(篇幅有限,这里省略实体端口声明及中间信号定义):begin  fce <=ce1;  foe <=aoe;  fwe <=awe;  h_addr<=a13;  l_addr<=a3&a2&a1;  datain<=d5&d4&d3&d2&d1&d0;  facs <=′1′whenh_addr=′1′    andce2=′0′andl_addr='000'    else′0′; --CE20x

8、400000  FPR:

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。