实验八 程序加载
C5000 DSP没有内部提供掉电保存程序的ROM/EPROM/Flash,上电时需要从外部加载应用程序。C5000
DSP提供了多种程序加载方式,满足不同应用的需要:串行加载、并行加载、HPI加载等,实际应用最多的是并行加载,本实验主要介绍8位并行存贮器加载。
加载过程:DSP上电时,如果MP/MC引脚为低电平,则跳转到内部ROM的FF80中断向量表的Reset中断,该处有一个跳转指令转到称为Bootloader的加载程序执行,该程序的功能是按照一定顺序查找可用的加载方式,如果找到,则开始加载应用程序,加载完毕转向应用程序执行。
实现并行存贮器加载的关键是建立一个加载表(boot
table),该表包括:一个或多个程序代码段、部分需要初始化的寄存器值、程序入口等信息。CCS附带有一个应用程序(C5000系列是hex500.exx)可以把.out程序转成.hex格式的加载表,然后可以烧录到非易失性存贮器中,如OTP/EPPOM/EEPROM/Flash中。
具体步骤:
1.修改项目的编译选顶,使其生成可以转化成加载表的.out文件格式
2.为hex500.exe建立一个配置文件
3.用hex500.exe把*.out转化成加载表*.hex
4.在.hex未尾加上加载表起始地址
5.烧录到非易失性存贮器中
6.安到目标板上进行加载实验
各步骤详述如下:
1.修改项目的编译选顶,使其生成可以转化成加载表的.out文件格式
在Project/Build Option…/Complier 里面加一个选项:-v548,或在Basic/Process
verson一栏中填写:548,然后点确定。
注意:如果不加这个选项,用hex500程序转化出来的hex文件无法加载。
2.为hex500.exe建立一个配置文件
这个配置文件包含了hex500程序执行所需要的选顶,下面是一个样板配置文件hex.cmd:
sample.out /* 待转化的程序文件*/
-map hex.map /* 生成一个map文件便于查看转化结果*/
-o hex.hex /* 输出文件名*/
-i /* 输出文件为Intel Hex 文件格式 */
-memwidth 8 /* 目标系统的存贮器为8位*/
-romwidth 8 /* 存贮器芯片的位宽为8位*/
-boot /* 生成加载表*/
-bootorg 0000h /* 加载表在存贮芯片中的起始位置*/
-e 80h /* 程序入口,即加载完毕后跳转执行程序位置 */ |