![TMS320C6000系列DSP的Flash启动设计_第1页](http://file2.renrendoc.com/fileroot_temp3/2021-6/8/3ca1bf45-e67f-4cba-9087-978e5b167a67/3ca1bf45-e67f-4cba-9087-978e5b167a671.gif)
![TMS320C6000系列DSP的Flash启动设计_第2页](http://file2.renrendoc.com/fileroot_temp3/2021-6/8/3ca1bf45-e67f-4cba-9087-978e5b167a67/3ca1bf45-e67f-4cba-9087-978e5b167a672.gif)
![TMS320C6000系列DSP的Flash启动设计_第3页](http://file2.renrendoc.com/fileroot_temp3/2021-6/8/3ca1bf45-e67f-4cba-9087-978e5b167a67/3ca1bf45-e67f-4cba-9087-978e5b167a673.gif)
![TMS320C6000系列DSP的Flash启动设计_第4页](http://file2.renrendoc.com/fileroot_temp3/2021-6/8/3ca1bf45-e67f-4cba-9087-978e5b167a67/3ca1bf45-e67f-4cba-9087-978e5b167a674.gif)
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、TMS320C6000系列 DSP的 Flash 启动设计摘要:实现了一种全集成可变带宽中频宽带低通滤波器,讨论分析了跨导放大 器-电容(OTAC)连续时间型滤波器的结构、设计和具体实现,使用外部可编程 电路对所设计滤波器带宽进行控制,并利用 ADS软件进行电路设计和仿真验 证。仿真结果表明,该滤波器带宽的可调范围为 126 MHz,阻带抑制率大于 35 dB,带内波纹小于 05 dB,采用 18 V 电源, TSMC 018m CMOS工艺 库仿真,功耗小于 21 mW,频响曲线接近理想状态。关键词: Butte 摘要对TMS320C6000系列 DSP的几种启动加载方案中的 EMIF加我方
2、式进行较详 细的分析。然后以 TMS320C6713 DS为P 例,提出一种在主程序中直接烧写 Flash 的办法,并与常用的 FlashBurn 工具进行比较。实验证明,本 DSP启动 加载方案易于实现,比传统的方法使用更为方便、可靠。关键词 TMS320C6000启 动加栽 Flash EMIF引言 随着近年来数字信号处理器 (DSP)技术的迅猛发展,其越来越广泛地应用 于同民经济的各个领域中。其中, TI 公司推出的 TMS320C600系0 列 DSP器件更 是在许多需要进行大量数字信号处理运算并兼顾高实时性要求的场合得以应 用。 TMS320C600系0 列 DSP的系统设计过程中,
3、 DSP器件的启动加载设计是较难 解决的问题之一。C6000 系列 DSP的启动加载方式包括不加载、主机加载和 EMIF 加载 3 种。3 种加载方式的比较:不加载方式仅限于存储器 0 地址不是必须映射到 RAM空间的器件,否则在 RAM空间初始化之前 CPU会读取无效的代码而导致错 误;主机加载方式则要求必须有一外部主机控制 DSP的初始化,这将增加系统 的成本和复杂度,在很多实际场合是难以实现的; EMIF加载方式的 DSP与外部 ROM/Flash接口较为自由,但片上 Bootloader 工具自动搬移的代码量有限 (1KB 64KB)。本文主要讨论常用的 EMIF加载方式。1 EMIF
4、 加载分析 实际应用中,通常采用的是 EMIF加载方式,把代码和数据表存放在外部 的非易失性存储器里 ( 常采用 Flash 器件) 。下面以 TMS320C6000系列中最新的浮点 CPUTMS320C671简3(称 “C6713”) 为例,详细分析其 EMIF加载的软硬件实现。硬件方面,其与 16 位宽度的 Flash 器件的接口如图 1 所示。对于不同的 DSP器件,加载方式的配置引脚稍有不同。 C6713的配置引 脚及其定义如表 l 所列。应用程序的大小决定了片上的 Bootloader 工具是否足够把所有的代码 都搬移到内部 RAM里。对于 C6713,片上的 Bootloader
5、工具只能将 1 KB 的代 码搬入内部 RAM。通常情况下,用户应用程序的大小都会超过这个限制。所 以,需要在外部 Flash 的前 l KB 范围内预先存放一小段程序,待片上 Bootloader 工具把此段代码搬移入内部并开始执行后,由这段代码实现将 Flash 中剩余的用户应用程序搬移入内部 RAM中。此段代码可以被称作一个简 单的二级 Bootloader 。图 2 所示为使用二级 Bootloader 时的 CPU运行流程。使用二级 Bootloader 需要考虑以下几个事项:需要烧写的 COFF公( 共目标文件格式 ) 段的选择;编写二级 Bootloader ;将选择的 COFF
6、段烧入 Flash 。一个 COFF段就是占据一段连续存储空间的程序或数据块。 COFF段分为 3种类型:代码段、初始化数据段和未初始化数据段。对干 EMIF加载方式,需要加载的镜像由代码段 ( 如 vectors 和 text 等)和初始化数据段 (如 cinit , const , switch , data 等)构成。另 外,可以单独定义一个 bootload 段存放二级 Bootloader 。此段也需要写入 Flash 。所有未初始化的数据段 ( 如bss 等) 都不需要烧入到 Flash 中。2 二级 Bootloader 的编写由于执行二级 Bootloader 时 C 的运行环
7、境还未建立起来,所以必须用汇 编语言编写。二级 Bootloader 可参照其他类似文献及 TI 相关文档。此处不再 赘述。CCS 中用户工程编译链接后产生的 map文件包含了存储器的详细分配 信息。一个典型的 map文件中包含的存储器分配信息如表 2 所列。与 cmd 文件不同, map文件不仅包含了各段存储在哪一段内存空间的信 息,从 map文件中还可以具体知道每个内存区间中有多少被实际使用 ( 烧写 Flash 时会用到这个参数 ) 。内存区间中未被使用部分是不需要写入 Flash 内容 的,实际被使用的部分才是真正需要写入到 Flash 中的内容。3 Flash 的烧写把代码等写入 F
8、lash 的办法大体上可分为以下几种: 使用通用烧写器写入。 使用 CCS中自带的 FlashBorn 工具。 用户自己编写烧写 Flash 的程序,由 DSP将内存映像写入 Flash 。 其中,使用通用烧写器烧写需要将内存映像转换为二进制或十六进制格 式的文件,而且要求 Flash 器件是可插拔封装的。这将导致器件的体积较大, 给用户的设计带来不便。使用 TI 公司提供的 FlashBurn 工具的好处在于,使用较为直观。 FlashBurn 工具提供的图形界面可以方便地对 Flash 执行擦除、编程和查看内 容等操作。但这种方法的缺点也不少:首先, FlashBurn 工具运行时需要下载
9、 一个 out 镜像 (FBTC, FlashBurn Target Component) 到 DSP系统中,然后由 上位 PC机通过仿真器发送消息 (指令和数据)给下位 DSP,具体对 Flash 的操作 由 FBTC执行。然而,这个 FBTC一般是针对 TI 公司提供的 DSK专门编写的,与 板上使用的 Flash 的接口宽度 (默认是 8 位) 、操作关键字 (因生产厂商不同而各 异)都有关,所以,对用户自己制作的硬件不一定适合。例如:如果用户自己的 电路板上使用的是与 DSK同品牌的 Flash 芯片,接口为 16 位数据宽度,那么, 使用 FlashBurn 工具烧写将最多只有一半的
10、 Flash 容量能够被使用,要想正确 实现 EMIF加载就必须选择 8 位加载方式。这就造成了 Flash 存储器资源的浪 费,同时限制了用户开发的灵活性。虽然 TI 公司提供了 FBTC的源代码供有需要的用户修改,但这样用户需 要去了解 FBTC的运行机制及其与上位机的通信协议,并对 Flash 烧写函数进行 修改。用户可能需要修改的几个地方如下:对 Flash 编程的关键字和地址, BurnFlash 函数中的数据指针和 EMIF口的配置 ( 针对 1.0 版本 FBTC)。这就给用 户开发带来了不便。把开发时间浪费在了解一个并不算简单的F1ash 烧写工具上并不是一个好的选择。其次,
11、F1ashBurn工具不能识别 .out 文件,只接受 hex 的十六进制文 件,因此,需要将 out 文件转换为 hex 文件。这个转换的工具就是 TI 公司 提供的 Hex6xexe工具。转换过程的同时,需要一个 cmd文件(即图 3 中的 Hex.cmd)指定作为输入的 out 文件,输出的 hex 文件的格式,板上 Flash 芯 片的类型和大小,需要写入 Flash 中的 COFF段名等。使用用户自己编写的烧写 Flash 的程序较为灵活,避免了文件格式转换 的繁琐。不过,此方法要求用户对自己使用的 Flash 芯片较为熟悉。通常采用的 Flash 烧写程序是单独建立一个工程的办法:
12、先把用户应用 程序( 包含二级 Bootloader) 编译生成的 out 文件装载到目标 DSP系统的 RAM 中,再把烧写 Flash 的上程编译生成的 out 文件装载到目标 DSP系统 RAM的 另一地址范围,执行 Flash 烧写程序,完成对 Flash 的烧写。这个办法要注意 避免两次装载可能产生的地址覆盖,防止第 2 次装载修改了应该写入 Flash 的 第 1 次装载的内容。实际上,可以将 Flash 烧写程序嵌入到用户主程序代码中去,比单独建 立一个烧写 Flash 的工程更为方便。 Flash 芯片的烧写程序段如下:ChipErase 函数和 ProgramFlashArr
13、ay 函数的编写可参照用户使用的 Flash 芯片的 Datasheet 以及参考文献。ProgramFlashArray 函数的第 1 个参数是源地址指针 ( 指向内部 Ram), 第 2 个参数是目标地址指针 ( 指向外部 Flash) ,第 3 个参数是要写入的数据长 度(单位为字)。编写 Flash 烧写函数时有 3 点需要注意: 指向 Flash 地址的指针。由于 C6713的低两位地址用于译码作字节选 择,地址总线的最低位是 EA2,所以,逻辑地址需要适当的移位才能正确地指 向目标。对 8 位存储器而言,应该左移 2 位;对 16 位存储器而言,应该左移 l 位;对于 32位存储器
14、,则不需要移位。例如要从 (往)Flash 的 0x00000003地 址读( 写) 一个字,其逻辑地址应该是 0x90000000+(Ox00031),而非 0x90000003。 map文件中各内存区间被实际占用的尺寸大小是以字节为单位的,而 ProgramFlashArray 函数写入 Flash 的数据单位为字,所以需要将 map文件中 得到的尺寸大小的一半作为 ProgramFlashArray 函数的参数。 烧写函数中使用了 flash_burned 常量作为判断是否需要对 Flash 操 作的依据,且将其初始化为 1。这是为了避免 Flash 加载之后会执行对 Flash 的操作
15、。此变量应在烧写 Flash 时手动修改为 0。在仿真加载方式下,可以在 CCS里的 watchwindow 窗口手动修改 flash_burned 常量为 O,强迫 CPU进入对 Flash 编程的程序段。实验证明,在 仿真加载方式下手动修改 flash_burned 并不影响写入到 Flash 中的 flash_burn-ed 的值(仍为 1) ,所以,写入 Flash 的 flash_burned 的值仍然是 l 。在系统 Flash 加载之后, CPU就会跳过此段代码,实现正确运行。4 结论本 Flash 加载方案以 C6713 为例,稍加修改即可适用于 TMS320C6000系 列的其他 DSP器件。经过在研制的伺服测试
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024民间借贷合同范本(28篇)
- 2025年农村子女抚养费用分担协议
- 2025年供电企业与用户用电合作协议
- 2025年共同策划健身房合作合同书
- 企业劳动合同协议2025年
- 2025年企业员工劳动合同补充协议范本
- 2025年铝合金预拉伸厚板和蒙皮铝合金板项目立项申请报告模范
- 2025年高性能陶瓷复合材料项目立项申请报告模板
- 2025年企业变更代理协议
- 2025年涨紧轮项目提案报告模板
- 源代码审计报告模板
- 施工组织设计模板
- 含碘对比剂静脉外渗护理管理实践指南
- 萃取技术 多级逆流萃取
- 部编版小学五年级语文教材培训课件【部编】
- 盆景造型经验
- 能力不足方面存在的问题及整改措施【9篇】
- 悟真篇-薛道光注
- 重大危险源公示牌(完整)-2
- 物理学史中国古代物理学
- 初一英语英语阅读理解专项训练15篇
评论
0/150
提交评论