基于TMS320DM6 42的编程.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于TMS320DM6 42的编程

基于TMS320DM642的编程 作者:胡嘉凯 蒋建国 齐美彬 摘??要:嵌入式DSP系统在独立运行时需要把用户代码从外部Flash中加载到系统RAM运行,包括了Flash的编程及上电加载两项技术,是DSP系统开发中的重点和难点。本文采用一种在系统编程方法对Flash编程,巧妙地利用JTAG仿真器实现系统在线调试及编程,无需进行COFF到HEX的数据格式转换。 关键词:在系统编程;DSP;加载器 引言 一个完整的嵌入式系统必须要有一个合适的存储器存放用户代码。Flash是一种非易失性存储器,而且具有电可擦写、容量大、价格便宜等特点,通常可用于在DSP系统中存放用户代码。 Flash在正常使用前要进行编程,即将用户代码写入Flash。在系统编程方法不需要其它编程设备和编程电源,只借助于仿真器,可直接通过DSP烧写程序对Flash进行编程。本文所使用的编程方法就属于在系统编程。 本文首先介绍常见的Flash编程方法,然后详细介绍本文方法的原理,以及DSP系统上电加载原理,最后给出整个实现过程并分析了Flash编程时需要注意的一些问题。 ???????? ???????????????????图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   序列 ?地址 ?数据 ?地址 ?数据 ?地址 ?数据 ?地址 ?数据 ?地址 ?数据 ?地址 ?数据 软件复位 ?XXX ?F0                     芯片擦除 ?XXX ?AA ?XXX ?55 ?XXX ?80 ?XXX ?AA ?XXX ?55 ?XXX ?10 扇区擦除 ?XXX ?AA ?XXX ?55 ?XXX ?80 ?XXX ?AA ?XXX ?55 ?SA ?30 字节写 ?XXX ?AA ?XXX ?55 ?XXX ?A0 ?PA ?PD         ???????????????????????????????????表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,利用它把用户程序

文档评论(0)

baoyue + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档