TMS320C641X系列DSP引导方法设计和实现_第1页
TMS320C641X系列DSP引导方法设计和实现_第2页
TMS320C641X系列DSP引导方法设计和实现_第3页
TMS320C641X系列DSP引导方法设计和实现_第4页
TMS320C641X系列DSP引导方法设计和实现_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

精品文档-下载后可编辑TMS320C641X系列DSP引导方法设计和实现

近年来,以数字信号处理器(DSP)为基础的通用信号处理模块的研制受到人们的重视,它的研制成功满足了信号处理系统实时性和通用性的要求,被广泛应用于雷达、通信、电子测量和图像等领域。进行DSP开发,终的目标产品要脱离仿真器运行,在上电后可自行启动程序代码,这就需要一个能在断电后保存程序的存储器。对于C641X系列的DSP,内部没有供用户使用的非易失性存储器,只能将程序代码存放在外部的非易失性存储器中。因此,通常需要在上电复位时,将存储在外部速度较慢的存储器的程序代码搬移到片内高速RAM中,这个过程被称为BootLoader.因此,在设计通用信号处理模块前,有必要研究DSP的多种引导方式。

数字信号处理(DigitalSignalProcessing,简称DSP)是一门涉及许多学科而又广泛应用于许多领域的新兴学科。20世纪60年代以来,随着计算机和信息技术的飞速发展,数字信号处理技术应运而生并得到迅速的发展。数字信号处理是一种通过使用数学技巧执行转换或提取信息,来处理现实信号的方法,这些信号由数字序列表示。在过去的二十多年时间里,数字信号处理已经在通信等领域得到极为广泛的应用。德州仪器、Freescale等半导体厂商在这一领域拥有很强的实力。其工作原理是接收模拟信号,转换为0或1的数字信号。再对数字信号进行修改、删除、强化,并在其他系统芯片中把数字数据解译回模拟数据或实际环境格式。它不仅具有可编程性,而且其实时运行速度可达每秒数以千万条复杂指令程序,远远超过通用微处理器,是数字化电子世界中日益重要的电脑芯片。它的强大数据处理能力和高运行速度,是值得称道的两大特色。

1C641XBootLoader方式和过程

BootLoader就是在操作系统内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间映射图,从而将系统的软硬件环境带到一个合适状态,以便为终调用操作系统内核准备好正确的环境。在嵌入式系统中,通常并没有像BIOS那样的固件程序(注,有的嵌入式CPU也会内嵌一段短小的启动程序),因此整个系统的加载启动任务就完全由BootLoader来完成。比如在一个基于ARM7TDMIcore的嵌入式系统中,系统在上电或复位时通常都从地址0x00000000处开始执行,而在这个地址处安排的通常就是系统的BootLoader程序。

C641X有三种Boot模式:不引导、ROM引导和主机引导。种方式只能用于仿真运行;第二种方式利用片内固化的BootLoader程序通过EDMA通道,从EMIF的CE1空间拷贝1KB数据到地址0处,然后从地址0处开始执行。这种方式只需一片非易失性存储器,实现较为简单;第三种方式是在DSP内核处于复位时,由外部主机通过主机接口实现程序引导。这种方法虽然复杂度较前者高,但也被广泛应用于一些具有抗空间辐射效应的星载平台中。

2ROMBOOT实现

前面提到这种方式是在DSP上电复位后,由片内固化的BootLoader代码采用EDMA方式从CE1空间复制1KB代码到地址O处。但通常用户程序都远大于1KB,这就需要编写二次BootLoader代码,将用户程序搬移到DSP内部RAM中。下面介绍具体实现过程。

2.1二次引导程序编写

