您当前的位置:五五电子网电子知识单片机-工控设备DSP/FPGA技术用DSP软件编程实现的引导装载系统 正文
用DSP软件编程实现的引导装载系统

用DSP软件编程实现的引导装载系统

点击数:7236 次   录入时间:03-04 11:45:41   整理:http://www.55dianzi.com   DSP/FPGA技术

nop

nop

nop

1d #0ff80h,a ;移植中断向量表,

0xff80为中断向量表的旧起始地址

stm # VECT_NEW,arl;VECT_NEW表示中断向量表的新起始地址

rpt#(VECT_LEN_1);VECT_LEN表示中断向量表的长度

reada * arl+

nop

ld # MAIN_OLD,a ;移植用户程序段,

MAm_OlD表示用户程序段的旧起始地址

stm # MAIN-NEW,arl ;MAIN_NEW表示用户程序段的新起始地址

rpt#(MAIN_LEN_1) ;MAIN_LEN表示用户程序段的长度

reada * arl+

endboot:

orm # 020h,@ldh ;

设置OVLY=1,使得内部RAM同时映射到DSP数据和程序空间

ld # MAIN_NEW,a

bacc a ;程序指针指向用户程序段的起始地址

.end

用户程序段(main.asm)代码如下:

.def main_start

.sect "main_prg"

main_start:

loop: rsbx xf ;实现XF的复位和置位

nop

ssbx Xf

nop

b loop

.end

中断向量表(vect.asm)如下:

.mmregs

.Ief main_ start

.ref lOad_start

.def reset

.def nmi

.sect''.vectors''

reset: bd load_start ;加电后,跳转到自启程序段起始地址

stm #200,sp

nmi: rete ;

此表中只包含NMI中断入口,也可以类似添加其他中断入口

nop

nop

nop

.end

连接命令文件(boot.cmd)的配置如下:

vect.obj

main.obj

load.obj

-O boot.out

SECTIONS

{

main_prg:load=MAIN_OID,run=MAIN_NEW

vectors: load=0ff80h,run=VECF_NEW

load_prg:load=0f800h

}

上述引导程序经过CCS编译及连接后,生成的目标文件boot.out是TMS320VC5410能够识别的COFF格式,但是M29W400T不支持这种格式,所以不能直接写入FLASH中。而CCS自身带有多种HEX类型的转换程序。因此,在经过格式转换后,即可得到对应于上文提到的一系列数据和地址mydata和myaddress,此时就可以在联机情况下利用CCS以DSP软件编程方式将目标代码写入到M29W400T之中。一旦写入成功,便可以脱机加电自启系统。同时,在经一段时间后,还可用示波器测得XF管脚输出的均匀脉冲方波,以证明引导装载成功。

参考文献

1.TI CO.TMS320VC5410Fixed-point Digital SignalProcessor Data Manual.2000.12

2,TI CO.TMS320C54x Assembly Language Tools User'SGuide.1999.12

3.ST CO.M29W400 Data Sheet.1999.11

4.ST CO.SOFtware Drivers fOr M29F400 and M29W400FLASH Memories.2000.3




上一页  [1] [2] 


本文关键字:软件编程  DSP/FPGA技术单片机-工控设备 - DSP/FPGA技术