基于TMS320DM642的编程

发布者:ww313618最新更新时间:2008-10-23 关键字:TI  DSP  FLASH  算法  嵌入式 手机看文章 扫描二维码
随时随地手机看文章

  引言

  一个完整的嵌入式系统必须要有一个合适的存储器存放用户代码。Flash是一种非易失性存储器,而且具有电可擦写、容量大、价格便宜等特点,通常可用于在DSP系统中存放用户代码。

  Flash在正常使用前要进行编程,即将用户代码写入Flash。在系统编程方法不需要其它编程设备和编程电源,只借助于仿真器,可直接通过DSP烧写程序对Flash进行编程。本文所使用的编程方法就属于在系统编程。

  本文首先介绍常见的Flash编程方法,然后详细介绍本文方法的原理,以及DSP系统上电加载原理,最后给出整个实现过程并分析了Flash编程时需要注意的一些问题。

基于TMS320DM642的编程     基于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  
序列 地址 数据 地址 数据 地址 数据 地址 数据 地址 数据 地址 数据
软件复位 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,利用它把用户程序从Flash搬入RAM。加载器搬运用户程序又是一次加载,因此把这个过程统称为二次加载。

  Bootloader要完成两项功能,第一,把其它程序搬到指定的地址;第二,跳转到用户程序入口,这里要先修改ISP,再跳转到复位中断,因此在Bootloader的最后总是一条跳转指令。由于Bootloader在Flash中的位置是0x9000 0000~0x9000 0400,而Bootloader又是放在用户程序里的,因此,为了方便烧写程序把Bootloader写到该位置,这里在用户程序的.cmd文件中把bootloader定位在程序段的起始位置。

  编程方法实现

  系统配置和参数设置

  TMS320DM642是TI公司的一款视频图像DSP,工作时钟最高可达到600MHz。程序存储器最大可调至272M×8位,其EMIF接口分4个空间,即CE0~CE3。Flash映射到CE1空间,其地址为0x90000000~0x90400000,上电时采用8位ROM加载方式。

  Am29LV033C是AMD公司生产的Flash存储器,其主要特点有:3.3 V单电源供电,可使内部产生高电压进行编程和擦除操作;只需向其命令寄存器写入标准的微处理器指令,具体编程、擦除操作由内部嵌入的算法实现,并且可以通过查询特定的引脚或数据线监控操作是否完成;可以对任一扇区进行读、写或擦除操作,而不影响其它部分的数据。

  由于4MB的Flash ROM有22根地址线,而DM642只有20根地址线,因此加入FPGA,对Flash进行分页,这里共分8页,每页512KB,每页内含8块,每块64KB。

  Am29LV033C有多条内存指令,可以实现芯片ID的读取、软件复位、整片擦除、块擦除等。在这里主要介绍烧写时用到的指令,其擦写命令如表1所示。表中的XXX表示任意地址,SA为块地址,即地址线的第16位到21位,PA为烧写地址,PD为烧写数据。

  待烧写程序(用户程序)为USER.out,大小为2M;烧写程序为FBCT.out,大小为4K,地址分配如表2所示。

  编程过程

  第一步,对整个Flash进行一遍擦除。因为Flash在编程时只能把“1”置为“0”,而不能把“0”置为“1”。

  第二步,判断擦除结束。通过DQ6、DQ7均可完成判断,当DQ6位不再跳变时说明擦除结束。这里通过读取最后一位数据是否为“0xFF”来完成判断。

  第三步,进行软件复位。软件复位使Flash处于就绪状态,当Flash在进行擦除、编程时软件复位信号无效。

  第四步,取得编程地址。如果地址超过最大地址则编程结束。

  开始地址 长度 写入Flash的开始地址
