新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 大容量无线传输技术中DSP的启动方法

大容量无线传输技术中DSP的启动方法

作者:时间:2012-08-27来源:网络收藏

2.2 编写Secondary bootloader 代码

对于C6416,外部存储器接口(EMIF)需要正确配置以后才可以访问外部存储器件。在这 项工作完成后,二级bootloader 应该将所 有的初始化段从它们的load 地址拷贝到run 地址, 之后再跳转到_c_int00,也即是程序入口点。Secondary Bootloader 用汇编语言编写,因 为此时C 环境尚未建立。

二级bootloader 必须知道所有初始化段的大小,在Flash 中存储的位置以及应该被加 载到何处才能进行正确的拷贝。事实上,二级bootloader 通过读取段拷贝表获得上述信息。 本文第三部分详细说明了有关段拷贝表的内容。完成二级bootloader 代码的编写后,应将它添加入工程,与工程的其他代码一同编译链接生成.out 文件。

2.3 转换目标文件的格式

编译链接生成的是.out 格式文件,然而Flash 一般接收的是ASCII 格式的文件。CCS 附带的工具hex conversion utility 可将.out 文件转换为ASCII 格式的.hex 文件,Hex6x 以命令行文件的形式执行。Hex 命令行文件中,首先指明输入文件(.out),输出文件的格式和ROM 的大小及类型,以及哪些段需要被放在ROM 中。一个Hex 命令行文件的例子如下所示(注释内容用“/*”和“*/”括起):







2.4 将程序烧写进Flash

将2.3 节生成的ASCII 文件烧写进Flash 可以使用CCS 自带的FlashBurn 工具。 FlashBurn 是一个带图形界面的软件,它首先将一个称作FlashBurn Target Component (FBTC) 的程序下载到 内存中,通过与FBTC 的实时数据交换完成对Flash 的擦除编程等操作。 针对不同的硬件(,Flash 型号)修改FBTC 是该的关键。所需修改处包括Flash 的基地址,大小,及读写命令字等。

3 段拷贝表

二级bootloader 使用一个段拷贝表(section copy table)进行段的拷贝。段拷贝表包 含每个需要拷贝的段的必要信息,如段的load 地址,段的run 地址,段的大小。段拷贝表被插入在secondary bootloader 的末尾。


生成段拷贝表的有两种:

1) 使用 hex conversion utility 的-boot 选项 在2.3 节中我们讨论了程序文件格式的转换和hex 命令行文件,事实上Code Composer Studio 自带的工具hex conversion utility 提供了一种更为方便的生成段拷贝表的, 只要在hex 命令行文件中使用一些特殊的选项即可。特殊的选项有–boot, ?bootorg 和 –bootsection,这三个选项的含义分别如下:

-boot 使用该选项时hex conversion utility 将自动转换所有初始化段的格式

-bootorg 指明段拷贝表的地址

-bootsection 指明二级bootloader 所在的段的名称

2) 使用 linker 选项(LOAD_START,RUN_START,SIZE)

涉及段拷贝表的生成的有三个选项:LOAD_START,RUN_START 和SIZE,可分别获得一个段的驻留地址,运行地址和大小。例如下列代码可获得text 段的驻留地址(存于_text_ld_start 中),运行地址(_text_rn_start)和段的大小(存于_text_size)

.text : load = FLASH_REST, run = IRAM

LOAD_START(_text_ld_start),

RUN_START(_text_rn_start),

SIZE(_text_size)

4 结束语

本文针对在极低谱密度,高频谱利用率的研究中C6000 系列 的应用程序大于1K 字节的情况,提出了一种使用二级bootloader 从Flash DSP 的方法。 该方法可应用于采用了C6000 系列DSP 的嵌入式系统中,不需要额外的Flash 编程器,具有 广泛的适用性。

本文作者创新点:在二级bootloader 中引入段拷贝表用以控制程序加载过程,并利用 CCS 自身的编译功能获取段拷贝表的内容,该方法可提高效率且准确性高。

本文引用地址:http://www.eepw.com.cn/article/148522.htm
上一页 1 2 下一页

评论


相关推荐

技术专区

关闭