DIY编程器网
标题:
TMS320C6000系列DSP的自举方式研究
[打印本页]
作者:
liyf
时间:
2012-1-27 20:11
标题:
TMS320C6000系列DSP的自举方式研究
摘 要:以C6701为例详细介绍了TMS320C6000系列DSP的ROM自举过程。
关键词:DSP;TMS320C6000;FLASH;自举
TMS320C6000系列DSP是TI公司开发的一种新型DSP芯片,包括定点的C62xx系列和浮点的C67xx系列。该系列芯片内部集成了多个功能单元,可同时执行8条指令,其运算能力最高可达1 GFLOPS。
如果需要程序在加电复位后自动运行,我们就要使用DSP的自举功能。TMS320C6701可以配置成以下3种自举方式:
(1)无自举(No Boot) CPU直接开始执行地址0处的指令。
(2)主机自举(Host Boot) 系统复位后主机通过DSP的主机口(HPI)初始化DSP的存储空间。
(3)ROM自举(ROM Boot) DMA控制器从CE1空间复制固定长度(对C6701来讲是64 kB)程序到地址0处,然后从地址0处开始执行。
3种自举方式是根据外部管脚BOOTMODE[4∶0]决定的,这些管脚信号在系统复位信号(RESET)的上升沿被锁存,具体的对应关系如表1所示。
前2种自举方式相对来讲比较容易理解,因此我们不做详细介绍。下面我们以TMS320C6701为例详细说明TMS320C6000系列DSP的ROM自举过程。
由于FLASH具有在线可编程、可重复编程的能力,和普通ROM相比使用起来更加方便,因此我们采用FLASH作为程序存储器。
FLASH的读操作和其他一些异步存储器如ASRAM基本相同,但是写操作相对来讲要复杂一些。这是因为首先要对FLASH进行擦除,然后写入一些固定的命令字,然后才可以把数据写进去。下面的例子中使用的FLASH的型号是SST39VF800A,容量是512 kB×16。
对于SST39VF800A来讲擦除过程如下:
(1)向地址0x5555写入0xAA;
(2)向地址0x2AAA写入0x55;
(3)向地址0x5555写入0x80;
(4)向地址0x5555写入0xAA;
(5)向地址0x2AAA写入0x55;
(6)向地址0x5555写入0x10;
(7)等待100 ms时间。
写数据过程如下:
(1)向地址0x5555写入0xAA;
(2)向地址0x2AAA写入0x55;
(3)向地址0x5555写入0xA0;
(4)写入数据。
系统的硬件连接如图1所示。
由于我们仅是为了说明这一流程,所以主程序只是简单的向C6701的TOUT1管脚循环写0和1,也就是说在TOUT1管脚产生方波,其C语言程序如下:
假设我们已经产生了相应的可执行文件dsp.out,要将其转换为十六进制代码并写入FLASH,然后实现ROM自举需要以下几步:
(1)建立转换命令文件dsp.cmd,内容如下:
(2)使用TI公司的集成开发环境CCS自带的转换工具hex6x.exe进行转换。具体操作如下:将dsp.out,dsp.cmd以及hex6x.exe复制到同一文件夹,然后在DOS窗口下键入:hex6x dsp. cmd
,这样就产生了dsp.hex文件。使用记事本打开dsp.hex可以发现该文件是以双字节存放的,并且包括了文件头和尾,如下所示:
以上数据可以通过专门的硬件烧写器写入FLASH,也可以通过DSP仿真器编程写入FLASH,由于在线烧写更为方便,在此我们只对后者做详细的介绍。
(3)将DSP的BOOTMODE置于无自举模式。本例中使用BOOTMODE[4:0]=00101(即内部RAM处于地址0,MAP1,无自举)。
(4)启动CCS,建立一个新工程,如flash.pjt。该工程用来将dsp.ary中的数据写入FLASH。程序如下:
…
其中ptr指向FLASH所在的存储空间(本例中即0x01400000),data[i]即dsp.ary中的数据,LENGTH是数据的个数。ctrl_addr1指向FLASH的0x5555地址,ctrl_addr2指向FLASH的0x2AAA地址。循环体的前3条语句是在向FLASH中写入数据前必须写入的固定命令字。
编译执行之后dsp.ary中的数据将被写入FLASH中,在CCS下可以通过ViewMemory看到数据是否正确写入。
(5)现在DSP已经可以ROM自举了。关闭系统电源,将DSP的BOOTMODE置于ROM自举模式。本例中使用BOOTMODE[4:0]=10101(即内部RAM处于地址0,MAP1,16-bit ROM自举)。加电后我们可以在DSP的TOUT1管脚测到有方波产生,说明ROM自举成功。
参考文献
[1]赵训威.基于TMS320C6200系列DSP芯片的应用与开发[M].北京:人民邮电出版社,2002.
[2]任丽香,等.TMS320C6000系列DSPs芯片的原理与应用[M].北京:电子工业出版社,2000.
[3]TMS320C6201/C6701 Peripherals User′s Guide.TI,1998.
[/td]
[/tr]
欢迎光临 DIY编程器网 (http://diybcq.com/)
Powered by Discuz! X3.2