4 现场可编程的实现方法  
 
由于DSP的程序一般存储在外部存储器之中,因此,现场可编程的实现就是要将新程序通过DSP写入存储器。在以前,由于存储器的烧写电压普遍高于其工作电压,只能通过编程器烧写.随着技术的发展,现在许多E2PROM、Flash存储器等都可进行电擦写,擦写电压和工作电压一致,因此完全可以进行工作电压下的编程。  
 
对DSP进行现场编程,需要用到的器材有计算机和DSP仿真器;需要用到的软件有CCS集成开发平台、UltraEdit-32程序和DSP现场编程程序。具体操作步骤如下:  
 
①在CCS集成开发环境下,将程序编译完成,并在目标板上运行通过。 
②打开程序存储器窗口,根据程序的起始、结束地址,将整个程序代码存储为一个数据文件(dat文件)。 
③生成hex文件。 
④用UltraEdit-32程序打开hex文件,找出程序人口值和程序长度值以及程序开始地址值. 
⑤调入烧写程序,并装载入系统芯片. 
⑥将程序入口值、程序长度值、程序开始地址值填人现场编程程序中并编译通过。 
⑦将存储的程序代码调入数据空间的适当位置(存放位置自定)。 
⑧运行现场编程程序,通过DSP将代码写入外部程序存储器。  
 
以上步骤仅在编程开始时进行,一旦编程开始,就可以连续对多个器件现场编程。  
 
DSP现场编程程序的编制也很简单。下面的参考程序是根据前面的命令文件参数编写的,并经仿真验证通过。设定Mc·BSP2口以SPI方式引导串行E2PROM。  
 
.text 
…… ;McBSP2口SPI初始化,主动方式 
STM #1000H,ARl;从1000H开始10个字为程序 
;代码前的数据 
ST #08AAH,* ARl+ ;引导头 
ST #0018H,* ARl+ 
ST #O003H,* ARl+ 
ST #0800H,* ARl+ 
ST #D010H,* ARl+ ;不重要 
ST #000lH,* ARl+ 
ST #0C428H,* ARl+ ;主程序人口为1C428H 
ST #2340H,* ARl+ ;程序代码总字数2340H 
ST #000lH,* ARI+ 
ST #0C000H,* ARl+;程序开始地址1C000H 
STM #(1000H+0AH+2340H),ARl 
ST #O,* ARl;最后放结束标志#0000H 
STM #O,ADDRESS ;地址寄存器清零 
STM #1000H,AR2 ;程序代码开始地址 
STM #(0AH+2340H+1),BRC 
RPTB LOOP ;写循环 
LDM ADDRESS,A 
SFTL A,-8 
AND #OOFFH,A 
OR #0200H,A 
STLM A,AR3 ;写指令+地址高位 
LDM ADDRESS,A 
SFTL A,8 
AND #OFF00H,A 
LD * AR2,B   
SFTL B.-8 
AND #0FFH,B 
ADD B.A 
STLM A,AR4 ;地址低位+数据字节 
LDM ADDRESS.A 
ADD #1.A 
STLM A,ADDRESS ;E2PROM地址+1 
CALL WRITE ;写E2PROM子程序 
LDM ADDRESS,A 
SFTL A,-8 
AND #00FFH,A 
OR #0200H,A 
STLM A,AR3 ;写指令+地址高位 
LDM ADDRESS,A 
SFTL A,8 
AND #0FFOOH,A 
LD *AR2+.B;程序代码地址+1 
AND #0FFH,B 
ADD B.A 
STLM A,AR4 ;地址低位+数据字节 
LDM ADDRESS,A 
ADD #1,A 
STLM A,ADDRESS ;EOPROM地址+1 
CALL WRITE;写EOPROM子程序 
LOOP:NOP 
.end    
 
结 语  
 
本文介绍的DSP现场可编程方法,经实际应用效果良好,其方便灵活的特点增强了现场处理问题的能力。由于其完全由软件实现,因此这种方法同样也适用于其他品牌的DSP产品  
 
 |