0 卖盘信息
BOM询价
您现在的位置: 首页 > 技术方案 >工业控制 > 基于TMS320C6000系列DSP器件TMS320C67xx+AM29LV800B的大容量无线传输技术的研究方案

基于TMS320C6000系列DSP器件TMS320C67xx+AM29LV800B的大容量无线传输技术的研究方案

来源: elecfans
2020-12-30
类别:工业控制
eye 43
文章创建人 拍明

原标题:采用C6000系列DSP器件的大容量无线传输技术的研究方案

  1、引言

  在极低谱密度,高频谱利用率的大容量无线传输技术中,高速实时信号处理成为技术的关键。当前市场上,能满足对高速实时信号处理的需要有足够的优点TMS320C6000系列DSP是TI公司推出的一种高性能的数字信号处理器,包含定点和浮点两个系列,其中定点系列包括TMS320C62xx和TMS320C64xx,浮点系列包括TMS320C67xx。 C6000系列DSP有三种启动方式:

  (1)主机启动

  如果选择主机启动模式,在复位信号结束后,DSP的CPU被内部“一块”而其他部分都被释放。在此期间,一个外部的主机在必要时可以通过主机接口初始化CPU的主机完成了所有必须的初始化,它必须将HPIC寄存器的DSPINT位置“ 1”来完成启动过程。在程序加载完后,CPU被从“复制”中在CPU被唤醒后,CPU需要将DSPINT位清零。

  (2)ROM启动是否采用

  ROM启动模式,则C6000系列的DSP(C621x / C671x / C64x)。该副本过程由EDMA完成,使用替换的Rom时钟。在此过程中CPU一直处于“重叠”状态,直到复制完成后才被被唤醒,然后从地址0处开始执行程序[1]。

  (3)无启动如果选择无启动模式,CPU复位后直接从地址0处开始执行指令。C6000系列DSP的器件配置情况决定了选择的启动方式。具体来说就是DSP的启动模式

  以C6416为例,BEA [19:18]是启动模式管脚,它们取不同的值(上拉电阻代表“ 1”,下拉电阻代表“ 0 ”)的代表如表1-1所示:

  

1.jpg


  如果DSP的程序会大于1K字节,那么上述ROM启动机制已经可以完成程序的加载。而事实上大部分DSP的程序会大于1K字节,这时就需要创建一个特定的启动程序来完成更多代码的加载。该特定启动程序又被称作二级引导加载器。

  在需要二级引导程序的程序中,这段特定启动代码通常驻留在ROM存储器的起始位置以便在DSP复位后能自动被加载到内存地址0处。当1K字节代码被加载完成后,CPU开始从地址0处执行,也就是执行二级bootloader的内容。二级bootloader的功能就是将程序的剩余部分复制到内存中。

  2、启动方法的设计与实现

  图1为实施方法的详细说明。启动方法的设计与实现采用二级引导程序的DSP启动方法的实现大体分为四步:配置存储器;编写辅助引导程序代码;编译程序,转换目标文件的格式;将程序烧写进Flash。该启动方法的硬件平台示意图,其中DSP的型号选择C6416,Flash的型号选择AM29LV800B。

  

