当前位置:首页 > 嵌入式 > 嵌入式硬件
[导读]DSP系统的引导装载是指在系统加电后,系统自行将一段存储在外部非易失性存储器中的代码移植到内部DSP的高速RAM中并执行的过程。因此,在引导装载系统中,外部非易失性存储器和DSP的性能。

1 概述

DSP系统的引导装载是指在系统加电后,系统自行将一段存储在外部非易失性存储器中的代码移植到内部DSP的高速RAM中并执行的过程。因此,在引导装载系统中,外部非易失性存储器和DSP的性能显得尤为重要。FLASH存储器是一种高密度、非易失性的电可擦写存储器,而且单位存储比特的价格比传统的EPROM要低,所以十分适合于作为外扩存储器。在系统加电之前,必须先将引导程序和用户程序写入FLASH中。编程时,除了可以利用专用的硬件编程器实现对FLASH的编程之外,FLASH通常还支持DSP软件编程以实现同样的功能。当系统加电之后,一般首先在FLASH中运行引导程序,并由其自行完成对用户程序的移植操作,然后再由DSP高速运行移人到DSP片内的用户程序。本文介绍了TI公司的TMS320VC5410定点DSP和ST公司的M29W400T FLASH存储器的基本特点和主要结构,给出了通过DSP对FLASH进行软件编程的具体方法,同时介绍了实现一个完整的引导装载系统的实现方案。


2 硬件描述

2.1器件简介

TMS320VC5410数字信号处理器是美国TI公司推出的TMS320VC54x系列定点DSP中的一种,它具有144管脚的LQFP封装,采用3.3V的I/O电压和2.5V的核电压供电方式,具有3个独立的16位数据总线和1个程序总线的多总线并行结构,其低功耗和高速度适用于便携式系统的开发。由于本文涉及到DSP对FLASH的存储器地址操作;因此,在此对相关内容加以介绍。

DSP的存储空间包括程序空间和数据空间,它们均划分为64k X l6位的页面。其中DSP片内存储资源包括16k X l6位的可掩膜ROM以及可高速运行的4个2k X 16位的DARAM和7个8k X l6位的SARAM。DSP有两种工作模式:微处理器模式和微计算机模式,分别对应MP/MC=1和0。本系统中采用的是加电后从外扩的FLASH中启动,即采用微处理器模式,所以没有用到DSP内部ROM中固化的引导程序,而是采用早先写入FLASH中的自行设计的引导程序。

TMS320VC5410的存储空间映射如图1所示,它最大可支持128个存储页面,寻址空间为8Mb。在图1中,当MP/MC=1时,程序空间的第0和第1页面对应于图中最左边的两列,数据空间的第0页面对应于图中最右边的一列,其中的外部空间(External)即对应外扩的FLASH,只有这部分FLASH存储空间才可以被DSP访问到。由此可知,DSP对FLASH进行读写操作的前提是,FLASH在DSP存储空间中至少是可见的。

M29W400系列是ST公司推出的FLASH存储器,该系列器件十分适合于用作外扩存储器。M29W400T是该系列中的一种,它采用3V单电源供电,并采用TSOP封装形式。

M29W400T存储器的容量为4MB,分为11个不同大小的块结构,它支持8位或16位操作模式。本文采用16位操作模式。M29W400T的外形封装如图2所示,管脚功能见表1所列。M29W400T最重要特点就是无需额外提供高电压即可通过一些特殊的命令字序列实现对各个块的读写和擦除,并且可重复进行十万次以上。这样使得通过DSP软件编程实现对M29W400T的读写操作成为可能,并十分适合于系统的调试和开发。

2.2系统连接

本系统由TMS320VC5410和M29W400T以及相关的电源管理单元等构成,具体的连接电路如图3所示。图中,DSP与FLASH是主从关系,由DSP的相关输出管脚来控制FLASH的擦除和读写。其中A0-A17为地址线,DO-D15为数据线,MSTRB为存储选通信号,R/W是读写脉冲信号,OE和WE分别为读使能和写使能,CE为片使能,BYTE为8位或16位数据模式选择(图3中BYTE接高电压为16位模式)。当系统按如图3所示进行连接后,DSP的前一半4MB地址空间数与FLASH的4MB地址空间一一对应,因此,FLASH中的地址值即为DSP中的地址值,这样,对地址的操作就变得极为方便。

FLASH中用于存放引导程序段和用户代码段,由DSP软件编程写入。当系统脱机加电时,DSP首先从外部FLASH指定的引导程序段的起始位置处开始执行引导装载,即将原先存储在FLASH中的用户代码移植到DSP片内的RAM中,然后将程序指针设置为用户程序的起始地址,接下来便可利用DSP资源去高速执行用户程序。


2.3 DSP对FLASH的操作

对照图1的地址映射关系,如果采用的是微处理器模式(MP/MC=1),并且设置寄存器OVLY=I,那么由于连接的关系使得FLASH的起始地址0x0000和DSP的起始地址0x0000重合,在DSP第0页程序空间中可见的FLASH的地址范围应为0x8000-0xFFFF。

在擦除或读写FLASH之前,必须先执行相应的命令字序列,即在指定的FLASH地址处写入指定的指令代码,M29W400T的命令字序列如表2所示。


表2中的某些FLASH地址空间对照图1恰好对应于DSP的内部地址空间,即对DSP而言是不可见的,所以需要考虑地址的重映射。文中以对FLASH写人为例,FlashWrite表示一次底层的总线写操作。

未考虑地址重映射时,命令字序列为:

FlashWrite(0x5555L,0x00AA);// lst cycle
FlashWrite(0x2AAAL.0x0055);// 2nd cycle
FlashWrite(Ox5555L,OxOOAO);// 3rd cycle
(写入命令)
FlashWrite(myaddress,mydata);// 将数据
mydata写入FLASH地址myaddress