由于系统初启动时,C语言环境还没有初始化,所以二次引导程序一般用汇编语言编写。主要完成EMIF寄存器配置,程序搬移,跳转到C程序入口函数。其中,程序搬移主要有两种实现方式。一种方法无需CopyTable(引导表),而采用镜像的方式将所有程序代码看成是一个连续的数据段,二次引导时将片外存储器的内容镜像到内部RAM即可。这种方法虽然实现简单,但存在占用空间资源大,引导效率低的问题。第二种方法是利用引导表实现。这种方法生成的引导文件是各段连续存放的,因而引导效率较前一种方法高。关于引导表的格式和生成参见2.4节;两种方法的二次装载汇编程序可参见CCS烧写工具FlashBurn提供的示例工程,这里不再详述。

2.2存储空间分配

程序存储空间可分为LOAD空间和RUN空间。前者保存程序代码,物理介质一般为片外FLASH或E2PROM;后者是程序代码实际运行的空间,物理介质一般是内部RAM.通常,经常访问的程序和初始化变量的LOAD空间放在FLASH中,而RUN空间则放在内部RAM中;对于只在初始化时使用的段,其LOAD和RUN空间都放在FLASH中;而对于非初始化变量,其LOAD和RUN空间都安排在内部RAM中。当然,如果存储空间充足时,也可统一将LOAD空间放在FLASH中,而把RUN空间放在内部RAM中。根据上述内容,可以将C64X存储区作表1所示的安排。

其中,VECS用于存放中断向量表,BOOT存放二次引导程序。

2.3cmd文件

cmd文件的作用是实现前两节所述的二次装载代码、中断向量表等的存储空间分配,其主要包含内存的划分以及各程序代码段的load地址和run地址的分配。常见的cmd文件如下所示:

}

其中,vectors是包含中断向量表的段;BootLoad是包含二次装载代码的段。

2.4引导表的生成

引导表的常用格式如下:

段1的大小

段1的目的地址

段1的内容

段2的大小

……

O;

O;

O;

一种方便的生成引导表的方法是,当工程文件编译生成。out文件后,用CCS自带的hex6x可执行程序将其转化为用于程序引导的。hex文件。这种方法需要编写一个转换命令文件作为hex6x命令的输入参数,具体如下:

其中len的大小可以查看map文件,只要大于程序和数据的实际长度即可。

2.5文件烧写

将。hex文件烧入ROOM或FLASH中的方法有以下几种:

(1)使用通用烧写器写入。

(2)使用CCS自带的烧写工具FlashBurn.

(3)用户自己编写烧写FLASH的程序。

其中,使用通用烧写器需要文件格式转换且要求烧入的器件是可插拔的;而第三种方法又需要自己编写代码,费时费力;常用的是第二种方法,这种方法只需稍加改动,就可以运用于不同的目标系统中。这是因为这种方法需要首先FlashBurn提供的工程FBTC的。out文件到目标系统中。这个工程的代码包含了系统中使用的存储器的烧写命令字,而对于不同的存储器,该命令字是有差别的。这里要做的就是将工程的控制字宏定义改为自己目标系统芯片的控制字,重新编译链接,然后在FlashBurn中选定新生成的FBTC.out文件和待烧入的。hex文件,就可完成文件烧写。

3外部主机HPI引导实现

HPI8实际上是一个8位的并行端口,主机通过它可以直接访问DSP片内的一段RAM.在早期的DSP中,这段公用的RAM是一段2K字的双口RAM(对于TMSVC5402则可以访问所有的片内RAM)。当主机和DSP同时访问同一地址时,主机优先。由于TI的DSP芯片都是16位的,而HPI8只有8根数据线,所以数据的传输必须以字节为单位。在DSP与主机传送数据时,HPI能自动地将外部接口传来连续的8位数组合成16位数后传送给主机。

选择这种引导方式时,外部主机在DSP内核处于复位状态,但芯片其他部分已经脱离复位状态时,通过HPI接口访问DSP的全部存储空间和外设寄存器。当主机完成代码装载和初始化后,置HPIC寄存器中的DSPNIT位为1使内核脱离复位状态,然后从0地址处开始运行,具体流程如图1所示。

这种方式也需要如ROMBOOT方式一样生成。hex文件,生成方法和上述大致相同,只是由于有了外部主机的参与,可以将程序代码性装载到片内RAM中,没有1KB的限制,因而无需

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论