TMS320C6x DSP的FLASH引导方法研究与实现
Read strobe:630ns
Read hold:3ns Read setup:0ns
Read strobe:120ns
Read hold:0ns QDMA方式 14825 1479s CPU流水线搬移 15573 2390s
搬移大小:SIZE=0小3A3 WORD
由测试结果可以看出,不需要CPU直接参与数据搬移的QDMA方式比CPU流水搬移更具优越性,搬移速度快且设置简单。但CPU的流水搬移利用了TMS320C6000系列DSP汇编的特点,深入分析了指令的软件流水方式,很大程度地提高了CPU的利用率,拓宽了编程思路,也不失为一种好的选择。
3 利用ISP对上电引导程序进行了FLASH编程
3.1 文件格式的转换
完成了引导程序,包括.cmd文件中内存段的设置及连接设置后,用TI的编程工具CCS(Code Composer Studio)编译连接生成目标文件(.out文件)。但该.out文件格式是COFF文件格式,FLASH不支持这种格式,所以不能直接写入FLASH中,必须对该.out文件进行转换,提取出其中的数据部分,形成数据文件。最后利用烧写程序将已转换好的数据文件烧写到FLASH ROM中。(凹丫丫范文网fanwen.oyaya.net收集整理)
有两种方式可将COFF格式文件转换成数据文件。一种是利用TI公司的HEX6x.exe工具,将生成的.out文件转化成.hex输出文件。由于该HEX6x.exe工具是提供给EPROM编程器的,用EPROM编程器可直接烧写.hex文件。但对于FLASH ROM的在系统编程来说,生成的.hex文件不能直接使用,必须再编写一段程序将.hex的文件头去掉,分离出数据文件,最后才能由FLASH的烧写程序将最终的数据文件烧写到FLASH ROM中。也可以不用TI公司的工具,而根据COFF文件格式直接提取出数据。生成一个数据文件,然后将其烧写到FLASH ROM中。
COFF文件采用的是向量组织方式,可以很灵活地安排代码段和目标系统存储器。了解COFF文件的结构,不仅可以清楚.cmd文件的编写原理,而且可以认识初始化段和非初始化段的区别,同时还可以在转换文件时减少转换步骤。COFF文件的格式如表3所示。
要提取的数据部分即台化段是表3的Row data部分,也就是可执行代码和初始化代码部分。首先,根据文件头的信息(文件头描述了整个文件的全局信息)获得文件中段的数量,然后根据段的头(Section header)信息,判断该段是否为初始化段的头。因为非初始化段是在程序运行中才分配的,若为初始化段的头,则取得初始化段的位置,将这些段按地址由低到高的顺序复制到输出文件,便得到了可烧写的数据文件。其流程如图1所示。
3.2 利用ISP技术烧写FLASH
烧写程序负责将前面所生成的数据文件写入FLASH ROM中,利用ISP技术,就不需要其它编程设备和附加编程电源,直接通过烧写程序烧写就可以了。烧写程序必须根据所用的FLASH的型号来编写。以SST29LE010为例,其软件数据保护和页面写、芯片擦除、芯片型号软件检测等都有不同的指令和时序,如表4所示,需要查阅该型号的芯片手册,根据手册完成烧写程序。
表4 SST29LE010内存指令表
总 线 周 期
命令序列 1 2 3 4 5 6 地址 数据 地址 数据 地址 数据 地址 数据 地址 数据 地址 数据 软件数据保护和页面写 5555 AA 2AAA 55 5555 A0 地址 数据 芯片擦除 5555 AA 2AAA 55 5555 80 5555 AA 2AAA 55 5555 10 《TMS320C6x DSP的FLASH引导方法研究与实现(第2页)》