当前位置:首页 > 电源 > 数字电源
[导读]以TMS320VC5410为例,介绍对Am29LV200B Flash存储器进行程序分页烧写以及上电后多页用户程序并行自举的方法。

摘  要:以TMS320VC5410为例,介绍对Am29LV200B Flash存储器进行程序分页烧写以及上电后多页用户程序并行自举的方法。对多页Flash存储器的烧写,须在烧写过程中对已烧写的数据长度进行动态判断,当达到预定烧写长度后对Flash进行换页,然后继续烧写,重复上述换页过程,直到程序烧写完为止。对多页程序的并行自举,在系统上电后,利用TI提供的自举程序,将一个用户自己编写的前导程序载入DSP,利用该前导程序将多页程序载入DSP来实现程序的自举。此方法适用于多种FIash芯片和C5000系列DSP。
关键词:TMS320VC5410 Am29LV200B DSP 多页并行自举

    TI公司的DSP芯片TMS320Vc5410(简称5410)是性能卓越的低功耗定点DSP,在嵌入式系统中有着广泛的应用。5410没有自带的片上非易失性存储器,因此需要外部的非易失性存储介质,如EPROM或Flash,来存储程序和数据。5410片内有64 K字RAM,由于在片内RAM运行程序比片外运行有高速度低功耗等显著优点,通常上电后都需要从片外EPROM或Flash上加载程序到片内RAM,但是芯片自带的自举程序(简称Bootloader)只支持32 K字以内的外部程序加载,因此程序设计往往局限于32 K字空间内,限制了编程的灵活性,不能充分发挥5410的性能。当程序空问大于32 K字时,就需要自己编写程序来实现自举。下面首先介绍使用5410对Am29LV200BFlash存储器进行程序分页烧写的方法,然后重点介绍利用Bootloader来编程实现多页并行自举引导的方法。

1 Am29LV200B Flash 存储器的分页烧写
1.1 FIash 存储器简介

    Am29LV200B(简称Flash)是AMD公司生产的Flash存储器,主要特点有:3 V单电源供电,可内部产生高电压进行编程和擦除操作;支持JEDEC单电源Flash存储器标准;只需向其命令寄存器写人标准的微处理器指令,具体编程、擦除操作由内部嵌入的算法实现,并且可以通过查询特定的引脚或数据线监控操作是否完成;可以对任一扇区进行读、写或擦除操作,而不影响其他部分的数据。文中128K×16位Am29LV200B Flash映射为5410的片外数据存储空间,地址为:0x8000~0xFFFF,数据总线16位,用于16位方式的并行引导装载。128K的Flash被分为7页进行访问。本文通过DSP的I/O端口向FPGA写控制字,由FPGA控制Flash的换页引脚对各个分页进行访问;以烧写2个页面为例,使用Flash的第1、2页,初始化时选中第l页。

1.2 Flash 存储器的分页烧写

    Flash的页面分配和相应的引脚控制如表1所列。关于Am29LV200B的擦除、写、校验等详细操作,请见参考文献[1]、[2]。

    从表1可以看到,通过对A16、A15等地址引脚的控制,可以实现Flash的页面切换。在烧写过程中,只要在指定页面烧写完预定空间后就对Flash进行换页,然后将烧写指针指向新的一页的首地址,就可以继续进行烧写,当程序烧写完成后需要将页面换回到第1页,在第1页的FFFFH地址写入8000H,这样Bootloader可以从这一页开始自举。整个烧写程序流程如图1所示。

    这里会出现一个问题:程序烧写好后,虽然Bootloader可以自动加载程序,但是Bootloader怎样在加载过程中自动换页?下面详细介绍利用片上Bootloader编程实现多页程序并行加载的方法。

2 多页并行加载的实现
    实现多页加载,关键问题是要让Bootloader知道什么时候可以换页;但是Bootloader是固化在5410片上ROM内的,无法对其进行编程。解决的方法是通过自己编写一段“前导”加载程序(简称Loader)来实现加载中的换页:首先将Loader和用户程序都烧写到Flash中,当系统上电后,Bootloader将Loader加载到片上并运行,然后Loader将Flash中的用户程序加载到目标RAM空间。这个加载过程是用户编程可控的,因此在需要换页时,可以控制Flash进行换页,加载完成后,Loader跳转到用户程序的人口地址处运行用户程序。

