两类DSP芯片的引导过程分析
C5402加电时,如果芯片检测到MP/MC引脚电平为低电平,系统从0FF80H开始执行代码。此处有一个分支指令(厂家编程设置的),可以跳转到引导程序的开始地址(0F800H)。这个程序可以在引导之前设置CPU状态寄存器的初始值。中断被全局禁止,OVLY设置为1,程序和数据存取等待时间被设置为7个等待周期,外部内存块被设置为4K的WOROS(16BIT),然后开始程序的引导。
当C5402检测到INT2引脚为高电平、INT3引脚为高电平,即两个引脚都无效时,C5402会转到并行引导方式。并行引导方式是通过扩展的内存接口从数据地址空间读取所需的引导表,再将代码传送到程序存储区。并行引导既支持8位的数据宽度,也支持16位的数据宽度。软件可编程等待寄存器(SWWSR)和块切换控制寄存器(BSCR)都可以在这两种模式中得到设置。
C5402数据存储区、程序存储区和I/O地址空间,用/DS、/PS和/IS三个引脚信号区分。系统的引导表设在数据存储区,考虑到C5402内部只有16K×16的双存取RAM(DRAM),因此用于程序加载的EEPROM(EEPROM)中存放的是系统的引导表)可考虑使用28LV256。如果在设计中,使28LV256(+3.3V供电)占用系统的数据空间地址为8000H~0FFFFH,那么,C5402在系统引导时需从系统的数据地址0FFFEH和0FFFFH得到引导表的起始地址8000H。在设计系统引导表时要注意这两个单元的内容。如果设计EEPROM的首地址(系统引导表的首地址)为0C000H,那么数据地址0FFFEH和0FFFFH两个单元要存放C0和00H,也就是引导表的首地址。在设计中也可以使用其它EEPROM或FLASH,如29LE010(128K×8BIT),但要正确配置它在系统中的地址。引导表的首地址(即EEPROM的在系统中的首地址)是通过系统数据地址0FFFEH和0FFFFH决定的,可以是08000H~0FFFDH之间的任意地址,但要保证能够存储系统引导表。
(凹丫丫范文网fanwen.oyaya.net收集整理)
2 建立系统引导表的步骤
程序经过仿真器仿真无误以后,就要建立引导表,使系统能够脱机运行。下面介绍建立系统引导表的步骤:
(1)编译文件。编写完程序代码以后,对源程序进行编译,生成.obj文件,对于C5402,编译时要采用-V548的编译描述符。
(2)链接文件,将.obj文件生成.out文件。.out文件中应包括初始化的段落。如.text,.const,.cinint等。以上两步在仿真时,也需要执行,以便得到仿真用的.out文件。
(3)使用数制转换工具生成.HEX文件或.BIN文件,C40使用的数据转换工具为hex30.exe,C5402使用数制转换工具编写命令文件,命令文件的编写很重要,下面分别例举了C40和C5402系统引导的两个CMD命令文件。
例1:C40系统引导的CMD文件
myfile.out /*要进行转化的COFF文件名*/
-i /*建立INTEL十六进制文件的输出*/
-image /*产生ROM所指出的内存映射*/
-o n_t_fcom.hex /*输出的文件名*/
-map n_t_hex.map /*输出的MAP文件名*/
-romwidth 8 /*EEPROM的数据宽度*/
-cg 000000000H /*全局数据总线控制字*/
-cl 3e3fbfd0H /*本地数据总线控制字*/
-datawidth 32 /*数据宽度*/
-memwidth 8 /*存储器的宽度*/
-boot /*将所有的输入文件创建引导表*/
-bootorg 0000H /*EPROM的0000H,系统的0030 0000H*/
-ivtp 00700000H /*IVTP指针的初始值*/
《两类DSP芯片的引导过程分析(第2页)》