电子发烧友App

硬声App

0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示
电子发烧友网>电子资料下载>DSP>TMS320DM642编程解析

TMS320DM642编程解析

2017-10-29 | rar | 0.3 MB | 次下载 | 1积分

资料介绍

 引言
  一个完整的嵌入式系统必须要有一个合适的存储器存放用户代码。Flash是一种非易失性存储器,而且具有电可擦写、容量大、价格便宜等特点,通常可用于在DSP系统中存放用户代码。
  Flash在正常使用前要进行编程,即将用户代码写入Flash。在系统编程方法不需要其它编程设备和编程电源,只借助于仿真器,可直接通过DSP烧写程序对Flash进行编程。本文所使用的编程方法就属于在系统编程。
  本文首先介绍常见的Flash编程方法,然后详细介绍本文方法的原理,以及DSP系统上电加载原理,最后给出整个实现过程并分析了Flash编程时需要注意的一些问题。
  TMS320DM642编程解析
  图1 系统上电的工作步骤      图2 程序流程
  Flash编程方法
  常见的Flash编程方式
  Flash在正常使用前必须写入用户程序,传统上有3种编程方法:由供应商出货前把程序代码写入Flash、编程器编程和在系统编程。
  第1种方法不能满足用户更改代码的需求,所以在开发阶段不宜采用。当使用编程器编程时,要求Flash固定在PCB板前必须把用户程序写入片内。因此,现在一般都优先考虑在系统编程方法,首先应确定所选的DSP是否直持在系统编程。现行的在系统编程的方法一般是先把待加载程序(用户程序)的.out文件(COFF格式)转成HEX格式,然后去掉HEX格式文件的文件头,再通过烧写程序写到Flash里去。也可以不进行COFF格式到HEX格式的转换这一步,把COFF文件作为源文件,去除文件头信息后将其写入Flash。
  本文方法的编程原理
  本文的实现方法比较简单,首先把用户程序映射到系统RAM,再把用户程序作为数据直接从RAM搬入Flash中。
  首先在CCS上完成用户程序,生成可执行的.out文件,将该文件设为文件1进行加载;然后加载烧写程序的.out文件,将其设为文件2;最后运行文件2,通过它把文件1烧入Flash。
  操作步骤非常简单,这里要说明几点。首先,2个.out文件各自独立,文件2加载后,文件1成为数据,CCS在运行时,运行的是最新加载的程序,也即文件2。其次,文件2与文件1映射到RAM中的物理空间各自独立,也就是文件2不能映射到文件1已映射的地方,如果发生重叠,文件2的内容就会覆盖原先文件1映射到该地址空间的内容,写入Flash的内容就会发生错误。再次,用户程序里包括了二次加载程序,以在自举时把用户程序从Flash还原到RAM中。
  总线周期
  命令1 2 3 4 5 6
  序列地址 数据地址 数据地址 数据地址 数据地址 数据地址 数据
  软件复位XXXF0
  芯片擦除XXXAAXXX55XXX80XXXAAXXX55XXX10
  扇区擦除XXXAAXXX55XXX80XXXAAXXX55SA30
  字节写XXXAAXXX55XXXA0PAPD
  表1 Am29LV033C内存指令表
  二次加载和Bootloader
  要保证用户程序的正确运行,仅把程序写入Flash是不够的,必须保证上电后,程序能够从Flash中正确恢复到RAM。系统上电工作步骤如图1所示。
  DSP首先自检,得到程序的加载模式。在C6000中主要有2种模式,一种是主机加载模式,也即DSP从0x0000 0000开始执行程序;另一种是ROM加载模式,该模式又有8位、16位、32位几种,不同的DSP略有不同,这里选用8位ROM模式。工作时,DSP先从地址0x9000 0000开始,把0x9000 0000~0x9000 0400这1K(在C62xx中是64K)的数据搬到0x0000 0000~0x0000 0400,然后再从0x0000 0000开始执行程序。这一次加载由DSP自行完成,但是1K的程序作为用户程序显然不够,因此,这1K的程序要做成加载器,也就是手工写的Bootloader,利用它把用户程序从Flash搬入RAM。加载器搬运用户程序又是一次加载,因此把这个过程统称为二次加载。
  Bootloader要完成两项功能,第一,把其它程序搬到指定的地址;第二,跳转到用户程序入口,这里要先修改ISP,再跳转到复位中断,因此在Bootloader的最后总是一条跳转指令。由于Bootloader在Flash中的位置是0x9000 0000~0x9000 0400,而Bootloader又是放在用户程序里的,因此,为了方便烧写程序把Bootloader写到该位置,这里在用户程序的.cmd文件中把bootloader定位在程序段的起始位置。

下载该资料的人也在下载 下载该资料的人还在阅读
更多 >

评论

查看更多

下载排行

本周

  1. 1电子电路原理第七版PDF电子教材免费下载
  2. 0.00 MB  |  1489次下载  |  免费
  3. 2单片机典型实例介绍
  4. 18.19 MB  |  91次下载  |  1 积分
  5. 3S7-200PLC编程实例详细资料
  6. 1.17 MB  |  27次下载  |  1 积分
  7. 4笔记本电脑主板的元件识别和讲解说明
  8. 4.28 MB  |  18次下载  |  4 积分
  9. 5开关电源原理及各功能电路详解
  10. 0.38 MB  |  9次下载  |  免费
  11. 6基于AT89C2051/4051单片机编程器的实验
  12. 0.11 MB  |  4次下载  |  免费
  13. 7基于单片机和 SG3525的程控开关电源设计
  14. 0.23 MB  |  3次下载  |  免费
  15. 8基于单片机的红外风扇遥控
  16. 0.23 MB  |  3次下载  |  免费

本月

  1. 1OrCAD10.5下载OrCAD10.5中文版软件
  2. 0.00 MB  |  234313次下载  |  免费
  3. 2PADS 9.0 2009最新版 -下载
  4. 0.00 MB  |  66304次下载  |  免费
  5. 3protel99下载protel99软件下载(中文版)
  6. 0.00 MB  |  51209次下载  |  免费
  7. 4LabView 8.0 专业版下载 (3CD完整版)
  8. 0.00 MB  |  51043次下载  |  免费
  9. 5555集成电路应用800例(新编版)
  10. 0.00 MB  |  33562次下载  |  免费
  11. 6接口电路图大全
  12. 未知  |  30319次下载  |  免费
  13. 7Multisim 10下载Multisim 10 中文版
  14. 0.00 MB  |  28588次下载  |  免费
  15. 8开关电源设计实例指南
  16. 未知  |  21539次下载  |  免费

总榜

  1. 1matlab软件下载入口
  2. 未知  |  935053次下载  |  免费
  3. 2protel99se软件下载(可英文版转中文版)
  4. 78.1 MB  |  537791次下载  |  免费
  5. 3MATLAB 7.1 下载 (含软件介绍)
  6. 未知  |  420026次下载  |  免费
  7. 4OrCAD10.5下载OrCAD10.5中文版软件
  8. 0.00 MB  |  234313次下载  |  免费
  9. 5Altium DXP2002下载入口
  10. 未知  |  233045次下载  |  免费
  11. 6电路仿真软件multisim 10.0免费下载
  12. 340992  |  191183次下载  |  免费
  13. 7十天学会AVR单片机与C语言视频教程 下载
  14. 158M  |  183277次下载  |  免费
  15. 8proe5.0野火版下载(中文版免费下载)
  16. 未知  |  138039次下载  |  免费