基于闪烁存储器的DSP并行引导装载方法
上电复位后,TMS320VC5409检测其MP/MC引脚,如果MP/MC=0,DSP从0xFF80h处开始执行片内引导装载程序。进入引导程序后,如有INT2请求中断,则进入HPI 引导方式;如有INT3请求中断,则进入EEPROM串行口引导方式;否则就进入并行引导方式。其详细引导过程如图3所示。
片内并行引导方式前半部件是I/O空间并行引导方式,我们不采用此方式,程序继续运行直到从数据空间0xFFFFh地址读入一个地址数据,此数据为用户自举表的入口地址。这时片内引导程序就开始执行FLASH中的用户自举表,若自举表的第一个字是0x10AA,则表示是16位并行引导模式。
4 FLASH中自举表(Boottable)的存储格式
为了实现DSP加电自举,FLASH的数据必须按照自举表的格式“烧写”。自举表的作用是:DSP运行此表时,首先根据自举表中前部分用户起始地址把后面的用户程序代码加载到DSP片内程序空间中相应的用户地址区域(由于FLASH与DSP时间不匹配,要设置好SWWR和BSCR寄存器),然后根据自举表中的程序入口址,在程序空间相应的地址开始运行程序。表2为16位并行自举的代码结构(自举表在空间允许的情况下可以放几个程序代码段,为便于说明,在此只说明一个程序代码段的情况)。
表2 并行自举表的代码结构
下面结合一个实例,说明利用hex500命令生成二进制数据自举表的方法。
(1)所编写的一个用户程序名为myblink.C,在编译链接成功后生成的输出文件名为myblink.out;程序空间的开始地址为0x1400h,程序执行的入口地址为0x144Fh。利用hex500工具,生成文件名为myblink.hex的二进制数据,hex500命令后添加如下条件:
mybilink.out ;要转换的.out文件
评论