由图1可知,当MP=1和OVLY=1时,FLASH地址0x5555L和0x2AAAL在DSP中不属于外部空间,即对DSP是不可见的。这样DSP执行上述语句时,根本没有对FLASH进行相应的操作,从而导致即使FLASH地址myaddress是DSP可见的,也无法实现数据写入的功能。

仔细分析FLASH的命令字序列可知,其实前三句命令字序列中真正起作用的地址位是A0-A14,而高地址位A15-A17可以是任意值,于是考虑加一个地址偏移量0x8000,以使得重映射后的FLASH地址在DSP中是可见的。修改后的代码为:

#define OFFSET Ox8000
FlashWrite(((k5555L+OFFSET),0x00AA);// 19tcycle
FlashWrite((0x2AAAL+OFFSET),0x0055);// 2ndcycle
FlashWrite((0x5555L+OFFSET),0x00A0);
// 3rdf cycle(重映射的写入命令)
FlashWrite(myaddress,mydata): // 将数据mydata
写入FLASH地址myaddress

这样,在DSP中就可以对外部FLASH进行写入操作了,而其前提是FLASH地址myaddress在DSP中可见。其它的擦除和读操作也要对照图1作类似的地址重映射。

在DSP将数据写入FLASH之前,只有先删除数据所在块,然后才能重新写入。擦除和写操作之前都要执行如表2所示的相应命令字序列。其中要写入的数据部分即为引导程序以及用户程序经过编译、连接后的目标代码,为M29W400T可识别的HEX格式。


3 软件描述

3.1 功能分析

引导装载系统主要由引导程序和用户程序两部分构成,最后都存储在外扩的M29W400T的指定地址中。以上主要叙述的是如何将目标代码写入M29W400T,下面叙述如何设计引导程序和用户程序,以及生成最后目标代码的方法。

由于DSP采用微计算机工作模式。因此,在加电后,DSP将首先执行0xFF80处的中断向量表起始处的跳转命令,然后转向0xF800处的引导程序并实现代码移植功能。完毕后,再次跳转到移植后的用户程序的起始地址并执行。

以一个完整的引导装载系统为例,设用户程序是从TMS320VC5410的XF管脚输出一个均匀方波。此段代码也可以被其它用户程序替代,因此本文的引导装载系统具有一定的通用性。

3.2 代码实现

利用TI公司的DSP集成开发套件CCS可以生成*.out格式的目标代码,首先要建立引导程序段、用户程序段、中断向量表和连接命令文件四部分。引导程序段负责将用户程序段和中断向量表装载到目标地址,用户程序段是实现用户系统功能的核心代码(本文仅以实现输出一个方波为例),中断向量表包括自启时的跳转处理和中断服务程序的人口;连接命令文件则是分配各个程序段在DSP地址空间中的位置,协助生成目标代码,在这四部分中,引导程序段是设计重点,它负责将中断向量表和用户代码段从片外的M29W400T移植到片内的RAM中,并且将程序指针指向用户代码段起始地址。其引导程序段(1Oad.asm)的命令代码如下:

.def load_start
.sect,"load_prg"
load_start:
ssbx intm ;关中断
rsbx sxm ;符号扩展模式设置为0
ld #0,dp ;定义数据页指针为0
nop
nop
nop
1d #0ff80h,a ;移植中断向量表,
0xff80为中断向量表的旧起始地址
stm # VECT_NEW,arl;VECT_NEW表示中断向量表的新起始地址
rpt#(VECT_LEN_1);VECT_LEN表示中断向量表的长度
reada * arl+
nop
ld # MAIN_OLD,a ;移植用户程序段,
MAm_OlD表示用户程序段的旧起始地址

stm # MAIN-NEW,arl ;MAIN_NEW表示用户程序段的新起始地址
rpt#(MAIN_LEN_1) ;MAIN_LEN表示用户程序段的长度
reada * arl+
endboot:
orm # 020h,@ldh ;

设置OVLY=1,使得内部RAM同时映射到DSP数据和程序空间
ld # MAIN_NEW,a
bacc a ;程序指针指向用户程序段的起始地址
.end
用户程序段(main.asm)代码如下:
.def main_start
.sect "main_prg"
main_start:
loop: rsbx xf ;实现XF的复位和置位
nop
ssbx Xf
nop
b loop
.end
中断向量表(vect.asm)如下:
.mmregs
.Ief main_ start
.ref lOad_start
.def reset
.def nmi
.sect‘‘.vectors‘‘
reset: bd load_start ;加电后,跳转到自启程序段起始地址
stm #200,sp
nmi: rete ;
此表中只包含NMI中断入口,也可以类似添加其他中断入口

nop
nop
nop
.end
连接命令文件(boot.cmd)的配置如下:
vect.obj
main.obj
load.obj
-O boot.out
SECTIONS

{
main_prg:load=MAIN_OID,run=MAIN_NEW
vectors: load=0ff80h,run=VECF_NEW
load_prg:load=0f800h
}

上述引导程序经过CCS编译及连接后,生成的目标文件boot.out是TMS320VC5410能够识别的COFF格式,但是M29W400T不支持这种格式,所以不能直接写入FLASH中。而CCS自身带有多种HEX类型的转换程序。因此,在经过格式转换后,即可得到对应于上文提到的一系列数据和地址mydata和myaddress,此时就可以在联机情况下利用CCS以DSP软件编程方式将目标代码写入到M29W400T之中。一旦写入成功,便可以脱机加电自启系统。同时,在经一段时间后,还可用示波器测得XF管脚输出的均匀脉冲方波,以证明引导装载成功。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