嵌入式系统及其程序更新方法技术方案

技术编号:7935373 阅读:125 留言:0更新日期:2012-11-01 05:04
一种嵌入式系统程序更新方法,所述的嵌入式系统包括若干储存区块一对一地储存若干程序的映像,所述方法包括:嵌入式系统执行若干程序中的一第一开机程序,并接收主机发出的一控制命令,所述的控制命令用以指示更新若干程序中的一第二开机程序;根据控制命令再接收主机发出的一控制映像,并写入储存第二开机程序的映像的储存区块,以更新第二开机程序;嵌入式系统切换为执行更新后的第二开机程序;并于执行更新后的第二开机程序时接收主机发出的一更新映像,并写入储存第一开机程序的映像的储存区块,以更新第一开机程序。

【技术实现步骤摘要】

本专利技术关于一种,尤其涉及一种不需额外设置记忆单元而可直接更新程序的嵌入式系统和其程序更新方法。
技术介绍
嵌入式系统运作所需的韧体程序数据一般会刻录在非挥发的储存单元当中,例如快闪只读存储器(Flash ROM),并附随着硬件装置释出。当系统因运作所需而欲执行其中部分程序时,由处理器将相关程序的映像从储存单元读取到主存储器后,转换为可执行的程序代码加以执行。程序数据一旦刻录在储存单元中并随着嵌入式系统硬件一起释出后,一般的用户 无法自行对系统中的韧体程序进行修改。然而,当嵌入式系统释出后,为了修补程序中的缺陷、或为提供新增的服务或功能,制造者或研发者经常会提供新版本的程序映像(image),用以供嵌入式系统进行程序的更新或升级。为更新新版本的程序映像到嵌入式系统,目前通用的作法是在嵌入式系统的主板上额外设置一个随机存取记忆体(RAM),在嵌入式系统启动后,经由开机程序(bootloader)的引导,将所下载的新版本映像先送到随机存取记忆体中,再从随机存取记忆体将新版本的映像一次写入储存单元以取代旧版本的数据。若要使嵌入式系统支持上述的更新作法,必须在制造采用嵌入式系统的产品时,就预先在主板上保留设置记忆体的位置,并且因此项额外设置的记忆体而提高制造成本。是以,寻求一种可更新程序且不造成成本负担的嵌入式系统,为研发或制造者长久以来关注的焦点。
技术实现思路
本专利技术的目的为提供一种可更新程序的嵌入式系统,以及其程序更新方法,利用若干个开机程序分别更新自身以外的其他开机程序映像的手段,达到不需额外设置用来暂存更新内容的记忆体,即可完成对嵌入式系统的韧体程序更新的效果。根据本专利技术的一种方案,提供一种嵌入式系统程序更新方法,所述的嵌入式系统包括若干储存区块一对一地储存若干程序的映像,其中一个实施例包括嵌入式系统执行若干程序中的一第一开机程序,并接收主机所发出用以指示更新第一开机程序的一更新命令;接着,嵌入式系统切换为执行若干程序中第一开机程序以外的一第二开机程序,并于执行该第二开机程序时接收该主机发出的一更新映像,以及将更新映像写入储存第一开机程序的映像的储存区块,以更新该第一开机程序。本专利技术还提供另一种嵌入式系统程序更新方法,所述的嵌入式系统包括若干储存区块一对一地储存若干程序的映像,其中一个实施例包括嵌入式系统执行若干程序中的一第一开机程序,并接收主机发出的一控制命令,所述的控制命令指示更新若干程序中的一第二开机程序;根据控制命令再接收主机发出的一控制映像,并写入储存第二开机程序的映像的储存区块,以更新第二开机程序;嵌入式系统切换为执行更新后的第二开机程序;并于执行更新后的第二开机程序时接收主机发出的一更新映像,并写入储存第一开机程序的映像的储存区块,以更新第一开机程序。根据本专利技术的另一方案,还提供一种嵌入式系统,可连接一主机以更新程序,包括一储存单元及一处理单元。其中,储存单元包括若干储存区块,所述的若干储存区块一对一储存若干程序的映像;而处理单元则用以执行若干程序当中的一第一开机程序,并且于嵌入系统准备更新第一开机程序时,切换为执行若干程序中的一第二开机程序。当处理单元执行第二开机程序时,接收由主机传送的一更新映像到嵌入式系统,并将更新映像写入储存第一开机程序的映像的储存区块,以更新第一开机程序。上述嵌入式系统以及其程序更新方法的详细内容及其他特点,请进一步配合图式参考以下的实施方式说明。附图说明图I :本专利技术所提供的一种嵌入式系统实施例的方块图;图2 :本专利技术所提供的储存单元数据结构示意图;图3 :本专利技术所提供的一种嵌入式系统程序更新方法实施例的流程图;图4 :本专利技术所提供的另一种嵌入式系统程序更新方法实施例的流程图。图中I.嵌入式系统,10.处理单元,12.储存单元,120.第一开机程序映像,122.第二开机程序映像,124.应用程序映像,125.开机位址,126.中断指标,127.第一中断向量表,128.第二中断向量表,14.主记忆单元,16.序列通讯单元,2.主机,20主机序列通讯单元,S301-S319流程步骤,S401-S423流程步骤。具体实施方式图I为本专利技术所提供的一种嵌入式系统实施例的方块图。嵌入式系统I包括一处理单元10、一储存单元12、一主记忆单元14及一序列通讯单元16。储存单元12画分为若干个储存区块,用以一对一地储存若干程序映像文件,本实施例中包括一第一开机程序映像120、一第二开机程序映像122及一应用程序映像124。嵌入式系统I与一主机2分别透过序列通讯单元16及主机2的主机序列通讯单元20连接,二者藉由序列通讯界面传递命令及用于更新储存单元12中数据的程序映像。嵌入式系统I的处理单元10可为一数字信号处理器(DSP)或一微控制器(microcontroller);储存单元12则为非挥发性的存储元件如闪存(包括Nand_Flash、Nor-Flash)或各类只读存储器;主记忆单元14为一挥发性的随机存取记忆体;序列通讯单元16则可为通用串行总线(USB)接口或通用异步收发传输器(UART)接口。嵌入式系统I启动时,处理单元10用以将储存单元12中所储存的一开机程序映像(boot loader image),载入主记忆单元14并转换为可执行的开机程序代码,用以对嵌入式系统I初始化以建立核心系统程序运行的环境。嵌入式系统I可在处理单元10执行一开机程序时接收主机2准备更新开机程序映像的命令,本例的嵌入式系统I预设执行的开机程序以第一开机程序为 例。当处理单元10将第一开机程序映像120载入主记忆单元12而执行第一开机程序时,主机2可透过由主机序列通讯单元20及序列通讯单元16所建构的序列通讯界面,发送更新命令到嵌入式系统1,由处理单元10接收;更新命令用以指示嵌入式系统I进行第一开机程序映像120的更新。特别说明,图I所示的主机2仅绘示出用以连接嵌入式系统I的主机序列通讯单元20,但本领域的具通常知识的人士皆可知主机2还包括运算处理元件、记忆或储存元件,以及视主机2的运作需要而设置的其他控制元件,图I省略上述各元件,仅为彰显与本专利技术相关的特点。由于嵌入式系统I正在执行第一开机程序映像120所转换的第一开机程序,无法对储存第一开机程序映像120的储存区块同时进行读取及写入的动作,因此,本实施例所采取的手段,控制嵌入式系统I执行将被更新的第一开机程序映像120以外的其他开机程序,亦即控制处理单元10切换为载入第二开机程序映像122并执行第二开机程序。切换的 手段请一并参照图2所示的储存单元数据结构示意图。储存单元12除了以多个储存区块分别储存第一开机程序映像120、第二开机程序映像122及应用程序映像124之外,还可能在其他的储存区块分别储存各种不同功能的程序映像。此外,储存单元12还在特定的储存区段分别记录一开机位址125、一中断指标126,以及一第一中断向量表127与一第二中断向量表128。其中,第一中断向量表127对应到第一开机程序,而第二中断向量表128则对应到第二开机程序。开机位址125记录储存第一开机程序映像120的储存区块的起始位址、或记录储存第二开机程序映像122的储存区块的起始位址,用以供处理单元10在嵌入式系统I 一旦启动后,根据开机位址125的指本文档来自技高网...

【技术保护点】
一种嵌入式系统程序更新方法,该嵌入式系统包括若干储存区块,这些储存区块一对一储存若干程序的映像,其特征在于该方法包括:该嵌入式系统执行这些程序中的一第一开机程序;接收一主机发出的一更新命令,该更新命令用以指示更新该第一开机程序;该嵌入式系统切换为执行这些程序中该第一开机程序以外的一第二开机程序;及该嵌入式系统于执行该第二开机程序时接收该主机发出的一更新映像,并将该更新映像写入储存该第一开机程序的映像的该储存区块,以更新该第一开机程序。

【技术特征摘要】

【专利技术属性】
技术研发人员:吴宗谚
申请(专利权)人:昆达电脑科技昆山有限公司神达电脑股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1