首页 TMS320VC5416并行自举的巧妙实现

TMS320VC5416并行自举的巧妙实现

举报
开通vip

TMS320VC5416并行自举的巧妙实现TMS320VC5416并行自举的巧妙实现 宗战华 郑建生 武汉大学电子信息学院(430079) 2008-08-22 提出了一种巧妙实现DSP并行自举的方法,即采用“两次下载法”,利用DSP自身对FLASH编程,以实现DSP的并行自举。这种在系统编程的DSP自举实现方式无需文件转换,简单灵活。以TI公司 的TMS320VC5416和闪烁存储器SST39VF200为例,介绍了该方法的具体实现过程。 DSP TMS320VC5416 FLASH SST39VF200 并行自举 随着信息技术的飞速发展,数字...

TMS320VC5416并行自举的巧妙实现
TMS320VC5416并行自举的巧妙实现 宗战华 郑建生 武汉大学电子信息学院(430079) 2008-08-22 提出了一种巧妙实现DSP并行自举的方法,即采用“两次下载法”,利用DSP自身对FLASH编程,以实现DSP的并行自举。这种在系统编程的DSP自举实现方式无需文件转换,简单灵活。以TI公司 的TMS320VC5416和闪烁存储器SST39VF200为例,介绍了该方法的具体实现过程。 DSP TMS320VC5416 FLASH SST39VF200 并行自举 随着信息技术的飞速发展,数字信号处理器(DSP)得到了广泛的应用。现今的高速DSP内部不再基于FLASH结构,而是采用存取速度更快的RAM结构。DSP掉电后其内部RAM中的程序和数据将全部丢失,所以 在脱离仿真器的环境中,DSP芯片每次上电后必须自举,将外部存储区的执行代码通过某种方式搬移到内 部存储区,并自动执行。目前应用非常广泛的是TI公司的5000系列DSP,常用的自举方式有并行自举、 串行自举、主机接口(HPI)自举和I/O自举。HPI自举需要有一个主机(如单片机)进行干预,虽然可以 通过这个主机对DSP内部工作情况进行监控,但电路复杂、成本高;串口自举代码加载速度慢;I/O自举仅占用一个端口地址,代码加载速度快,但一般的外部存储器都需要接口芯片来满足DSP的自举时序,故电路复杂,成本高;并行自举加载速度快,虽然需要占用DSP数据区的部分地址,但无需增加其它接口芯 片,电路简单。因此在TI公司的5000系列DSP中,并行自举得到了广泛的应用。 将可执行代码烧录到外部存储器,传统的做法是通过编程器完成。先利用CCS软件中的hex500.exe文件将要写入的*.out文件转换成编程器能够识别的*.hex文件 格式 pdf格式笔记格式下载页码格式下载公文格式下载简报格式下载 ,再用编程器将转换后的*.hex文件烧录到外部EEROM中。然而,随着芯片制造工艺的不断提高,芯片集成度越来越高,存储器正向小型化、贴片 式的方向发展,很多贴片封装的存储器很难用编程器编程,更不可能频繁插拔。与传统的EEROM相比,FLASH存储器具有支持在线擦写且擦写次数多、速度快、功耗低、容量大、价格低廉等优点。目前有很多FLASH芯片采用3.3V单电源供电,与DSP连接时无需采用电平转换芯片,因此电路连接简单。在系统编程,利用 系统本身的DSP直接对外挂的FLASH存储器编程,节省了编程器的费用和开发时间、使得DSP执行代码可 以在线更新。 这里,在可执行代码的FLASH烧录方面,不再采用hex500.exe文件对*.out文件进行转换,而是巧妙 地采用“两次下载法”,利用DSP对FLASH的写操作将可执行代码直接写到外挂FLASH中去。 本文以一片TMS320VC5416外挂一片SST69VF200 FLASH存储器为例,介绍如何通过DSP对FLASH在系 统编程,以实现DSP并行自举的具体方法,并给出了DSP 的C程序部分源码。 DSP在自举过程中,是将外部的存储区当作数据存储区来访问的。因此在设计时,虽然FLASH内部存储的是代码,但对于DSP而言依然是数据。由于TMS320VC5416的数据总线是16位的,所以选用16位总线接口的FLASH存储器。数据区中的0x0000~0x7FFF对应为DSP内部的RAM区,所以DSP要对外部的FLASH 操作只能访问0x8000~0xFFFF的32K字存储区。 DSP自举系统的基本连接如图1所示。自举系统中选用的FLASH为SST公司的SS39VF200,该FLASH存储器为128K字容量,16位总线接口。为了简化起见,图中没有对FLASH进行分页处理,仅仅是把它当成 外部数据存储区来处理。由于SS39VF200的读信号和写信号是分开的,且写信号的优先级高于 读信号,而DSP的读写共用一个引脚,所以将DSP的读写信号与FLASH的写信号相连接,而将其读信号 直接接地,FLASH的片选信号直接与DSP的数据区选择信号相连接,这 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 明将FLASH作为DSP的数据存储区进行访问。如上所述,DSP只能访问外部数据区的0x8000~0xFFFF区域的数据,因此对于39VF200而言,可以将最高位地址A16直接接地。对于上述电路连接方法,39VF200存储器从0x0000开始的32K字 的空间是无法访问的。 SST39VF200的操作不像一般的RAM和ROM,除了读数据的过程一样外,其它的操作都不相同,必须按 照一定的顺序来执行。SST39VF200的常用操作如表1所示。 通常,在对FLASH进行编程之前,必须将FLASH中待写的区域进行擦除,然后才能进行编程操作。需 要注意的是,每次对FLASH发出操作命令后,必须等到FLASH完成本次操作才能发送下一个操作命令。判 断FLASH执行命令完毕的方式有两种,一是利用数据位D7判断,如果FLASH尚未完成操作,则读该位总是为低,完成操作后该位变成高;二是利用数据位D6判断,如果FLASH尚未完成操作,则相邻两次读到的 D6位的值不同。当两次读到的D6位的值都是一样时,表明FLASH完成了本次操作。 下面以数据位D6判断操作完成与否,说明TMS320VC5416对SST39VF200写操作的具体过程,其它操作 过程与该过程基本相同。 void Word_Program(uint *Ad,uint DQ) //Ad为编程地址,DQ为编程数据 { uint *Ad_Temp,Temp1,Temp2; //定义临时地址指针和数据变量 Ad_Temp=(uint *)(0x5555 ); //第一个写周期 *Ad_Temp=0x00AA; //给地址0x5555写数据0x00AA Ad_Temp=(uint *)(0x2AAA ); //第二个写周期 *Ad_Temp=0x0055; //给地址0x2AAA写数据0x0055 Ad_Temp=(uint *)(0x5555); //第三个写周期 *Ad_Temp=0x00A0; //给地址0x5555写数据0x00A0 *Ad=DQ; //给编程地址写编程数据 Again: Temp1=*Ad & 0x0040; //两次读D6(Toggle Bit) Temp2=*Ad & 0x0040; if(Temp1!=Temp2) //判断是否命令执行结束,否则继续读Toggle Bit goto Again; } 通过在系统编程可以实现将可执行代码写入FLASH。如何确定FLASH中用户程序代码的存放格式并正 确自举以实现脱机运行是整个在系统编程的重点。 在介绍DSP并行自举过程之前,必须对DSP的自举表加以说明。自举表需按照TI公司规定的格式来创建。该表中存放有DSP初始化时要用到的特殊寄存器如SWWSR、BSCR等的值、程序入口地址、各段的目标 首地址和长度以及要执行的代码。自举表的格式如表2所示。 完整的并行自举的流程图如图 2所示。 SST39VF200 FLASH存储器是16位的,所以实际采用的是16位并行自举,DSP内部的引导程序从数据 空间地址0xFFFF读取自举表首地址,最后从自举表中将可执行代码搬移到DSP对应的RAM中。 如何按照规定的自举表格式将表中的各项内容写入到外挂的FLASH中去?普遍的做法是利用 hex500.exe文件将*.out文件转换成*.hex格式,然后读取*.hex文件,将其写入FLASH。这里采用一种更简便的“两次下载法”将自举表写入FLASH,整个过程无需文件转换和文件读取,并且完成此过程的代码 很小,几乎不占用DSP内部的存储空间。 所谓的“两次下载法”就是通过仿真器对DSP进行两次加载来完成自举表的建立。第一次加载用户希 望自举的可执行代码,称为代码1,加载完后不运行此代码;紧接着加载建立自举表的代码,称为代码2。代码1是DSP脱机运行时的代码,代码2仅仅是把代码1按照自举表的格式写入到外部FLASH中的代码。需要注意的是,代码1和代码2在分配程序存储空间时不可以重叠,而且代码2的数据空间必须包含代码1和外部FLASH共同占有的空间,因为它要把代码1按访问数据的方法写到外部FLASH中。由于下载完代码1后并没有运行,而是紧接着下载代码2,两者的程序存储区又不重叠,因此下载完代码2后,先前下 载的代码1仍旧在DSP中,只是被代码2看成数据而已。“两次下载法”的具体操作步骤如下: (1)将DSP的MP/MC引脚置高,让DSP工作在微处理器方式。 (2)将代码1通过仿真器下载到DSP中,但不运行该代码。 (3)将代码2通过仿真器下载到DSP中,运行此代码。 (4)代码2运行结束后,去掉仿真器,并将MP/MC引脚置低,让DSP工作在微型计算机方式。 (5)复位DSP,观察程序运行的结果是否正常。 “两次下载法”中两次代码的存储区分配情况如图3所示。 图中,代码1中的数据段起始地址为0xA,数据段结束地址为0xB,代码段起始地址为0xC,代码段结束地址为0xD,其中0xB和0xC可以是同一地址,也可以是不同地址;代码2中的数据段起始地址为0xG,数据段结束地址为0xFFFF,代码段起始地址为0xE,代码段结束地址为0xF,其中0xF和0xG可以是同一地址,也可以是不同地址。对TMS320VC5416而言,因其0x0000~0x7FFF对应的是内部的32K字空间,所 以两个表中的地址大小关系为0xG<0xC<0xD<0x8000。 基于上述思想,假设代码1的程序段为0x4000~0x7FFF,数据段为0x3000~0x3FFF,代码2的程序段为0x2000~0x2FFF,数据段为0x3000~0xFF7F(需要注意的是,代码2的数据段必须包含代码1的代码段和FLASH所占据的地址空间,代码2的代码段绝对不能与代码1的代码段有重叠),外部FLASH占据的地址空间为0x8000~0xFF7F,自举表的首地址从0x8000开始,并且SWWSR和BSCR的值分别为0x0E38和0x8806,程序入口地址为0x004089,代码1长度为16K字,代码1的存放起始地址为0x004000,那么代码 2在FLASH中建立自举表的程序如下: UINT I; //定义临时变量 UINT *Addr1,*Addr2; //定义临时地址指针变量 Addr1=(uint *)0xffff; Word_Program(Addr1,0x8000); //在数据空间0xffff地址写自举表起始地址0x8000 Addr1=(uint *)0x8000; //自举表首地址 Word_Program(Addr1,0x10AA); //自举总线宽度为16位,即第一个字为为0x10AA Addr1++; //累加地址 Word_Program(Addr1, 0x0E38); //SWWSR的值 Addr1++; //累加地址 Word_Program(Addr1, 0x8806); //BSCR的值 Addr1++; //累加地址 Word_Program(Addr1,0); //程序入口地址XPC为0 Addr1++; //累加地址 Word_Program(Addr1,0x4089); //程序入口地址PC为0x4089 Addr1++; //累加地址 Word_Program(Addr1,0x4000); //代码长度为0x4000 Addr1++; //累加地址 Word_Program(Addr1,0); //目标程序入口地址XPC为0 Addr1++; //累加地址 Word_Program(Addr1,0x4000); //目标程序入口地址PC为0x4000 Addr1++; //累加地址 Addr2=(uint *)0x4000; //代码1起始地址 for(I=0;I<0x4000;I++) //写代码1到FLASH,长度为16K字 Word_Program(Addr1++,*(Addr2++)); Word_Program(Addr1,0x0000); //自举表结尾的一个字写入0x0000,自举表建立结束 代码2除了上面的自举表的建立外还包括FLASH的擦除和自举表数据的校验。需要注意的是,在对FLASH 进行写操作之前,必须对其进行擦除,擦除部分的程序可参考前面的Word_Program()子函数。 这样,通过简单的“两次下载法”,利用代码2将要脱机运行的代码1以自举表的格式写到FLASH存 储器中,校验正确后DSP即可脱机工作了。 采用“两次下载法”利用DSP自身对FLASH进行编程,可实现DSP的并行自举。这种在系统编程的DSP自举实现方式简单灵活。文中给出的硬件电路仅适用于程序代码小于32K字的系统中。在一般DSP系统中,都会有FPGA等可编程器件,利用它们可以灵活地对FLASH进行分页操作。这样,在程序量超过32K字的情 况下,此方法也适用。 1 C5000 Applications:TMS320VC5416 Bootloader. Application Report SPRA602D, March 2002 2 Data Manual:TMS320VC5416 Fixed-Point Digital Signal Processor. Literature Number:SPRS095J, March 1999, Revised April 2003 3 Data Sheet: 2Mbit/4Mbit/8Mbit(x16) Multi-Purpose Flash SST39VF200/SST39VF400/ SST39 VF800. Silicon Storage Technology Inc., 2001
本文档为【TMS320VC5416并行自举的巧妙实现】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_266065
暂无简介~
格式:doc
大小:105KB
软件:Word
页数:10
分类:互联网
上传时间:2017-10-18
浏览量:12