TMS320VC54系列EPROM加载方法研究及实现
出处:国外电子元器件 发布于:2011-06-04 18:19:41
DSP芯片(数字信号处理器)已成为人们日益关注并得到迅速发展的具有前沿技术的一种集成电路,并且得到越来越广泛的应用。TI公司推出的5000系列DSP具有高性能、低功耗等优良性能,一推出就受到了用户的欢迎。正由于其快速的数字信号处理能力,5000系列DSP被广泛应用于电信、雷达、仪器仪表、图像处理等许多方面,与单片机一起完成数字信号的处理和控制。其应用范围的广泛性决定了必须有灵活多样的加载方式与之相适应。正因为如此,它的加载方式也较单片机的加载要复杂得多。本文立足实际经验,对DSP的各种加载方法进行了阐述,并较为详细地介绍了EPROM并行加载方法,研究了在线烧写应用程序的方法以及应用中的注意事项。
1 DSP的各种加载方式
在TMS320VC5402的片内ROM区(F800h~FBFFh)是片内自引导程序区,片内自引导就是利用片内ROM中的引导程序将程序从外部(FLASH)加载到程序存储器中运行,TMS320VC5402片内掩模ROM中固化的引导装载(Bootloader)程序用于在上电复位时把用户程序从外部引导到片内RAM或片外高速RAM中,以保证其全速运行。TMS320VC5402提供的片内引导方法有:主机口HPI模式、8位串口EEPROM模式、8位或16位并口模式、8位或16位I/O模式和8位或16位串口模式等。
C5000系列可提供的加载方式有以下几种:
(1) 主机端口(HPI)加载:程序的执行代码由主机通过主机接口(HPI)加载到DSP的片内存储器;
(2) 并行加载:加载程序通过外部并行总线从数据空间读取自举表,自举表内包含有程序代码部分、每部分代码的目的地址、加载成功后程序的执行地址以及其它一些配置信息;
(3) 标准串口加载:加载程序通过多通道缓冲串口(MBSP)来接收自举表,并根据自举表中的信息来加载代码。MBSP0支持16位的串行接收方式,MBSP1支持8位的串行接收方式;
(4) 8位或16位I/O加载:加载程序通过使用异步握手协议从I/O的0H口读取自举表;
(5) 8位EEPROM串口加载:加载程序从一个连接到MBSP1的串行EEPROM来接收数据。
2 C5000的加载过程
C5000 DSP没有内部提供掉电保存程序的ROM/EPROM/Flash,上电时需要从外部加载应用程序。C5000 DSP提供了多种程序加载方式,满足不同应用的需要:串行加载、并行加载、HPI加载等,实际应用多的是并行加载,本实验主要介绍8位并行存贮器加载。加载过程:DSP上电时,如果MP/MC引脚为低电平,则跳转到内部ROM的FF80中断向量表的Reset中断,该处有一个跳转指令转到称为Bootloader的加载程序执行,该程序的功能是按照一定顺序查找可用的加载方式,如果找到,则开始加载应用程序,加载完毕转向应用程序执行。实现并行存贮器加载的关键是建立一个加载表(boottable),该表包括:一个或多个程序代码段、部分需要初始化的寄存器值、程序入口等信息。CCS附带有一个应用程序(C5000系列是hex500.exx)可以把。out程序转成。hex格式的加载表,然后可以烧录到非易失性存贮器中,如OTP/EPPOM/EEPROM/Flash中。C5000的具体加载过程如下:
(1)首先,在自举加载前对其进行初始化,其中包括:使中断无效(INTM=1),内部RAM映射到程序/数据区(OVLY=1),对程序和数据区均设置七个等待状态等。
(2)检查INT2,决定是否从HPI中载。主机接口(HPI)是利用INT2进行自举加载的。如果没有INT2信号,说明不是HPI加载。
(3)检查INT3决定是否进行串行EEPROM加载。如果DSP检测到INT3信号,则进行串行EEPROM加载,否则转到(4)。
(5)初始化串口,置XF为低。若McBSP1接收到一个数据,先检查是否是有效的关键字,若是则通过McBSP1进行串口加载,否则检查McBSP0,其过程与McBSP1相同。
(6)检测BID引脚是否为低,若为低再检查是否为有效的关键字,若是则进行I/O加载,否则检测是否是有效的入口点,若是,则转入入口点,若都不是则跳到(5)。
初始化工作包括:使中断无效(INTM=1),内部RAM映射到程序/数据区(OVLY=1),对程序和数据区均设置7个等待状态。初始化结束后就进入DSP自引导程序。根据实际需要,我们采用了16位的并口模式,具体的连接图如图2所示。上电前设置MP/MC=0,上电后,首先置DSP的IS引脚为低电平,读取I/O空间地址0FFFFh单元的值,接着判断数据空间的0FFFFh单元的值,判断是8位BOOT还是16位BOOT模式,然后根据EPROM的数据组织结构进行读取认可,把片外数据的内容BOOT到DSP片内的程序区,根据程序的跳转指令执行相应的程序。
3 8位EPROM加载过程
当检测到不是串行EEPROM加载时,加载程序则转入并行加载方式。此时加载程序从并口(外部存储器)传输代码到程序空间,支持8位和16位加载。另外,程序也可自动配置SWWSR(软件等待状态寄存器)和BSCR(分区转换控寄存器),使之与不同加载方式相适应,从而使DSP能与不同速率的EPROM相连接。考虑到高速器件与低速器件的匹配问题,加载程序使用默认的七个等待周期。
加载程序能从I/O空间的0FFFFH和数据空间的0FFFFH处获取代码的首地址。通常,从数据空间获取代码的首地址较方便。因为在数据空间不需要另扩I/O空间,同时又可增加电路改动的灵活性。对5402来说,自举表可以位于4000H~FFFFH处的任何位置。图2详细描述了EPROM加载过程。
应当注意的是:如果不用并行加载方式,D0必须通过一个小的上拉电阻置为高电平,以此来避免加载程序从数据空间读到0AAH关键字。另外,加载程序事先并不知道存储器的宽度,所以它要同时检查存储器的低位(0FFFFH)和高位(0FFFFH)以获取正确的源地址。
4 自举表
表1 自举表的结构图
08AAh or 10AAh |
Initialize value of SWWSR 16 |
Initizlixe value of BSCR 16 |
Entry point (XPC)7 |
Entry point(PC)16 |
Size of first section 16 |
Destination of first section (XPC)7 |
Destination of first section (PC)16 |
Code word(1)16 |
… |
… |
Code word(N)16 |
Size of last section 16 |
Destination of last section(XPC)7 |
Destination of section (PC)16 |
Code word(1)16 |
Code word(N)16 |
0000h |
假设用户编制的源程序文件为radar.asm,链连器命令文件为radar.cmd,生成的COFF文件为radar.out,生成的INTEL的十六进制文件为radar.hex,用户可以通过EPROM编程器将它烧录到EPROM中。
(1)首先,使用编译器对应用程序进行编译。值得注意的是必须在编译器的命令行上加-V548选项,若遗忘了这个选项,以后HEX转换工具将会产生C54早期版本的自举表,而不提供任何错误与警告信息。这个错误极其隐蔽,务必注意。
(2)第二步,对步产生的目标文件进行链接。在链接过程中,链接器将各个目标文件合并,并完成以下工作:
●将各个段配置到目标系统的存储器;
●对各个符号和段进行重新定位,并给它们指定一个终的地址;
●解决输入文件之间未定义的外部引用。
(3),运行HEX代码转换工产生自举表。十六进制转换程序可以很方便的将COFF目标文件转换成TI,INTEL,MOTOROLA或TEKTRONIX公司的目标文件格式。转换后生成的文件到EPROM编程器。
本文介绍了C5000芯片加载过程、各种引导方式,详细分析了EPROM的并行应用,实践证明EPROM加载方法及其注意事项。改实验是一种低成本、简捷、有效的方法。
版权与免责声明
凡本网注明“出处:维库电子市场网”的所有作品,版权均属于维库电子市场网,转载请必须注明维库电子市场网,https://www.dzsc.com,违反者本网将追究相关法律责任。
本网转载并注明自其它出处的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品出处,并自负版权等法律责任。
如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。
- 模糊逻辑在 DSP 上实时执行2023/7/25 17:13:30
- 多速率DSP及其在数模转换中的应用2023/6/12 15:28:52
- 使用 DSP 加速 CORDIC 算法2023/3/29 15:46:30
- 高速DSP系统的信号完整性2022/9/26 16:45:38
- 自适应噪声消除系统的实现2022/1/17 17:51:17