- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
TMS320C64x系列DSP16bit Flash启动设计
TMS320C64x系列DSP16bit Flash启动设计 【摘要】对TMS320C64x系列DSP的几种启动加载方案中的EMIF加载方式进行了详细介绍。然后以型号为TMS320C642的DSP为例,仔细分析了对Flash芯片28F640J3A的16-bit模式编程烧写和上电自举的实现办法。实验证明,本DSP启动加载方案易于实现,并且方便、可靠。
【关键词】TMS320C64x;启动加载28F640J3A
1.引言
近年来,随着数字信号处理器(DSP)技术的迅猛发展,其越来越广泛地应用于同民经济的各个领域中。其中,TI公司推出的TMS320C6000系列DSP器件更是在许多需要进行大量数字信号处理运算并兼顾高实时性要求的场合得以应用。在连接硬件仿真器的仿真环境下调试DSP程序通过之后,还有一项重要的工作要做:即怎样实现程序代码的上电自举。TMS320C64x系列DSP有多种上电自举方式:不加载、HPI加载和Flash自举。实际应用中,通常采用的是通过EMIF加载Flash数据的方式,把代码和数据表存放在外部的非易失性存储器里(常采用Flash器件)。
工程中的许多数据(如滤波器系数、配置常数)常常使用16-bit的存储形式。如果把Flash设计为16-bit而不是8-bit形式,将成倍减少存取这些数据的时间,提高系统的实时性。可是,TMS320C64x只支持8-bit Flash加载。如果既能满足前者又不影响bootloader,将会更加方便工程应用。以下为16bit Flash的启动设计的过程介绍。
2.16bit Flash的启动设计的流程介绍
TMS320C64x系列DSP的16bit Flash的启动设计流程图如图1所示。
由流程图可知,在程序经过仿真条件下运行正常后,需要在工程中添加boot.asm文件并修改工程的cmd文件,然后编译生成out文件,通过TI的hex6x工具和自己编写的cmd文件,将这个out文件生成hex文件,再编写程序将hex文件转换生成二进制文件,最后,需要建立一个程序工程,将这个二进制文件读入并烧写至flash中即可。
3.硬件电路接口设计
实际应用中,多采用外接Flash来加载程序代码,这需要将DSP的AEA[22:21]引脚通过接上拉电阻实现,这样就可以使得DSP上电后通过EMIFA接口实现8-bit的Flash自举。
本系统选用的Flash芯片是Intel公司的28F640J3A,具体特征要实际修改:存储容量为8Mx8 bit,易于编程,接口如图2所示。DSP与Flash是主从关系,由DSP通过EMIFA接口控制Flash的擦除和读写。其中,A1-A19为地址线,D15-D0为数据线,/CE为片选信号,/WE是写选通信号,/OE为输出使能信号,BYTE为8位或16位数据模式选择(图中接VCC,为16位模式)。Flash用于存放引导程序段、用户代码及一些数据表,由DSP软件编程来写入。EMIFA只有20根地址线,最大可寻址lM空间,所以可以用复杂可编程逻辑器件(CPLD)控制Flash高位地址作页选择信号。
4.二级搬移程序的编写方法
TMS320C64x开机只自动加载lKB程序代码到内部RAM,所以通常要编写二次搬移程序加载剩余程序代码。二级搬移程序的大小不能超过1K字节,且必须用汇编语言编写。这需要在可以正常运行的程序中创建一个boot.asm启动文件,告知程序在启动后自动加载剩余程序代码。通常将boot.asm改动一下就可以实现,主要包括如下步骤:
(1)系统中所用的中断向量表文件不要更改,只把复位中断跳到搬移程序处,而不直接跳到C程序的入口点c_int00处;
(2)在搬移程序中配置DSP的EMIFA全局控制寄存器(GBLCTL)和空间控制寄存器(CECTL1),按TMS320C64x文档说明和所用Flash数据手册配置读写时序,由于选用16-bit宽的Flash,所以在boot.asm文件中,MY-TYPE要定义为16-bit异步接口,从而建好系统软件和硬件沟通的平台,在boot.asm中,剩余程序代码存放的起始地址为0
(3)参照map文件编写搬移程序;
(4)跳到C程序入口点c_int00处,完成搬移程序的编写。
5.程序代码文件的提取及重组
由于Flash的设置与TMS320C64x默认的8-bitFlash加载不相同,所以必须根据COFF文件(通用对象文件格式Common Object File Format)的格式重新从.out文件中提取数据信息。要提取的数据代码是初始化段和可执行代码段,这些信息可从COFF文件的段头(section h
文档评论(0)