碧波液压网 欢迎你,游客。 登录 注册

TMS320C641X系列DSP引导方法研究

版权信息:站内文章仅供学习与参考,如触及到您的版权信息,请与本站联系。

  

  0 引 言

  近年来, 以数字信号处理器( DSP) 为基础的通用信号处理模块的研制受到人们的重视, 它的研制成功满足了信号处理系统实时性和通用性的要求, 被广泛应用于雷达、通信、电子测量和图像等领域。进行DSP 开发, 最终的目标产品要脱离仿真器运行, 在上电后可自行启动程序代码, 这就需要一个能在断电后保存程序的存储器。对于C641X 系列的DSP, 内部没有供用户使用的非易失性存储器, 只能将程序代码存放在外部的非易失性存储器中。因此, 通常需要在上电复位时, 将存储在外部速度较慢的存储器的程序代码搬移到片内高速RAM 中, 这个过程被称为Bo otLo ader 。因此, 在设计通用信号处理模块前, 有必要研究DSP 的多种引导方式。

  1 C641X BootLoader 方式和过程

  C641X 有三种Boot 模式:不引导、ROM 引导和主机引导。第一种方式只能用于仿真运行; 第二种方式利用片内固化的Boo tLoader 程序通过EDMA 通道, 从EMIF 的CE1 空间拷贝1 KB 数据到地址0 处, 然后从地址0 处开始执行。这种方式只需一片非易失性存储器, 实现较为简单; 第三种方式是在DSP 内核处于复位时, 由外部主机通过主机接口实现程序引导。这种方法虽然复杂度较前者高, 但也被广泛应用于一些具有抗空间辐射效应的星载平台中。

  2 ROM BOOT 实现

  前面提到这种方式是在DSP 上电复位后, 由片内固化的Bo otLo ader 代码采用EDMA 方式从CE1 空间复制1 KB 代码到地址0 处。但通常用户程序都远大于1 KB, 这就需要编写二次Bo otLoader 代码, 将用户程序搬移到DSP 内部RAM 中。下面介绍具体实现过程。

  2. 1 二次引导程序编写

  由于系统最初启动时, C 语言环境还没有初始化,所以二次引导程序一般用汇编语言编写。主要完成EMIF 寄存器配置, 程序搬移, 最后跳转到C 程序入口函数。其中, 程序搬移主要有两种实现方式。一种方法无需Co py Table( 引导表) , 而采用镜像的方式将所有程序代码看成是一个连续的数据段, 二次引导时将片外存储器的内容镜像到内部RAM 即可。这种方法虽然实现简单, 但存在占用空间资源大, 引导效率低的问题。

  第二种方法是利用引导表实现。这种方法生成的引导文件是各段连续存放的, 因而引导效率较前一种方法高。关于引导表的格式和生成参见2. 4 节; 两种方法的二次装载汇编程序可参见CCS 烧写工具FLASHBurn 提供的示例工程, 这里不再详述。

  2. 2 存储空间分配

  程序存储空间可分为LOAD 空间和RUN 空间。

  前者保存程序代码, 物理介质一般为片外FLASH 或E2 PROM; 后者是程序代码实际运行的空间, 物理介质一般是内部RAM。通常, 经常访问的程序和初始化变量的LOAD 空间放在FLASH 中, 而RU N 空间则放在内部RAM 中; 对于只在初始化时使用的段, 其LOAD和RU N 空间都放在FLASH 中; 而对于非初始化变量, 其LOAD 和RU N 空间都安排在内部RAM 中。当然, 如果存储空间充足时, 也可统一将LOAD 空间放在FLASH 中, 而把RUN 空间放在内部RAM 中。根据上述内容, 可以将C64X 存储区作表1 所示的安排。

你没有登陆,无法阅读全文内容

您需要 登录 才可以查看,没有帐号? 立即注册

标签: DSP
点赞   收藏

相关文章

发表评论

请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。

用户名: 验证码:

最新评论