当前位置:首页 > 电源 > 数字电源
[导读]本文针对在极低谱密度,高频谱利用率的大容量无线传输技术研究中C6000 系列DSP 的应用程序大于1K 字节的情况,提出了一种使用二级bootloader 从Flash 启动DSP 的方法。 该方法可应用于采用了C6000 系列DSP 的嵌入式系统中,不需要额外的Flash 编程器,具有 广泛的适用性。

1 引言
在极低谱密度,高频谱利用率的大容量无线传输技术中,高速实时信号处理成为技术的关键。目前市场上,能满足对高速实时信号处理的需要有具有良好的可编程性的器件主要有DSP 和FPGA。
TMS320C6000 系列DSP 是TI 公司推出的一种高性能的数字信号处理器,包含定点和浮点两个系列,其中定点系列包括TMS320C62xx和TMS320C64xx,浮点系列包括TMS320C67xx。 C6000 系列DSP 有三种启动方式:
(1) 主机启动
如果选择主机启动模式,在复位信号结束后,DSP 的CPU 被内部“阻塞”而其他部分都被释放。在此期间,一个外部的主机在必要时可以通过主机接口初始化CPU的内存空间,包括配置与启动相关的内部寄存器。一旦主机完成了所有必须的初始化,它必须将HPIC 寄存 器的DSPINT位置“1”来完成启动过程。在程序加载完后,CPU 被从“阻塞”中唤醒,然后从地址0 处执行指令。在CPU 被唤醒后,CPU 需要将DSPINT 位清零[1]。
(2) ROM 启动
如果采用ROM 启动模式,则C6000 系列的DSP(C621x/C671x/C64x)复位后自动从CE1 空间的起始处拷贝1K字节的代码到内存空间。该拷贝过程由EDMA 完成,使用默认的Rom 时钟。在此过程中CPU 一直处于“阻塞”状态,直到拷贝完成后才被被唤醒,然后从地址0处开始执行程序[1]。
(3) 无启动
如果选择无启动模式,CPU 复位后直接从地址0 处开始执行指令。 C6000 系列DSP 的器件配置情况决定了选择的启动方式。具体来说就是DSP 的启动模式管脚(boot mode pins)接上拉还是下拉电阻。以C6416为例,BEA[19:18]是启动模式管脚,它们取不同的值(上拉电阻代表“1”,下拉电阻代表“0”)代表的含义如表1-1 所示:

 
如果DSP 的程序小于1K 字节,那么上述ROM 启动机制已经可以完成程序的加载。然而事实上大部分DSP 的程序会大于1K字节,这时就需要创建一个特定启动程序来完成更多代 码的加载。该特定启动程序又被称作二级bootloader[2]。
在需要二级bootloader 的程序中,这段特定启动代码通常驻留在ROM 存储器的起始位 置以便在DSP 复位后能自动被加载到内存地址0 处。当1K字节代码被加载完毕后,CPU 开始从地址0 处执行,也就是执行二级bootloader 的内容。二级bootloader 的功能就是将程序的剩余部分拷贝到内存中。
2 启动方法的设计与实现
采用二级bootloader 的DSP 启动方法的实现大体分为四步:配置存储器;编写 secondary bootloader
代码;编译程序,转换目标文件的格式;将程序烧写进Flash。图1 为实施该启动方法的硬件平台示意图,其中DSP 的型号选择C6416,Flash 的型号选择 AM29LV800B。
 
2.1 配置存储器
2.1.1 定义存储器分区
为了实现使用二级bootloader 的ROM 启动,需要将Flash 划分为FLASH_BOOT, FLASH_REST
两个区。这两个区分别存储由on-chip bootloader 拷贝的程序段和由secondary bootloader 拷贝的程序段。对于BIOS 程序,Memory 段的定义在MEM(Memory Section Manager)对象里。对于非BIOS 程序,Memory 段定义在linker command file 中。一个C6416 的Memory 段定义的例子如下所示:
 