USER.out 0x80000000 2M 0x9001 0000
bootloader 0x0000 0000 1K 0x9000 0000
FBCT.out, 0x30000000 4K --

  表2 程序的地址分配

  注意事项

  对于不同的DSP,不同的Flash,在实现时可能不一样,这里有几个问题必须注意:

  (1) 文件1和文件2的.cmd文件要分配好各自的地址,地址空间不能重叠。

  (2) 不是每个DSP都可以实现在系统编程,如TMS320C6204就不行,而C621x,C64x等就可以。原因在于Flash在编程时速度较慢,一般为ms级,所以需要WE#信号的有效时间较长。但是,一般的WE#有效时间都只有几十ns,这么短的时间不足以让DSP把内容写进Flash。C64x等之所以能实现在系统编程,是因为在编程时DSP自动延长了编程的有效时间。

  (3) 如果用户程序中不含加载器程序,那么用户程序的目的地址就不能从Flash的前1K地址开始。

  (4) 不同型号Flash的编程时序和指令可能会有所不同,编程之前要弄清该Flash的编程时序和指令。如果Flash要求有偏移地址,就需要加上基地址。

  (5) 对于程序的未初始化段不必烧入Flash,可以参考.map文件,里面对于各段有详细说明。

  结语

  利用上面的方法,本文在TMS320DM642平台中通过JTAG仿真头,成功地实现了在系统编程,为程序的调试提供了一种非常方便的手段,也为用户程序的升级提供了一种简单易行的方法,同时这个方法也在C6211环境下成功实现,其它DSP同样可参考本方法。

关键字:TI  DSP  FLASH  算法  嵌入式 引用地址:基于TMS320DM642的编程

上一篇:离散随机线性系统的可观性和可控性
下一篇:用可编程DSP实现802.16 PHY信号处理

推荐阅读最新更新时间:2024-05-02 20:42