2.1 Bootloader的并行自举表结构和编程后的自举表结构

    5410的并行加载过程以及生成并行自举表的详细方法请见参考文献[1]、[3]。Bootloader使用图2所示的并行自举表来加载程序。Bootloader从表头开始依次读取自举表,然后将相应的程序段加载到目标RAM,最后以程序段大小为0来结束自举表的读取,跳转到用户程序入口地址执行用户程序。从图2可以看到,Bootloader是以自举表中的程序长度为0来结束自举的,于是就可以利用这个特性,给Bootloader制造一个“假象”,让Bootloader在加载完Loader程序后,认为程序已经加载完毕,然后开始运行Loader程序,继续加载用户程序。按照这个思路,可以建立图3所示的自举表。

    图3中的黑体字部分,是嵌入了Loader程序的自举表,有了图3这样形式的并行自举表,系统就可以实现多页程序的并行自举。建立这样的自举表很简单,只需要将hex500格式转换工具生成的Loader的并行自举表和用户程序的并行自举表按图3给定的格式,通过简单的文件操作合并在一起就可以了。注意:Loader程序要占用一部分RAM空间,用户程序空间不能和Loader的RAM空间重叠在一起。

2.2 Loader程序的具体实现
    下面以分布在2个Flash页面的程序为例,给出5410并行自举的示例程序。程序中,当I/O端口5写人数据O时,选中Flash第1页;写1时选中第2页。程序里用黑体字标出的注释部分,是Loader程序设计的重点或难点。(具体程序见本刊网站www.mesnet.com.cn——编者注)

    示例程序中,DSP上电后,Bootloader将Loader程序加载到RAM中,然后执行Loader程序:Loadelr程序从Flash第1页的8080H开始读取用户程序自举表,当Flash读取计数值超过31 K时,将Flash切换到页面2,继续加载,自举完成后,跳转到用户程序入口地址执行用户程序。在编写自举程序过程中,有这样几个问题需要注意:

    ①在换页时,一般情况下程序段都会跨越两个页面,因此在确定需要换页时要计算出第1页和第2页分别要加载的段长度。
    ②整个用户程序段开始时有2个字的入口信息,每一个程序段都有3个字的段信息,因此需要在Flash读取计数时给予修正,才能正确加载数据。
    ③在确定需要换页时要将换页标志置为1,换页后要将换页标志置为0,而且换页后要将数据读取指针指向第2页的开头地址。

    如果要使用本文的示例程序,一定要将Loader程序烧写到Flash第1页8000H的位置,用户程序段烧写到8080H以后的位置。再次提醒,Loader程序加载到RAM中的地址,不能和用户程序段加载到RAM中的地址重叠。例如Loader使用了RAM中的7F80H~8000H这段空间,则用户程序不能使用这段空间,否则会出现错误。Loader的自举流程如图4所示。

3  总 结
    要实现5410的多页程序并行自举,有如下几个步骤:
    ①根据用户程序的需求以及实际使用Flash的分页设置,参考第2部分提供的思路和例子编写Loader程序;
    ②使用hex500代码转化工具分别生成Loader程序和用户程序的自举表;
    ③将两个自举表按图2的格式生成一个新的自举表,再使用第1部分介绍的方法将新的自举表分页烧写到Flash上。

    使用本文介绍的方法,通过多次试验,系统上电后,能够很好地实现2个页面程序的并行自举。虽然是以2个页面为例介绍Flash烧写和并行自举的方法,但是对于2页以上的程序烧写和并行自举同样适用,只需要进行一些细微的改动即可。本文提供的方法以不到128字的RAM空间代价,在5410上实现了将大于32 K字的程序并行自举到片上RAM,大大提高了编程的自由度和程序的运行速度,降低了系统功耗。这个方法有很强的通用性,可以在很多存在类似问题的DSP芯片(5409、5416等)上进行应用,具有较高的实用价值。

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

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 信息技术
关闭
关闭