版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、摘要 在54x 系列DSP 的应用设计中,DSP 的运行速度是衡量系统性能的一项重要指标.要达到预期的运行速度,就要给DSP系统的程序空间设计一个高速程序存储空间.引导是将程序存储在低速但停电数据不丢失的器件中,运行时使用存取速度快的RAM作为程序运行存储体,这样既可保证停电时数据不丢失又可进行高速数据存取.本文介绍TMS320VC5402并行引导方案的设计关键词:TMS320VC5402 FLASH BootLoader目录1、主要芯片介绍21.1 TMS320VC5402简介21.2 闪存SST39VF400A简介32、C5402片内Bootloader的引导原理3 2.1 C5402并行
2、引导模式 .4 2.2 Bootloader的引导原理.43、系统硬件电路的设计64、系统软件设计74.1测试程序设计74.2 用户初始化程序设计74.3 引导表的建立及引导装载过程95、课程设计心得12参考文献141、主要芯片介绍1.1 TMS320VC5402简介 TMS320VC5402(以下简称C5402)是德州仪器公司(TI)1999年10月推出的性价比极高(目标价格仅为5美元)的定点数字信号处理器(DSP)。C5402主要特点如下1: ·操作速率达100MIPS;·具有先进的多总线结构,三条16位数据存储器总线和一条程序存储器总线;·40位算术逻辑单元
3、(ALU),包括一个40位桶形移位器和两个40位累加器;·一个17×17乘法器和一个40位专用加法器,允许16位带/不带符号的乘法;·整合维特比加速器,用于提高维特比编译码的速度;·单周期正规化及指数译码;·8个辅助寄存器及一个软件栈,允许使用业界最先进的定点DSP C语言编译器;·数据/程序寻址空间1M×16bit,内置4K×16bit ROM和16K×16bit RAM;·内置可编程等待状态发生器、锁相环(PLL)时钟产生器、两个多通道缓冲串行口、一个8位并行与外部处理器通信的HPI口、2个
4、16位定时器以及6通道DMA控制器;·低功耗,工作电源有3V和1.8V(内核),特别适合电池供电设备。由此可见,与TMS32054X系列的其它芯片相比,C5402以其独有的高性能、低功耗和低价格特性,使得一推出就受到业内用户的欢迎。但它的内部结构和片内掩模的引导装载(Bootloader)程序与C54X系列的其它DSP处理器有较大的差异,而它的应用对象又大多是要求能脱机运行,如机顶盒(STB)、个人数字助理(PDA)和数字无线通信等内嵌式系统。1.2 闪存SST39VF400A简介闪烁存储器(flash memory) 是可以在线电擦写、掉电后信息不丢失的存储器。SST39VF400
5、A是SST公司推出的256K×1位产品,可以直接与DSP相接,具有以下主要特点:(1) 可直接与3.3V的高性能DSP接口,简化了系统的电源要求; (2) 最快的存取速度高达90ns,CMOS工艺 ,具有100000次写入/擦写寿命; (3) 低功耗; (4) 灵活的块结构支持整片擦除、块擦除、段擦除; (5) 块保护功能,具有防止对任何区段进行编程或擦除的硬件保护机制; (6) 与JEDEC标准兼容,引脚分布和命令集与单电源flash相兼容。 2、C5402的并行Bootloader原理2.1 C5402并行引导模式 C5402加电时,如果芯片检测到MP/MC引脚电平为低电平, 系
6、统从0FF80H开始执行代码.此处有一个分支指令(厂家编程设置的),可以跳转到引导程序的开始地址( 0F800H ).这个程序可以在引导之前设置CPU 状态寄存器的初始值.中断被全部禁止,OVLY设置为1,程序和数据存取等待时间被设置为7个等待周期,然后开始程序的引导.当C5402检测到INT2引脚为高电平、INT3引脚为高电平,即2个引脚都无效时, C5402会转到行引导方式. 并行引导方式是通过扩展的内存接口从数据地址空间读取所需的引导表, 再将代码传送到程序存储区. 并行引导既支持8位的数据宽度, 也支持16 位的数据宽度. 软件可编程等待寄存器( SWWSR )和块切换控制寄存器( B
7、SCR) 都可以在这2种模式中得到设置.2.2 Bootloader的引导原理C5402 的Bootloader 在系统加电时把外部源程序传送到内部存储器或内部程序空间。它允许程序被存放在外部慢速的存储器中,并调到高速的存储器中运行。这可大大减小C5402 内部RAM掩模的需要,降低电路设计的成本。C5402的内部ROM中有固化好的加载程序。如果 DSP 的MP/MC 管脚接低,在DSP加电 RESET 时,程序就从内部 ROM的 FF80H 地址开始行运行。在 FF80H 处,有一条跳转到 BOOT 程序的指令,执行内部固化好的 BOOT 程序。BOOT程序在运行搬移程序之前,首先进行初始化
8、,工作包括关闭中断、将内部 RAM 映射在程序/数据空间,以及为访问数据和程序空间设置的七个软件等待等;然后根据设计完成不同方式下程序的搬移。C5402 共有上面讲述的 5 种加载方式。这里只讨论并口加载方案的设计,其流程如图1所示。 在判断前几种加载方式无效后,Bootloader 从I/O 空间 0FFFFH 处读取一个 16 位的程序起始地址。然后根据这个地址从外部数据区读入一个字,判断是否为在判断前几种加载方式无效后,Bootloader从 I/O 空间0FFFFH 处读取一个 16 位的程序起始地址。然后根据这个地址从外部数据区读入一个字,判断是否为 10AAH。如果是,就采用 16
9、 位的搬移方式;否则,就判断读入的字的低位字节和下一个地址读入的字的低字节组成的 16 位字。如果是08AAH,就采用 8 位并行加载方式;否则,就在外部数据空间的 0FFFFH读取一个 16位的程序起始地址,然后重复上面的检测方法。3、系统硬件电路的设计Bootloader是通过仿真器和JTAG口借助DSP芯片将Boot表写入FLASH的过程。这对系统的要求是必须将FLASH与DSP芯片的HPI口或串口或并口等数据通道管脚相连。FLASH 存储器是可以在线电擦写、掉电后信息不丢失的存储器。FLASH与EPROM相比, 具有更高的性能价格比, 而且体积小、功耗低、擦写速度快、使用比较方便。因此
10、, 采用FLASH存储程序和固定数据是一种比较好的选择。各种FLASH芯片大同小异,本文采用存储容量为256KW的SST39VF400芯片作为C5402的外扩FLASH程序存储器, 电路见图2。图2 C5402外扩FLASH存储器简图其中A0A14作为外部地址引脚, A15A18通过跳线, 将256KW的FLASH存储器分割为大小为32KW的8块,实现手动翻页。FLASH的0000h7fffh映射到数据空间的8000hFFFFh, 在本例中将跳线JP1JP3设为000,将Boot表存放在FLASH从0x8000h开始的空间里。74LVC139D是一个双四选一数据选择器, 按图所示分别连接到C5
11、402的MSTRB、R/W、XF和DS端。实现DSP对外扩FLASH、数据存储器、程序存储器(外扩数据存储器、程序存储器未画出)片选及读写控制。4、系统软件设计4.1测试程序设计由于 Bootloader 需要完成的是系统的脱机运行,因此可用一个简单可靠的测试程序验证硬件是否已经协调工作。下面是一个可行的方法,通过设置 XF 的电平高低,让XF输出不同频率的方波,或者在XF管脚外接一个发光二极管,就可以直观的看到系统有没有协调工作。 test:nop rsbx,1,13 /*将 XF 管脚置为低电平*/ call delay /*调用延时子程序*/ ssbx 1,13 /*将 XF 管脚置为高
12、电平*/ call delay /*调用延时子程序*/ b test /*循环运行*/4.2 用户初始化程序设计.c-mode.mmregsCONST-COPY .set 1.sect “.boot”.global c-int00.global main,-exit,-STACK-SIZE-stack: .usect“.stack”,0 ;定义堆栈-c-int00*堆栈初始化*STM #-stack,SP ;栈底->SPADDM #(-STACK-SIZE-1),*(SP) ;SP+栈长度=>栈顶->SPANDM #0fffeh, *(SP) ;让SP为偶地址SSBX SXM
13、 ;STM置位LD#cinit,A*寄存器初始化*SSBX CPL ;打开编译模式位RSBX OVM ;清除溢出位LD #0,ARPRSBX C16RSBX CMPTRSBX FRCTSSBX XF*变量区初始化*stm #0x3a00,arlst #0,*arl+st #0,*arl+st #0,*arl*常量区初始化*-const-initSTM #03a24h,AR2 ;常量区.const运行地址->AR2RPT #05fhMVPD #0f000h,*AR2+ ;将.const由flash拷贝到RAM区*程序初始化*STM #0cc0h,AR2 ;程序段.text运行地址->
14、AR2RPT #300hMVPD #0f000h,*AR2+ ;将.text由flash拷贝到RAM区*中断向量表初始化*STM #080h,AR2 ;中断向量表.vector运行地址->AR2RPT #07fh MVPD #0ff80h,*AR2+ ;将.vector由flash拷贝到RAM区CALL -main ;转入主程序入口CALL -exit ;转入结束程序入口RET.end4.3 引导表的建立及引导装载过程为了实现DSP加电自举 ,flash中的数据必须按照引导表的格式“烧写”。引导表的作用是:DSP运行此表时,首先根据引导表中前部分用户起始地址,把 后面的用户程序代码加载到
15、DSP片内程序空间中相应的用户地址区域 ( 由于 Flash与 DSP时间不匹配,要设置好SWWR和BSCR寄存器),然后,根据引导表中的程序入口地址,在程序空间相应的地址开始运行程序 。图3为l6位并行引导的代码结构(引导表在空间允许的情况下可以放几个程序代码段。为便于说明,在此只说明一个程序代码段的情况)。10AA (并行寻址格式)SWWSR寄存器的初始值BSCR寄存器的初始值 用户程序入口的XPC用户程序入口的地址PC 用户程序的长度 用户程序起始地址XPC用户程序起始地址PC用户程序代码0000(表示引导表结束) 图3 并行自举表的代码结构下面结合一个实例,说明利用hex500命令生成
16、二进制数据引导表的方法。所编写的一个用户程序名为fan.C,在编译链接成功后生成的输出文件名为fan.out;程序空间的开始地址为Oxl400,程序执行的入口地址为Oxl44F。利用 hex500工具,生成文件名为fan.hex的二进制数据,hex500命令后添加如下条件 : fan.out;要转换的.out文件-a ;生成ASCII码的形式-a 0x144F ;程序空间中程序运行的开始地址 -boot ;转换成引导表的形式 -bootorg PARALLEL ;并行格式 -byte ;按字节分配地址 -memwidth l6 ;系统存储器字宽度为l6位 -romwidth l6 ;ROM物理
17、宽度为l6位 -swwsr Ox7FFF ;SWWSR设置软件等待周期 -bscr 0xF800 ;BSCR设置段开关控制寄存器值 -O fan.hex ;输出的二进制数据文件名生成的二进制数据文件 fan.hex的数据为: 0x1OAA 0x7FFF OxF800 0x0000 0xl44F 0x00Dl 0x0000 0x1400(用户程序代码)OxO000: 前 8个数据解释分别为: 0xlOAA :l6位并行寻址格式 : Ox7FFF :SWWSR初始值为0x7FFF,因为Flash的运行速度比DSP慢,所以等待7个周期; 0xF800 : BSCR初始值为0xF800: OxO000
18、 : 引导表程序入口的XPC=0: 0x144F :引导表程序入口的地址=0x144F: 0x00Dl :引导表程序的长度=0x00Dl; OxO000 :引导表起始地址XPC=0: 0x1400 :引导表的起始地址=0x1400;编写一个数据转换程序,把二进制数据文件fan.hex转换为数组头文件fan.h。在CCS环境下,Flash的“烧写”主程序包含此头文件,编译链接后通过仿真器下载到DSP中,运行DSP,用户程序就被“烧入” 到 Flash中了。 实际应用时:在数据空间地址0xFFFF(也就是Flash的空间0xFFFF)中,“烧写”数据0x9000( Flash中存放的引导表起始地址
19、);从Flash的地址0x9000开始,“烧入”用户引导表数据,即 fan.h中的数组数据。 DSP运行情况为:依据图l、2所示的引导装载过程,经过一系列设置,使DSP寻址到数据空间地址0xFFFF,得到引导表的起始地址 0x9000;PC指针指向0x9000,执行引导表的数据;根据引导表写入信息,把后面的程序载入程序空间起始地址0x1400(xPc=O)(这时通过仿真器查看程序空间0x1400开始的数据,与仿真器下载的fan.out文件数据是一致的)。然后,DSP的PC指针指向程序入口地址0x144F(xPc=0),开始执行用户程序,完成了DSP利用Flash实现l6位并行引导装载的过程。 4、课程设
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GA/Z 2328-2025法庭科学资金数据分析标准体系表
- GA 2180-2024警用服饰移民管理警察丝织帽徽
- 2026年陕西省西安交大附中初三下学期质量调研考试(一模)物理试题含解析
- 江苏省无锡市刘潭中学2025-2026学年开学摸底考试初三数学试题含解析
- 2026年大学大一(建筑材料)砂浆强度检测综合测试题及答案
- 防洪预案编制指南
- 2025年前台服务保险箱考核练习卷
- 警惕六大决策“陷阱”
- 护理操作技能
- 护理学基础:病区环境的心理支持作用
- 物业小区控烟监督制度
- 2026年郑州市检验检测有限公司公开招聘19人笔试备考题库及答案解析
- 2026年春季安全教育班会记录表(19周):开学安全第一课-启航安全守护新学期
- 多模式镇痛临床实践与应用
- 2025年黄山职业技术学院单招职业技能测试题库附答案解析
- 2026吉林农业大学三江实验室办公室招聘工作人员笔试备考试题及答案解析
- 脑中风科普知识讲座
- 大坝安全监测仪器检验测试规程
- 绿色数据中心 暨对算力行业的一点思考 行业洞察 2026
- 历史试题-汕头市2025-2026学年度普通高中毕业班教学质量监测(含解析)
- 部队食堂制度规范标准
评论
0/150
提交评论