DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 286|回复: 0
打印 上一主题 下一主题

TMS320C6000系列DSP的自举方式研究

[复制链接]
跳转到指定楼层
楼主
发表于 2012-1-27 20:11:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

  
         
    摘 要:以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]
      
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2025-7-14 00:43 , 耗时 0.084917 秒, 18 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表