基于现代DSP技术的QPSK调制器的设计
四相相移键控调制(Quaternary Phase Shift Keying,QPSK)是一种线性窄带数字调制技术,它已经在数字调制技术中占有重要的地位,被广泛地应用于卫星通信、移动通信、视频会议系统、蜂窝电话和其它数字通信领域。具有频带利用率高、频谱特性好、抗衰落性能强、较低的比特错误率等优点。   DSP技术主要是指将DSP的基本理论和算法付诸实现的途径和方法。传统的DSP技术是当前广泛使用的DSP处理器的解决方案,而这种解决方案日益面临着不断增加的巨大挑战,自身的技术瓶颈导致这种解决方案在DSP许多新的应用领域中的道路越走越窄。而现代DSP技术是相对于传统DSP技术而言的,是基于可编程片上系统SOPC(System on
[模拟电子]
基于现代<font color='red'>DSP</font>技术的QPSK调制器的设计
NI推出自动化视觉检测应用的嵌入式视觉系统
    2009年7月, NI近日发布了全新的嵌入式机器视觉系统,可帮助制造行业工程师和系统集成商在进行产品分类、装配验证以及包装检查等应用时,快速建立高速实时机器视觉系统。NI EVS-1464RT嵌入式机器视觉系统配备一个高性能的多核控制器,能够处理多个IEEE 1394和GigE相机中的图像。此外,EVS-1464RT具有宽温度范围、实时操作系统、固态硬盘以及无风扇设计等特性,使它成为在恶劣工业环境中使用的理想选择。   “在我们的工业检查机器中,我们更倾向于使用带有实时操作系统的嵌入式设备,无需IT部门的支持,因为它们具备更好的独立性、可靠性。通过对NI嵌入式机器视觉系统进行标准化,我们能够实现工业PC的多核性能,并且
[嵌入式]
德州仪器推出最新BMS系列解决方案,支持磷酸铁锂
凭借市场上最精确的测量能力,德州仪器推出了新型汽车电池和电池组监视器,可延长电动汽车的行驶时间并提高操作安全性。 随着电动汽车越来越受欢迎,现代电池管理系统正在消除电动汽车的重大障碍。TI 拥有广泛的 BMS 产品,可帮助汽车OEM制造更安全、更可靠的汽车,并通过简化系统设计来加快电动汽车的采用。 电池管理系统 BMS对于确保增加续航里程、安全性、可负担性和可靠性至关重要。据 TI 称,该行业正朝着高压方向发展,因此目标是精确监控和平衡锂离子电池和即将推出的技术,如磷酸铁锂 (LFP)。监控对于避免快速放电或各种相邻电池之间的不平衡至关重要。 推进 BMS 的创新可以如下所示: 准确监控和平衡 400V 和 8
[汽车电子]
<font color='red'>德州仪器</font>推出最新BMS系列解决方案,支持磷酸铁锂
基于C8051F120核心的嵌入式彩色显示系统设计
  引言   嵌入式设备凭借其与使用者之间的亲和力、自然的人机交互界面,得到了迅速的发展,渗透到生活中的各个角落。本文介绍的设计方法是以高性能的8位单片机C8051F120作为核心处理器,SRAM作为系统的显存,FPGA实现时序转换,构建低温(-10℃)下嵌入式显示系统。通过PC机键盘和触摸屏实现界面操作,最终在液晶显示器上显示国标一/二级汉字、ASCII字符和65 536色的彩色图形和图片,并制作了简单的操作界面。    1 系统工作原理   显示汉字、英文字符和彩色图形的过程就是将字符和图形信息转换成液晶显示器可以显示的点阵信息。为了显示字符,可以将ASCII码字符点阵字库和按区位码排列的汉字点阵字库存储在单片机外
[电源管理]
基于C8051F120核心的<font color='red'>嵌入式</font>彩色显示系统设计
基于PCI总线模块的多通道串行数据采集系统设计
   O 引言   目前市面上有多种数据采集卡,但其应用都具有一定的局限性,不可能完全满足用户的需求。本文介绍的数据采集卡可应用于某视频图像采集系统中,数据源发送多路同步串行数据,然后经过数据采集卡传入上位机用以进行后续分析。上位机向外写控制字并转换后以异步串行方式输出。用以控制视频图像的采集。本系统将PCI接口逻辑和其他用户逻辑集成于一片FPGA中,因而大大节省了资源,便于进行串口扩展及其他功能的添加,性能良好,用途广泛。    1 PCI总线   PCI总线是一种高性能的局部总线,具有32位可升级到64位的、独立于CPU的总线结构。工作频率为33/66 MHz,最高传送速度可达132 MB/s(32位、33 MHz)或5
[模拟电子]
智能系统是嵌入式的未来
    在这个言必称云的年代,各种厂商的IaaS,PaaS,SaaS服务让人眼花缭乱。对于普通老百姓而言云计算意味着什么?人们日常接触的IT设备不外乎银行ATM机,电影取票机,公交刷卡机等等,而这些皆属于嵌入式设备的范畴。而这些收集相关信息的前端设备,不正是云计算之于普通人的第一层接触吗?对于嵌入式设备的未来,谁又在云端推动着嵌入式设备的发展? 11月10日微软发布了其嵌入式产品蓝图,进一步诠释智能系统。提及这个智能系统,就不得不说物联网。 “物联网”概念的提出,成为嵌入式市场发展的里程碑事件。设想这样一个世界: 整个世界都有不同的专用设备,并形成一个网络,大家互相分享各种数据,这样一种由专用设备组成并遍布全球的网络,叫做
[工业控制]
基于虚拟扇区的Flash存储管理技术
摘要:首先,针对闪存Flash的存储编程特点,提出一种基于虚拟扇区的闪存管理技术,使系统对Flash的擦写次数大大降低,从而提高Flash的使用寿命和整个系统的性能。然后,通过嵌入式系统电子名片管理器,介绍这一技术的使用。随着闪存的广泛应用,对Flash的有效存储管理将有很大的实用意义和社会效益。 关键词:闪存Flash 虚拟扇区VSS 存储管理 扇区分配表SAT 引言 随着嵌入式系统的迅速发展和广泛应用,大量需要一种能多次编程,容量大,读写、擦除快捷、方便、简单,外围器件少,价格低廉的非易挥发存储器件。闪存Flash存储介质就是在这种背景需求下应运而生的。它是一种基于半导体的存储器,具有系统掉电后仍可保留内部信息,及在线
[缓冲存储]
如何设计可靠性更高、尺寸更小、成本更低的高电压系统解决方案
如何设计可靠性更高、尺寸更小、成本更低的高电压系统解决方案 文章中讨论的其他器件:TPSI3050、TPSI2140-Q1 工厂自动化设备、电网基础设施应用、电机驱动器和电动汽车 (EV) 等高电压工业和汽车系统能够产生数百至数千伏的电压,这不仅会缩短设备寿命,甚至会给人身安全带来重大风险。本文介绍如何利用全新隔离技术来保证这些高电压系统的安全,从而提高可靠性,同时缩小解决方案尺寸并降低成本。 隔离方法 集成电路 (IC) 实现隔离的方式是阻断直流和低频交流电流,而允许电源、模拟信号或高速数字信号通过隔离栅传输。图1展示了三种用于实现隔离的常用半导体技术:光学(光耦合器)、电场信号传输(电容式)和磁场耦合(变压器)
[电源管理]
如何设计可靠性更高、尺寸更小、成本更低的高电压系统解决方案
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved