TITMS320C6000DSPs的FLASH引导设计与实现_第1页
TITMS320C6000DSPs的FLASH引导设计与实现_第2页
TITMS320C6000DSPs的FLASH引导设计与实现_第3页
TITMS320C6000DSPs的FLASH引导设计与实现_第4页
TITMS320C6000DSPs的FLASH引导设计与实现_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

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

文档简介

1、TI T M S 320C 6000D SPs 的 FLASH 引导设计与实现万轩 , 王霄峻(东南大学 移动通信国家重点实验室江苏 南京 210096摘要 :TM S 320C 6000D SP s 是德州仪器公司近年来着重推广的高性能数字信号处理器芯片系列 , 不但运算速度快 , 还 内置了一些常用算法的硬件加速器 。在通信和信号处理领域 , 该芯片系列得到了广泛的应用 。根据实际使用经验归纳总结 了在 TM S 320C 6000D SP s 环境下 , FLA SH 芯片的编程 (包括编程器编程各种在线编程方法 和上电后 D SP s 的 FLA SH 自 举引导过程的多种方法 , 描

2、述了二次引导程序的编写和配置 , 并分析了各种方法的优缺点 司在这方面文档的欠缺 , D SP s D SP 的产品化过程也有较大的推动作用和借鉴意义 。关键词 :数字信号处理器 ; TM S 320C 6000; FLA SH ; 引导中图分类号 :T P 303文献标识码 :B 2005 0700903D l of C 6000D SPs FLASH Boot L oaderAN Xuanm in , W AN G X iao jun(N L ab of M obile Comm unicati on , Southeast U niversity , N anjing , 210096,

3、 Ch ina Abs tra c t :TM S 320C 6000D SP s are h igh perfo rm ance digital signal p rocessing ch i p series w h ich are generalized by T I companyrecen tly and em bedded som e fam iliar hardw are accelerato r in besides its fast operating speed 1T he D SP s series are app lied in comm un i 2cati on a

4、nd signal p rocessing area comp rehen sively 1T h is paper in troduces several k inds of flash boo t p rocedu re of TM S 320C 6000D SP s series , describes the p rogramm ing and configu rati on of second boo ting p rogram and analyses their advan tages and disadvan tages 1T he paper fills up the b l

5、ankness of T I s docum en ts system at th is aspect , and can be referenced by the developer in comm un icati on and sig 2nal p rocessing area 1Ke yw o rds :digital signal p rocesso r ; TM S 320C 6000; FLA SH ; boo t收稿日期 :20041126数字信号处理技术的出现改变了信息与信号处理技术 的整个面貌 , 而数字信号处理器 (D SP s 作为数字信号处 理的核心技术 , 其应用已

6、经深入到通信 、信息处理 、家电 、 雷达 、 声纳 、 航空航天等各个领域 。 T I 的 TM S 320C 6000系 列 D SP s 作为目前数字信号处理器中性能最高的产品 , 得到 越来越广泛的应用 。 本文描述了 C 6000D SP s 的 FLA SH 引 导实现 , 有助于解决 D SP s 系统引导设计中的障碍 。 1 D SP 系统引导方法及特点D SP s 上电后 , 把可执行程序加载到 D SP s 能访问的存储空间 , 使 D SP s 能够正确运行的过程称为 D SP s 的系 统引导或者自举 (boo t 或 boo tloader 。 C 6000芯片自举方

7、 式 (BOO TM OD E 可以分为 3类 :(1 不加载 CPU 直接从存储器中地址 0处开始执行指令。(2 ROM FLA SH 加载外部 ROM FLA SH 中的程序被拷贝到地址 0处 , 传输完成后 , CPU 退出复位状态 ,开始从地址 0处执行指令 。(3 主机引导 CPU 停留在复位状态 , D SP s 其余部分保持正常状态。在此期间 , 外部主机通过主机口初始化 CPU 的存储空间 。主机完成所有初始化工作后 , 将主机口 控制寄存器中的 D SP I N T 位设为 1, 从而结束引导过程 ,CPU 退出复位状态 , 从地址 0处开始执行指令。“ 不加载”方式一般用于

8、 D SP s 程序的在线调试阶段 , 程序的开始执行和停止都通过 JTA G 口进行控制 ; “ 主机 引导”方式需要有另一主机设备通过 H P I 口、 扩展总线(XBU S 或 PC I 接口向作为从属设备的 D SP s 进行程序的导入 ; 在工程应用中 , 使用最广泛的是“ ROM FLA SH 加 载”方式 , 这既利用了外部的存储单元扩展 D SP s 本身有 限的 ROM 资源 , 又充分发挥了 D SP s 内部资源的效能。 2 C 6000D SPs 的 FLASH 引导的实现与分析ROM FLA SH 加载方式自举的具体过程如图 1所示 :D SP s 上电后 , 进入

9、reset 状态 , 首先 从扩展 总 线(XBU S 或主机接口 (H P I 相应数据线的上拉或下拉状态判断自举方式 , 若是 ROM FLA SH 加载方式 , 则 D SP s9 的 DM A 控制器控制 EM IF 接口以默认时序 (一般是最慢 的时序 , 从处于 CE 1空间的 ROM FLA SH 读取一定大 小的数据块复制到地址 0, FLA SH 可以为 8b 、 16b 或者 32b 数据宽度 。 传输完成后 , D SP s 从地址 0(reset 中断服 务程序起始地址 开始执行指令。在此过程中 , 不同的D SP s DM A 控制 EM IF 读取的 FLA SH

10、数据块大小不同 ,对于 C 6201 C 6202 C 6701, 是 64kB , 而 C 6211 C 6711则 是 1kB 。 这样设计的工作重点其实就是如何在第一次引导 所读取的 64kB 1kB 程序中编写和植入二次引导程序 , 以 使剩余程序和数据区完全被下载到 D SP 的内存或者外部 存储区中 , 二次引导程序在引导过程中的地位如图 1中的 虚线部分所示 。下面以 C 6202D SP s 为例对 FLA SH 引导过程中所涉及到的方面做详细的探讨。 图 1 C 6000D SP 的 FLA SH 程序引导过程211硬件连接与设置C 6000D SP s 通过外部存储器接口

11、(EM IF 与 ROM或者 FLA SH 连接 。 D SP s 与 ROM FLA SH 是主从关系 , 由 EM IF 的相关输出管脚控制 FLA SH 的擦除和读写 , 这里采用 FLA SH 作为自举引导的存储系统设计为例来加 以说明。在 EM IF 端 , CE 为片选信号 (在 ROM FLA SH 加载方式中 , ROM EM IF 必须位于 CE 1 , EA xx 为地址 线 , ED xx 为数据信号 , O E 是输出使能也就是读使能信 号 , W E 为写使能 , 这些管脚信号分别与 FLA SH 的相应管 脚相连接 。 C 6000D SP s 访问的 FLA SH

12、 地址空间最长可至A 19110,与 EM IF 的 EA 21112相连 , 访问的数据位宽度可为 8b 、 16b 、 32b , 对于 8b 和 16b 数据宽度的 FLA SH , C 620x D SP s 的 EM IF 接口的每次读取都会自动 进行 4次或者 2次读操作 , 然后拼装成 32b 指令 。 EM IF 与 FLA SH 的连接示意图如图 2所示。 图 2 C 6000D SP 与 FLA SH 的硬件连接示意图为了指定 D SP s 使用 ROM FLA SH 加载方式 , 必须 设置 BOO TM OD E 4110,具体值可以参考 T I 公司有关DA TA S

13、H EET 。在 C 6202D SP s 中 , BOO TM OD E 的值是通过设置扩展总线 (XBU S 数据位的低 5位的上拉或下拉 来实现的 , 具体设计时 , 可直接用电阻接上拉或下拉固定 设置 , 也可加上开关用于切换上拉或下拉状态 , 从而可在 实际工作模式和在线调试模式间切换。 212 FLA SH 的擦除与读写对 FLA SH 擦除和读写与一般的 D SP s 外围设备读写 有所不同 , 主要表现在 :(1 在 D SP s 将数据写入 FLA SH 之前 , 先要删除数据所在块 , 然后才能重新写入 。擦除和写操作之前都要执行 相应的命令字序列 , 而读操作则可以直接进

14、行。(2 如前所述 , D SP s EM IF 对 SH 的读取有自动, 在读取 EM IF 的 CE 1空 bit 宽度的 ROM ; 却 有 并 或 者 分 拆 的 功 能 , M b 异步接口模式 , 这样在每次把命令 SH 时 , 都只有低 8位 16位 32位有效 , 剩余 的高位数据是多少并无影响。因此对 FLA SH 中同一段存 储空间的读写操作的地址值并不相同 , 这一点尤其值得注 意 。(3 FLA SH 程序保护。 FLA SH 的擦除程序也是一命令字序列 , 命令字序列必须完全执行完毕擦除才会生效 。 为了防止 FLA SH 中程序的误擦除 , 最好在擦除命令字序 列中

15、间插入一些跳转汇编指令 , 比如跳转至复位中断服务 程序的指令。 在写入 FLA SH 程序时 , 可以用手工改 PC 值 的办法跳过这些附加的跳转指令 , 而在程序异常情况下 , 这些附加的跳转指令就避免了命令字序列被完全执行从 而保护了 FLA SH 程序。 213可执行程序写入 FLA SH有了 212中所描述的 FLA SH 擦除和读写程序 , 下一 步目标就是把原代码经过编译和连接后得到的 1out 可执 行目标代码写入 FLA SH 。在 ROM FLA SH 加载方式下 , 所有需要 D SP s 运行程序都事先烧写在 ROM FLA SH 内 。烧写 FLA SH 有多种方法

16、:(1 编程器烧写1out 文件是 D SP s 可以识别的 coff 格式 , 但硬件编程 器需要 1H EX 或者 1B I N 文件 , 这可以使用 T I 公司提供 的格式转换工具 , 生成 1H EX 或者 1B I N 格式 , 然后通过 硬件编程器进行烧写。这种方式不仅需要硬件编程器配 合 , FLA SH 应是可拆卸的封装 , 对 D SP s 的开发和使用极 为不便 。(2 C 6000D SP s 对 FLA SH 的直接编程新建一个 p ro ject , 程序用汇编语言编写 , 功能是实现D SP s 中代码和数据向 FLA SH 的搬移。 同样 , 如果不仅使用 D

17、SP s 内部的程序存储区和数据存储区 , 还使用了其他 外部存储器 (如 SDRAM 或者 SBSRAM 等 , 并且有代码 或者数据存储于其中 , 那么搬移程序也必须有相应的针对1这部分存储器的搬移功能。同时打开主程序 (要搬移至 FLA SH 的程序 的 p ro ject 和搬移程序的 p ro ject , 通过 JTA G 口 , 首先 load 主程序 , 然后 load 搬移程序 , 执行搬 移程序即可把已经 load 在程序存储区和数据存储区的内 容搬移到 FLA SH 中 。搬移程序不能使用与主程序的程序 空间和中断向量表重合的物理空间 , 以免覆盖 。这种方法 避免了目标

18、代码的格式转换 , 利用 D SP s 直接搬移 , 无需 编程器 , FLA SH 也不需频繁拆卸 , 可以使用更小封装 的芯片。(3 C 6000D SP s 对 FLA SH 直接编程的另一种办法 现在的 D SP s 程序 , 诸如 C 6000这样高性能 D SP s 上 的程序 , 多是用 C C +语言来编写的 , 且使用了如 CCS 等 所提供的 D SP B I O S 实时操作系统 , 因此需要建立起 C 或 者 C +所必须的运行环境。如果采用方法 (2 , 在 load 完主程序之后又 load 移程序 , 很有可能会破坏第一次 load C +运 行环境 , 导致搬移

19、到D SP s对 C C +, 采取复杂 ,一个 p ro ject , 把搬移程序直接嵌入主程序中。同样 , 搬移 程序用汇编编写 , 仅是擦除过程和多次 DM A 操作构成的 写入过程 , 这样的程序代码长度很小 , 不会占用主程序过 多的程序空间 。在通过 JTA G 口 load 之后 , 手工更改 PC 值指向这段代码 , 控制其运行结束 , 而在此之后 , 这段短 小的搬移程序不会被主程序中任何一段代码所调用。 (4 C 6000D SP s 通过 U SB 口从 PC 机下载和编程 由于实际设计开发系统中具备 U SB 接口 , 实现了 C 6000D SP s 与 PC 的通信

20、 , 因此采用 U SB 口实现程序的 FLA SH 编程不失为一个简单易行的方法。具体可以把通 过 U SB 接口在线烧写 FLA SH 的功能程序潜入在 D SP s 常规程序中 , 改功能程序实现从 U SB 口接收数据 , 解释 coff 格式和写目标代码至 FLA SH 。 在 PC 机上也运行一段 程序 , 通过 U SB ho st 1out 将文件传送给 D SP s 目标板的 U SB functi on 。 这种方法也很好的避免了方法 (2 的不足 , 并且无须借助于 D SP s 的 JTA G 口及其开发调试环境 , 可 真正实现非专业用户的在线板载程序升级。主程序经过

21、编译和连接后 , 在 coff 格式的 1out 文件 中已经指明了需要把各程序段和数据段 load 至不同的程 序区和数据区 , 因此在采用方法 (2 , (3 , (4 对 FLA SH 进行编程时 , 也需要在 FLA SH 中对这些不同的段加以区 分 (采用设标志方法或固定区域放置固定段内容 , 这样在 引导程序中也必须针对不同的段把程序或者数据引导至 不同的地址段。214引导程序如前所述 , C 6000D SP s 上电后 , DM A 自动从 CE 1空 间 的 FLA SH 载入一定 长度的 代码段至地 址 0, 对 于 C 6201 C 6202 C 6701来说 , 这段长度是 64kB , 而 C 6211 C 6711则是 1kB 。因此 , 如果在这段长度的字节内容中包 含所需的二次引导程序 , 便实现剩余程序和数据的继续载 入 。 在自动载入结束后 , D SP s 会自动从地址 0开始执行指 令 。对此 , 具体步骤如下 :(1 , 各 C +的运行环境还没 , 在 s 0, 一般是一个指向 C 环境的初始化 , 因 此初始化程序必然不能正常运行。 通过修改复位中断的服 务程序

温馨提示

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

评论

0/150

提交评论