软件在线更新方法及软件在线更新系统的制作方法

文档序号:6563699阅读:201来源:国知局
专利名称:软件在线更新方法及软件在线更新系统的制作方法
技术领域
本发明涉及芯片系统(SoC,System on Chip)技术,尤其涉及一种软件在线更新方法及软件在线更新系统。
背景技术
随着信息技术的飞速发展,各种电子产品层出不穷,如MP3、MP4、PMP等。在这些消费类电子产品中,通常都包括一个SoC系统。参见图1所示,SoC系统主要包括诸如微型控制单元(MCU)的微处理器和存储体两部分,该存储体可以是非易失性存储器(NOR FLASH或NAND FLASH)或者其他类型的FLASH。其中,微处理器中存储了一些引导代码(boot code)、编解码算法代码等芯片必须具备的代码,主要用于完成芯片的初始化、用户程序的引导及编解码算法等;存储体主要用于存储用户程序和大批量的数据,如MP3数据等。
对于这些以NOR FLASH或NAND FLASH为存储介质的电子产品,用户在使用过程中,为了提升这些产品的功能,可能需要对其进行更新,即更新存储体中的用户程序。通常的更新做法是,微处理器通过引导程序将存储体中的用户程序载入随机存储器(RAM)中,并执行其中的更新程序,先将存储体中已有的旧用户程序擦除,再将新的用户程序写入存储体中。
但是,如果在擦除或者写入的过程中,发生某种不可预知的错误,如系统断电等,造成更新失败,从而导致存储体中旧的用户程序已经擦除,而新的用户程序还没有写入,那么,采用该存储体作为存储介质的设备就不能够再被使用,而必须返回厂家对存储体进行重新编程。
可见,现有的更新方法可靠性较低,容易造成存储体中用户程序的缺失,导致必须返回厂家进行重新编程,同时也会给用户带来诸多不便。

发明内容
有鉴于此,本发明的主要目的在于提供一种软件在线更新方法及软件在线更新系统,提高更新的可靠性。
为达到上述目的,本发明提供的软件在线更新方法如下将更新通信程序固化在微处理器中,微处理器通过固化的更新通信程序从外部设备获取更新执行程序,并通过执行所述更新执行程序从外部设备获取用于更新的目标用户程序,将获取的目标用户程序写入存储体。
其中,所述更新通信程序固化在微处理器的只读存储器中。
所述微处理器通过固化的更新通信程序从外部设备获取更新执行程序包括微处理器通过固化的更新通信程序完成与外部设备的通用串行总线枚举过程,并从外部设备获取与所述存储体类型匹配的更新执行程序。
所述微处理器通过执行所述更新执行程序从外部设备获取用于更新的目标用户程序包括微处理器在随机存储器中执行获取的更新执行程序,从外部设备获取用于更新的目标用户程序,并放置在随机存储器中;所述微处理器将获取的目标用户程序写入存储体包括微处理器将随机存储器中的目标用户程序写入存储体。
所述微处理器将获取的目标用户程序写入存储体之前进一步包括微处理器擦除存储体中已有的用户程序。
所述微处理器为微型控制单元MCU;所述存储体为非易失性存储器NOR FLASH、或NAND FLASH;所述外部设备为具有通讯接口的终端设备。
本发明还提供了一种软件在线更新系统,该系统包括外部设备、微处理器和存储体,其中,外部设备,其中存储有用于执行软件在线更新的更新执行程序、以及用于更新的目标用户程序;
微处理器,其中固化有更新通信程序,用于执行所述更新通信程序从外部设备获取所述更新执行程序,并通过执行该更新执行程序从外部设备获取所述用于更新的目标用户程序,将其写入存储体。
所述微处理器包括更新通信程序存储单元、更新执行程序获取单元和更新执行单元,其中,更新通信程序存储单元,用于固化存储更新通信程序;更新执行程序获取单元,用于从更新通信程序存储单元获取更新通信程序,通过该更新通信程序从外部设备获取与所述存储体类型匹配的更新执行程序,并将获取的更新执行程序发送给更新执行单元;更新执行单元,用于接收来自更新执行程序获取单元的更新执行程序,通过执行该更新执行程序从外部设备获取所述目标用户程序,并将其写入存储体。
所述更新通信程序固化存储在微处理器的只读存储器中。
所述微处理器为微型控制单元MCU;所述存储体为非易失性存储器NOR FLASH、或NAND FLASH;所述外部设备为具有通讯接口的终端设备。
由此可见,在本发明中,由于更新通信程序是固化在微处理器中的,具有只读的物理属性,因此,即使在更新过程中因系统断电而导致更新失败,更新通信程序也依然存在且可以正常运行。当系统重新上电以后,仍然可以通过固化的更新通信程序获取相应的更新执行程序,并通过获取的更新执行程序获取用于更新的目标用户程序,然后再将获取的目标用户程序写入存储体,完成对存储体用户程序的更新。从而避免了因更新失败而造成的存储体不可用的情况发生,提高了更新的可靠性,为用户提供了诸多便利。