image.png


  2.1配置存储器

  2.1.1定义存储分区

  为了实现使用二级bootloader的ROM启动,需要将闪存划分为FLASH_BOOT,FLASH_REST两个区。这两个区分别存储由片上bootloader复制的程序段和由secondary bootloader复制的程序段。对于BIOS程序,对于非BIOS程序,内存段定义在链接器命令文件中。一个C6416的内存段定义的示例如下所示:

  MEMORY

  {…

  FLASH_BOOT:o = 0x64000000 l = 00000400h

  FLASH_REST :o = 0x64000400 l = 0000fc00h

  }

  2.1.2 COFF段的定位

  DSP程序通过COFF段的形式在内存中存放的。一个COFF段就是一个代码或数据块,它在内存中占据连续空间。为自定义段,初始化段和未初始化段类型。COFF段可以有各种属性,其中,负载属性和运行属性与DSP启动有密切的关系。负载属性指定段的存储地址,运行属性指定段的执行地址例如:

  .text:LOAD = FLASH,RUN = IRAM表示代码段.text被存储在flash中,DSP启动时二级bootloader将该段拷贝拷贝到IRAM中。

  2.2编写辅助Bootloader代码

  对于C6416,外部存储器接口(EMIF)需要正确配置以后才可以访问外部存储器件。在此工作完成后,二级bootloader应该将所有的初始化段从其的负载地址拷贝到run地址,之后再替换二级Bootloader用汇编语言编写,因为此时C环境尚未建立。

  二级bootloader必须知道所有初始化段的大小,在Flash中存储的位置以及应该被加载到何处实际上,二级bootloader通过读取段拷贝表获得了上述信息。此处第三部分详细说明了有关段拷贝表的内容。

  完成二级bootloader代码的编写后,应将它添加入工程,与工程的其他代码一同编译链接生成的.out文件。

  2.3目标转换文件的格式

  编译链接生成的的英文的.out格式文件,然而闪存一般接收的是ASCII格式的文件[3] .CCS附带的工具六角转换实用程序可将.out文件转换为ASCII格式的.hex文件,Hex6x以命令行文件的形式执行。Hex命令行文件中,首先指定输入文件(.out),输出文件的格式和ROM的大小及类型一个Hex命令行文件的示例如下所示(注释内容用“ / *”和“ * /”括起):

  -a / *输出文件采用ASCII格式* /

  -图片/ *基本模式* /

  -memwidth 8 / * ROM数据宽度8bit * /

  ROMS

  {

  FLASH:org = 0x64000000,len = 0x100000,romwidth = 8,files = {。 rom_boot.hex}

  } SECTIONS / *列出所有需要固化在Flash中的COFF段* /

  2.4将程序烧写进Flash

  将2.3节生成的ASCII文件烧写进Flash可以使用CCS自带的FlashBurn工具。FlashBurn是一个带图形界面的软件,它首先将一个FlashBurn TargetComponent(FBTC)的程序下载到DSP内存中,通过与FBTC的实时数据交换完成对Flash的编程编程等操作。针对不同的硬件(DSP,Flash Model)修改FBTC是该方法的关键。所需的修改位置包括Flash的基地址,

  3、段拷贝表

  复制表二级bootloader使用一个段复制表(段复制表)进行段的复制。段复制表包含每个需要复制的段的必要信息,如段的加载地址。 ,段的runaddress,段的大小。段拷贝表被插入在secondary bootloader的末尾。生成段拷贝表的方法有两种:

  1)使用十六进制转换实用程序的-boot选项

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

  使用该选项时hex转换实用程序将自动转换所有初始化段的格式-bootorg指定段拷贝表的地址-bootsecTIon。规范二级引导程序所在的段的名称

  2)使用链接器选项(LOAD_START,RUN_START,SIZE)

  涉及段拷贝表的生成的三个选项:LOAD_START,RUN_START和SIZE,可分别获得一个段的交换地址,运行地址和大小。例如,可以使用以下代码段的文本段的替换地址(存于_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字节的情况,提出了一种使用二级引导程序从Flash启动DSP的方法。该方法可采用了C6000系列DSP的嵌入式系统中,不需要额外的闪存编程器,具有广泛的适用性。

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


责任编辑:David

【免责声明】

1、本文内容、数据、图表等来源于网络引用或其他公开资料,版权归属原作者、原发表出处。若版权所有方对本文的引用持有异议,请联系拍明芯城(marketing@iczoom.com),本方将及时处理。

2、本文的引用仅供读者交流学习使用,不涉及商业目的。

3、本文内容仅代表作者观点,拍明芯城不对内容的准确性、可靠性或完整性提供明示或暗示的保证。读者阅读本文后做出的决定或行为,是基于自主意愿和独立判断做出的,请读者明确相关结果。

4、如需转载本方拥有版权的文章,请联系拍明芯城(marketing@iczoom.com)注明“转载原因”。未经允许私自转载拍明芯城将保留追究其法律责任的权利。

拍明芯城拥有对此声明的最终解释权。

相关资讯

方案推荐
基于MC33771主控芯片的新能源锂电池管理系统解决方案

基于MC33771主控芯片的新能源锂电池管理系统解决方案

AMIC110 32位Sitara ARM MCU开发方案

AMIC110 32位Sitara ARM MCU开发方案

基于AMIC110多协议可编程工业通信处理器的32位Sitara ARM MCU开发方案

基于AMIC110多协议可编程工业通信处理器的32位Sitara ARM MCU开发方案

基于展讯SC9820超低成本LTE芯片平台的儿童智能手表解决方案

基于展讯SC9820超低成本LTE芯片平台的儿童智能手表解决方案

基于TI公司的AM437x双照相机参考设计

基于TI公司的AM437x双照相机参考设计

基于MTK6580芯片的W2智能手表解决方案

基于MTK6580芯片的W2智能手表解决方案