2.1.2 COFF 段的定位
DSP 程序是以COFF 段的形式在内存中存放的。一个COFF 段就是一个代码或数据块, 它在内存中占据连续空间。COFF 段分为自定义段,初始化段和未初始化段三种。COFF 段可 以有各种属性,其中load 属性和run 属性跟DSP 启动有密切关系。Load 属性指明段的存储地址,run 属性指明段的执行地址。二级bootloader 负责将所有的段从load 地址拷贝到run 地址。例如:
.text: LOAD= FLASH, RUN= IRAM
表示代码段.text 被存储在flash 中,DSP 启动时二级bootloader 将该段拷贝到IRAM 中。
2.2 编写Secondary Bootloader 代码
对于C6416,外部存储器接口(EMIF)需要正确配置以后才可以访问外部存储器件。在这 项工作完成后,二级bootloader 应该将所有的初始化段从它们的load 地址拷贝到run 地址, 之后再跳转到_c_int00,也即是程序入口点。Secondary Bootloader 用汇编语言编写,因 为此时C 环境尚未建立。
二级bootloader 必须知道所有初始化段的大小,在Flash 中存储的位置以及应该被加载到何处才能进行正确的拷贝。事实上,二级bootloader 通过读取段拷贝表获得上述信息。本文第三部分详细说明了有关段拷贝表的内容。完成二级bootloader 代码的编写后,应将它添加入工程,与工程的其他代码一同编译链接生成.out 文件。
2.3 转换目标文件的格式
编译链接生成的是.out 格式文件,然而Flash 一般接收的是ASCII 格式的文件[3]。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) 的程序下载到DSP 内存中,通过与FBTC 的实时数据交换完成对Flash 的擦除编程等操作。 针对不同的硬件(DSP,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 系列DSP 的应用程序大于1K 字节的情况,提出了一种使用二级bootloader 从Flash 启动DSP 的方法。 该方法可应用于采用了C6000 系列DSP 的嵌入式系统中,不需要额外的Flash 编程器,具有 广泛的适用性。
本文作者创新点:在二级bootloader 中引入段拷贝表用以控制程序加载过程,并利用 CCS 自身的编译功能获取段拷贝表的内容,该方法可提高效率且准确性高。
本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

四季酒店集团2022年10月17日宣布任命Alejandro Reynal为CEO兼总裁,希望提高集团的数据应用能力,以提升业绩表现。在加入四季酒店之前,Reynal担任凯悦旗下度假村品牌Apple Leisure的总裁...

关键字: APPLE CE TE 电信

Zara母公司、西班牙快时尚巨头Inditex集团考虑将其在俄罗斯的资产转让至“友好”国家的合作伙伴。这些合作伙伴可能来自东南亚或波斯湾,此举可能允许Zara继续在俄罗斯境内运营。Inditex的一些品牌,如Massim...

关键字: TE TI MASSIMO

今年7月份,Stellantis集团宣布,由于之前宣布的Stellantis获得与广汽集团合资企业广汽菲克多数股份的计划缺乏进展,Stellantis将采用轻资产方式在中国发展Jeep品牌,并与广汽集团协商终止本地合资企...

关键字: ANTI LAN 汽车 TE

根据最新预测,由于明年新冠疫苗的交付量几乎减半,有史以来最赚钱的一些医药产品制造商将面临收入下滑的局面。健康数据分析集团Airfinity表示,辉瑞(Pfizer)、BioNTech和莫德纳(Moderna)已开始提高疫...

关键字: 数据分析 TE RF NI

纽约2022年10月17日 /美通社/ -- 为期5天的全球三大IT科技展之一Gitex Technology Week(以下简称:GITEX)正式在迪拜落下帷幕。彩色星球科技作为纳斯达克上市科技型企业(纳斯达克代码:c...

关键字: GIT TE WORLD RS

上海2022年10月13日 /美通社/ -- 当下,Matter已成为全球物联网行业最热门的话题之一。经过两轮全球性测试活动SVE1及SVE2后,DEKRA德凯西班牙马拉加和中国广州实验室率先成为CSA联盟(Connec...

关键字: TE CE STANDARDS CONNECTIVITY

收购美国湿式洗涤器和废气净化系统专家 Exyte首席执行官Büchele: "收购将强化我们为客户提供的废气管理技术解决方案。"...

关键字: 半导体 TE AIR BSP

(全球TMT2022年10月12日讯)Exyte已完成对美国废气净化技术专家Airgard Inc.的收购。Airgard成立于1988年,总部位于加利福尼亚州的Milpitas,是 "湿式" 洗涤器开发和制造领域的领...

关键字: TE AIR 进程 半导体行业

(全球TMT2022年10月12日讯)作为汽车应用氮化镓(GaN)解决方案的全球领导者,VisIC Technologies LTD公司宣布: Dieter Liesabeths将加入公司,担任产品高级副总裁。Diet...

关键字: SIC VI TE 氮化镓

即将与Farfetch合并的奢侈时尚电商平台Yoox Net-a-Porter日前宣布Alison Loehnis为临时首席执行官,任命自10月31日起生效。Alison Loehnis于2007年首次加入Net-a-P...

关键字: NET TE ISO NI

数字电源

15504 篇文章

关注

发布文章

编辑精选

技术子站

关闭