图1为现有技术中的SoC系统结构示意图。
图2为本发明中的软件在线更新系统结构示意图。
图3为本发明实施例中的微处理器结构示意图。
图4为本发明实施例中的软件在线更新流程图。
具体实施例方式
为使本发明的目的、技术方案及优点更加清楚明白,下面参照附图并举实施例,对本发明作进一步详细说明。
本发明提供的更新方法的基本思想是将更新通信程序固化在微处理器中,微处理器通过固化的更新通信程序从外部设备获取更新执行程序,并通过执行该更新执行程序从外部设备获取用于更新的目标用户程序,然后将获取的目标用户程序写入存储体。
由于更新通信程序是固化在微处理器中的,具有只读的物理属性,不会被破坏,因此,即使在更新过程中因系统断电而导致更新失败,更新通信程序也依然存在且可以正常运行。当系统重新上电以后,仍然可以采用本发明所提供的更新方法对存储体的用户程序进行更新,将新的用户程序写入存储体,从而避免了因断电而导致存储体不可用的情况发生,提高了更新的可靠性。
对应本发明提供的更新方法,本发明还提供了一种更新系统,参见图2所示,该更新系统主要包括外部设备、微处理器和存储体。其中,外部设备,其中存储有用于执行软件在线更新的更新执行程序、以及用于更新的目标用户程序;微处理器,其中固化有更新通信程序,用于执行所述更新通信程序从外部设备获取所述更新执行程序,并通过执行该更新执行程序从外部设备获取所述用于更新的目标用户程序,将其写入存储体。
参见图3所示,所述微处理器具体可包括更新通信程序存储单元、更新执行程序获取单元和更新执行单元。其中,更新通信程序存储单元,用于固化存储更新通信程序;更新执行程序获取单元,用于从更新通信程序存储单元获取更新通信程序,通过该更新通信程序从外部设备获取与所述存储体类型匹配的更新执行程序,并将获取的更新执行程序发送给更新执行单元;更新执行单元,用于接收来自更新执行程序获取单元的更新执行程序,通过执行该更新执行程序从外部设备获取所述目标用户程序,将存储体中已有的旧用户程序擦除,并将目标用户程序写入存储体。
其中,所述微处理器为MCU等处理芯片;所述外部设备为计算机、或其它具有通讯接口的终端设备,如MP3、MP4或PMP等;所述存储体为非易失性存储器NOR FLASH、NAND FLASH或其他类型的FLASH。
为便于理解,下面以微处理器为MCU、外部设备为计算机、存储体为FLASH为例,对本发明进行详细说明。其中,更新通信程序固化在MCU内部的只读存储器(ROM)中。
参见图4所示,本实施例中的更新过程主要包括以下步骤步骤401MCU上电以后,进行复位、初始化的操作。
步骤402MCU的程序指针(PC,Program Counter)首先指向其内部的ROM,运行固化在ROM中的更新通信程序,MCU通过运行更新通信程序从计算机获取与存储体类型相匹配的更新执行程序,并将获取的更新执行程序放到RAM中。
其中,固化在ROM中的更新通信程序主要用来与计算机进行通信,完成通用串行总线(USB)的枚举、更新执行程序的获取等过程。更新执行程序主要阐述了如何对存储体进行更新(即重新编程),由一系列的函数组成,如擦除(Erase)函数、编程(Program)函数等。
由于目前存储体的种类繁多,因此,如何使微处理器能够对不同类型的存储体实现更新操作是一个难题。而本发明中由于固化的更新通信程序只用于完成与外部设备的通信,而对存储体执行更新操作的更新执行程序是从外部设备获取,因此可以通过获取与存储体类型相匹配的更新执行程序,实现微处理器与不同类型的存储体兼容,完成更新操作。
关于微处理器获取存储体对应的更新执行程序的过程具体可为在运行更新通信程序时,微处理器将存储体的类型标识发送给外部设备,外部设备根据该类型标识查找到对应的更新执行程序,然后将查找到的更新执行程序发送给微处理器。同样,用户也可以指定与已知存储体类型相匹配的更新执行程序,供外部设备下载。
这种固化更新的方法不仅提高了产品功能更新的可靠性,同时分两步更新也保证了与不同存储体匹配的灵活性,使产品更加人性化,方便用户的使用。
步骤403MCU运行RAM中的更新执行程序,擦除FLASH中已有的旧用户程序。如通过运行更新执行程序中的Erase函数擦除旧用户程序。
步骤404MCU从计算机获取需要写入FLASH的用于更新的目标用户程序,并将所获取的目标用户程序写入FLASH中,对FLASH进行重新编程。如通过运行更新执行程序中的Program函数将所述目标用户程序写入FLASH。
本领域内的普通技术人员应当知道,本发明的实施例中,所述更新通信程序、更新执行程序以及用于更新的目标用户程序均可采用现有技术方案实现。如将现有技术中的除更新程序之外的用户程序作为本实施例中的用于更新的目标用户程序;将现有技术中的更新程序根据功能分为通信部分和更新执行部分,并且在通信部分中增加获取更新执行部分的功能,即可实现本实施例中的更新通信程序和更新执行程序。
以上所述对本发明的目的、技术方案和有益效果进行了进一步的详细说明,所应理解的是,以上所述并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种软件在线更新方法,其特征在于,该方法包括将更新通信程序固化在微处理器中,微处理器通过固化的更新通信程序从外部设备获取更新执行程序,并通过执行所述更新执行程序从外部设备获取用于更新的目标用户程序,将获取的目标用户程序写入存储体。
2.根据权利要求1所述的方法,其特征在于,所述更新通信程序固化在微处理器的只读存储器中。
3.根据权利要求1所述的方法,其特征在于,所述微处理器通过固化的更新通信程序从外部设备获取更新执行程序包括微处理器通过固化的更新通信程序完成与外部设备的通用串行总线枚举过程,并从外部设备获取与所述存储体类型匹配的更新执行程序。
4.根据权利要求1所述的方法,其特征在于,所述微处理器通过执行所述更新执行程序从外部设备获取用于更新的目标用户程序包括微处理器在随机存储器中执行获取的更新执行程序,从外部设备获取用于更新的目标用户程序,并放置在随机存储器中;所述微处理器将获取的目标用户程序写入存储体包括微处理器将随机存储器中的目标用户程序写入存储体。
5.根据权利要求1所述的方法,其特征在于,所述微处理器将获取的目标用户程序写入存储体之前进一步包括微处理器擦除存储体中已有的用户程序。
6.根据权利要求1至5任一项所述的方法,其特征在于,所述微处理器为微型控制单元MCU;所述存储体为非易失性存储器NOR FLASH、或NAND FLASH;所述外部设备为具有通讯接口的终端设备。
7.一种软件在线更新系统,其特征在于,该系统包括外部设备、微处理器和存储体,其中,外部设备,其中存储有用于执行软件在线更新的更新执行程序、以及用于更新的目标用户程序;微处理器,其中固化有更新通信程序,用于执行所述更新通信程序从外部设备获取所述更新执行程序,并通过执行该更新执行程序从外部设备获取所述用于更新的目标用户程序,将其写入存储体。
8.根据权利要求7所述的系统,其特征在于,所述微处理器包括更新通信程序存储单元、更新执行程序获取单元和更新执行单元,其中,更新通信程序存储单元,用于固化存储更新通信程序;更新执行程序获取单元,用于从更新通信程序存储单元获取更新通信程序,通过该更新通信程序从外部设备获取与所述存储体类型匹配的更新执行程序,并将获取的更新执行程序发送给更新执行单元;更新执行单元,用于接收来自更新执行程序获取单元的更新执行程序,通过执行该更新执行程序从外部设备获取所述目标用户程序,并将其写入存储体。
9.根据权利要求7所述的系统,其特征在于,所述更新通信程序固化存储在微处理器的只读存储器中。
10.根据权利要求7至9任一项所述的方法,其特征在于,所述微处理器为微型控制单元MCU;所述存储体为非易失性存储器NOR FLASH、或NAND FLASH;所述外部设备为具有通讯接口的终端设备。
全文摘要
本发明提供了一种软件在线更新方法,该方法包括将更新通信程序固化在微处理器中,微处理器通过固化的更新通信程序从外部设备获取更新执行程序,并通过执行所述更新执行程序从外部设备获取用于更新的目标用户程序,将获取的目标用户程序写入存储体。另外,本发明还提供了一种软件在线更新系统,包括外部设备、微处理器和存储体,其中,外部设备,其中存储有用于执行软件在线更新的更新执行程序、以及用于更新的目标用户程序;微处理器,其中固化有更新通信程序,用于执行所述更新通信程序从外部设备获取所述更新执行程序,并通过执行该更新执行程序从外部设备获取所述用于更新的目标用户程序,将其写入存储体。本发明能够提高更新的可靠性,为用户提供诸多便利。
文档编号G06F15/173GK1971516SQ20061016172
公开日2007年5月30日 申请日期2006年12月13日 优先权日2006年12月13日
发明者邓乃利 申请人:北京中星微电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1