TMS320VC5402的并行引导装载方案的研究与设计
.global sinitCLKMD
.sect "initCLKMD"
sinitCLKMD:
cmpm CLKMD,#0x1007 /*测试DSP是否工作在2倍频*/
nop
bc lretest,ntc
stm #0h,CLKMD /*将CLKMD寄存器设置为二分频,即关闭倍频电路*/
test: ldm 58h,A /*下面程序读取CLKMD的PLLSTAUS值
AND #0001h,A 如果PLLSTAUS值为0,则DIV状态
Bc test,aneq 设置成功。为1,等待再检测*/
Stm #vCLKMD,CLKMD /*将CLKMD设置为5倍频,DSP工作在100MHz/
Rpt #256 /*等待C5402工作频率稳定*/
Nop
EinitCLKMD:
Ret
.end
5 将软件装入EPROM
要使在系统调试的程序能够脱机装载,需要hex500.exe把*.out文件转化为*.hex。一个名称为main的转换文件(CMD文件)例子如下:
syw.out /*syw.out是在系统调试生成的out格式的文件名。*/
-i /*-i选项决定了输出文件的格式*/
-memwidth 8 /*-memwidth选项决定产生的数据的位宽度,根据使用的EPROM具体情况设定,这里选8。如果采用16位的EPROM则应该为16*/
-romwidth 8 /*-romwidth选项决定于存储数据的EPROM的位宽度*/
-boot /*-boot选项用来说明产生一个boot表示*/
-bootorg 0xc000 /*-bootorg选项说明加载信息在DSP数据空间中的起始位置*/
-e 0080h /*-e选项时程序中断向量的入口点*/
-o syw.hex /*-o产生的文件的文件名。*/
在DOS环境下执行Hex500 main.cmd就可以完成转换。对应上面的地址分配,在烧录时同时在EPROM的7FFEH和7FFFH处烧处C000H的值。
6 方案性能分析
从上面的分析可以看出,方案实现方便可靠。但是采用外部并行BOOT方式时,BOOT的寻址区是在数据区,因而最大的范围是3FFF~FFFFH,共48KPB。而采用8位的EPROM,最大的程序代码长度仅为24K字。如果程序超过了48K字,只能采用另外的替代方法。这是在一些电路方案论证时需要考虑的问题。
《TMS320VC5402的并行引导装载方案的研究与设计(第3页)》