新闻中心

EEPW首页>嵌入式系统>设计应用> TMS320C672x系列浮点DSP的EMIF研究与应用

TMS320C672x系列浮点DSP的EMIF研究与应用

作者: 时间:2011-03-16 来源:网络 收藏


Flash在读操作中类似于普通的ROM,在写操作中需要使用一些特殊命令字,按一定的顺序编程,且可随时编程,编程命令根据器件参考资料。对Flash的读/写流程如图7所示。


由表1知,对Flash进行16位数据写操作时每次偏移地址需要左移1位,即:*(short int*)(0x90000000+i*2)=shortint i://对Flash的i地址写入16位数据i由于此Flash高位地址线为扩展的地址线,必然导致访问Flash时地址不连续。每次只能连续访问Flash内部4 Kx16 Bit空间,即0x9000_0000~0x9000_1FFE。需要访问高地址空间时,首先通过设置相应的GPIO引脚或者通过数据线利用CPLD设置Flash的相应高地址线;然后再分别操作低位地址线进行读写,便可完成对高地址空间的读写。

4并行Flash自启动
4.1 Flash自启动过程

在实际中通常把代码和数据表存放在外部的非易失性存储器Flash中。TMS320C672X片上的Bootloader工具只能将1KB的代码搬移到内部RAM。但是在通常情况下,用户程序的大小都会超过1 KB,所以需要在外部Flash的前1 KB范围内预先存放一小段程序,待片上Bootloader工具把此段代码搬移入内部并开始执行后,由此段代码将Flash中剩余的用户程序搬移入内部RAM中。Flash中前1 KB代码为二级Bootloader。系统上电或复位时,内部固化的启动代码会自动将位于Flash地址空间(0x90000000~0x9FFFFFFF)开头的1 KB代码传输到RAM存储空间,这就是一次引导。很明显,一次引导的代码并不能满足绝大多数编程者对代码长度的要求,因此就需要二次引导过程。二次引导是将一次引导的1 KB代码编写成一个搬移程序,搬移程序将用户的主程序搬移到高速RAM中,并且搬移完成后自动跳转至主程序入口处运行主程序。由于硬件设计中Flash的地址不连续,因此对高位地址线的控制需要在搬移程序中实现。图8为使用二级Bootloader的流程图。


二级Bootloader代码的编写必须使用汇编语言,因为在执行二级Bootloader时C的运行环境还未建立起来。
4.2 Flash的烧写方法
应用程序和二次Boot编写和编译完成之后,便可使用TI公司提供的FlashBurn工具完成Flash烧写,烧写完成后需要重新上电或复位,便可实现自启动。此FlashBurn工具虽然烧写方法较为直观,但是过程复杂,首先需要下载一个.out文件(FBTC)至DSP系统中,实现对Flash的操作;其次FlashBurn工具不能识别.out文件,只能接收.hex的十六进制文件,必须将.out文件转换为.hex文件。
因此,用户可以自己根据Flash器件的操作方法编写烧写程序,避免文件格式转换的繁琐。首先把用户应用程序(包括二级Bootloader)编译生成的.out文件转载到DSP的RAM中,然后根据要求编写Flash烧写程序,把烧写程序的.out文件装载到DSP的另一块区域(注意修改cmd文件中地址范围,避免两次装载可能产生的地址覆盖),执行程序完成Flash的烧写。注意:烧写到Flash中的应用程序前面12个字节用于存放_c _int00地址、应用程序字节数、应用程序在RAM中的起始地址,这12个字节需要在烧写过程中添加。

5 结束语
本文主要DSP接口的功能和使用方法,并针对SDRAM和Flash器件讨论了的具体硬件接口设计和软件配置;同时分析了的自启动过程,提出了两种烧写Flash的方法。该应用方法经实验验证,确实可行并易于实现。

存储器相关文章:存储器原理



上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