首页 > 新闻中心 > > 正文

TMS320C6701

更新时间: 2006-04-06 13:29:50来源: 粤嵌教育浏览量:2535

自动引导方式综述
处理器复位后可以自动从外部设备加载程序,称为引导。TI公司的新一代数字处理器TMS320C6701提供了一系列外部引脚BOOTMODE[4:0]来完成芯片的状态设置。系统加电后,RESET信号有效,芯片复位。在RESET信号上升沿处锁存BOOTMODE[4:0]信号,借以决定芯片的存储器映射方式、地址0处的存储器类型以及复位后芯片的自举模式。复位结束后,芯片从存储器的0地址开始执行指令。总的来说,TMS320C6701有三种引导方式,其详细描述如下:
不加载:CPU直接从存储器的0地址处开始执行指令。如果系统中使用的是SDRAM,则CPU会先挂起,等候SDRAM的初始化完成。
ROM加载:位于外部CE1空间的ROM中的程序首先通过DMA搬入地址0处。尽管加载过程是在芯片外部全部复位后才开始的,但是当芯片仍处于内部复位保持时,就开始了上述的传输过程了。用户可以指定外部ROM的存储宽度,外部存储器接口EMIF会自动将相邻的8bit/16bit数据合并成32bit。用DMA进行的这一加载过程是一个单帧的数据块传输。对于TMS320C6701,DMA从CE1空间中拷贝64KB数据到地址0处。传输过程完成之后,CPU退出复位状态,开始执行地址0处的指令。
主机(HPI)引导:CPU停留在保持状态,其余硬件部分均保持正常状态。在这期间,外部主机通过主机口初始化CPU的存储空间。主机完成所有的初始化工作后,将主机口控制寄存器中的DSPINT位设置为1,结束引导过程。此时CPU退出复位状态,开始执行地址0处的指令。在主机引导过程中,主机可以对DSP所有的存储空间进行读和写。
自动引导的软件设计实现
从软件角度看,所谓复位引导就是在系统上电后,将生成的可执行文件的代码和数据按照对系统存储空间的分配装载到指定的地方,并接着依据规定的顺序来执行程序。为了设计这一过程的软件,首先必须了解TMS320C6701的软件设计流程。
TI公司为DSP软件的设计提供了一个功能强大的开发平台Code Composer Studio(CCS),主要包括:C编译器、汇编器、汇编优化器、连接器和十六进制转换工具等。TMS320C6701的程序设计流程如图1所示。


图1 TMS320C6701的程序设计流程图
ROM引导方式实现
在TI-DSP的应用程序开发中,程序的代码和数据总是保存在ROM、FLASH等非易失存储器中,以保证掉电时代码仍存在。这就需要在运行前将代码从FLASH中加载到DSP内部,ROM引导就是用来实现这一过程。一般来说,ROM引导应用程序的开发分以下几个步骤:
生成目标文件(.out文件)
在CCS环境中,编写应用程序ues.c,通过编译、连接查找、修正程序的错误,利用仿真器加载软件程序到硬件系统中调试,直至程序无错误。然后编写相应的命令文件Link(.cmd),Link命令文件是以文件的方式定义链接参数,描述系统生成的程序代码段、初始化数据段、未初始化数据段的段名及映射的目标板物理空间。
ROM引导过程表明,复位后系统自动将CE1 FLASH空间的64KB数据到地址0处。DSP 0地址开始的64KB存储空间是内部程序存储器,程序代码占据这一区域。因此,需将外部CE1 FLASH空间分段,程序代码段占据FLASH的前64KB空间,数据段分配在FLASH开始64KB后的地址空间。这样,ROM引导实现程序代码段的自动加载,但数据段不能自动加载,需要使用load/run来定义数据段的装载地址和运行地址于不同空间,保证变量的正确初始化和数据定位。
Link命令文件的正确编写是极其重要的,它决定着能否生成正确的COFF格式目标文件。实际ROM引导过程中,往往都是由于Link文件编写的不正确而造成引导失败。如图2所示为一正确的Link命令文件,将应用程序和此命令文件编译链接生成目标文件use.out。



 图2  ROM引导的Link命令文件
文件格式的转换
目标文件use.out的格式是COFF文件格式,FLASH不支持这种格式,所以不能直接写入FLASH中,必须对该文件进行转换,提取其中的数据部分,形成数据文件。
利用TI公司CCS自带的转换工具hex6x.exe可以实现将目标文件转换成十六进制的.hex输出文件,如图3所示。


图3   ROM引导的转换格式命令文件
烧写FLASH
在CCS中编写FLASH烧写程序,通过JTAG口加载运行,把数据文件code.bot和data.bot分别写入FLASH相应的存储区内。注意程序写入FLASH存储器时,要把CE1空间寄存器设计为32位宽度存储器接口方式。
通过以上步骤,当系统再次加电时,即可实现ROM引导方式加载DSP。
HPI引导方式实现
HPI引导程序设计与ROM引导程序设计类似,同样需要先生成.out目标文件,再进行文件格式转换,提取出程序代码段数据和数据段数据形成数据文件code.bot和data.bot。,编写HPI烧写程序。
需要注意的是,HPI引导程序中的Link命令文件和转换格式命令文件与FLASH引导程序中的有所不同:
由于程序代码段数据和数据段数据都是通过HPI口直接写到DSP内,因此Link命令文件中无需用到load/run。.vectors和.text直接存放到VECS和PMEM空间,.cinit直接存放到DMEM空间即可。
目标文件中程序代码段的起始地址是0x0,数据段的起始地址是0x80000000。因此转换格式命令文件的起始地址有所改变,如图4所示。



图4   HPI引导转换格式命令文件
并行DSP实时信号处理机的自动引导方案
某雷达动目标检测系统中,由于运算量巨大,经过分析需要四片TMS320C6701并行处理才能满足实时检测的要求,因此设计了如图5所示的多DSP并行实时信号处理机。


                                      图5  多DSP并行实时信号处理机互连方案


其中:DSP1作为主机,其EMIF与DSP2、DSP3、DSP4的HPI相连,同时DSP1的EMIF还与一块FLASH相连。FLASH用于存放四片TMS320C6701要运行的程序。系统的结构决定了其复位引导方案为:DSP1从FLASH加载程序,加载完成后,再通过HPI口加载DSP2、DSP3和DSP4。加载完成后,四片TMS320C6701都正常执行各自的程序。即DSP1为ROM引导方式、其余各片DSP为HPI引导方式,具体步骤为:按照HPI引导程序设计的步骤,将DSP2、DSP3、DSP4的目标文件进行格式转换,分别生成程序代码段文件和数据段文件。


按照FLASH引导程序设计的步骤,同样将DSP1的目标文件进行格式转换,生成程序代码段文件和数据段文件


。DSP1的源程序不仅要包括本DSP需要运行的应用程序,还应包括通过HPI口将其余各片DSP的程序代码段和数据段分别写入其相应DSP内的HPI加载程序。


设计烧写系统所用FLASH的程序,然后通过JTAG口将8个文件(code1~4.bot和data1~4.bot)烧写到系统的FLASH存储器相应的空间中,从而完成了整个过程。


结语
从实际的应用中证明了上述引导方式的软件设计是方便可靠的。需要指出的是,如果深入理解了DSP的启动过程和程序开始执行前的初始化过程,还可以设计出其它软件实现方法。此外,上述方法并没有对烧写进FLASH中的程序进行加密,因此,我们可以在烧写FLASH的过程中对关键代码进行加密处理。

免费预约试听课