CN1971516A - 软件在线更新方法及软件在线更新系统 - Google Patents

软件在线更新方法及软件在线更新系统 Download PDF

Info

Publication number
CN1971516A
CN1971516A CNA200610161724XA CN200610161724A CN1971516A CN 1971516 A CN1971516 A CN 1971516A CN A200610161724X A CNA200610161724X A CN A200610161724XA CN 200610161724 A CN200610161724 A CN 200610161724A CN 1971516 A CN1971516 A CN 1971516A
Authority
CN
China
Prior art keywords
renewal
microprocessor
program
executive routine
external unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CNA200610161724XA
Other languages
English (en)
Other versions
CN100507849C (zh
Inventor
邓乃利
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Vimicro Corp
Original Assignee
Vimicro Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Vimicro Corp filed Critical Vimicro Corp
Priority to CNB200610161724XA priority Critical patent/CN100507849C/zh
Publication of CN1971516A publication Critical patent/CN1971516A/zh
Priority to US11/955,727 priority patent/US20080148252A1/en
Application granted granted Critical
Publication of CN100507849C publication Critical patent/CN100507849C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明提供了一种软件在线更新方法,该方法包括:将更新通信程序固化在微处理器中,微处理器通过固化的更新通信程序从外部设备获取更新执行程序,并通过执行所述更新执行程序从外部设备获取用于更新的目标用户程序,将获取的目标用户程序写入存储体。另外,本发明还提供了一种软件在线更新系统,包括外部设备、微处理器和存储体,其中,外部设备,其中存储有用于执行软件在线更新的更新执行程序、以及用于更新的目标用户程序;微处理器,其中固化有更新通信程序,用于执行所述更新通信程序从外部设备获取所述更新执行程序,并通过执行该更新执行程序从外部设备获取所述用于更新的目标用户程序,将其写入存储体。本发明能够提高更新的可靠性,为用户提供诸多便利。

Description

软件在线更新方法及软件在线更新系统
技术领域
本发明涉及芯片系统(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所示,本实施例中的更新过程主要包括以下步骤:
步骤401:MCU上电以后,进行复位、初始化的操作。
步骤402:MCU的程序指针(PC,Program Counter)首先指向其内部的ROM,运行固化在ROM中的更新通信程序,MCU通过运行更新通信程序从计算机获取与存储体类型相匹配的更新执行程序,并将获取的更新执行程序放到RAM中。
其中,固化在ROM中的更新通信程序主要用来与计算机进行通信,完成通用串行总线(USB)的枚举、更新执行程序的获取等过程。更新执行程序主要阐述了如何对存储体进行更新(即重新编程),由一系列的函数组成,如擦除(Erase)函数、编程(Program)函数等。
由于目前存储体的种类繁多,因此,如何使微处理器能够对不同类型的存储体实现更新操作是一个难题。而本发明中由于固化的更新通信程序只用于完成与外部设备的通信,而对存储体执行更新操作的更新执行程序是从外部设备获取,因此可以通过获取与存储体类型相匹配的更新执行程序,实现微处理器与不同类型的存储体兼容,完成更新操作。
关于微处理器获取存储体对应的更新执行程序的过程具体可为:在运行更新通信程序时,微处理器将存储体的类型标识发送给外部设备,外部设备根据该类型标识查找到对应的更新执行程序,然后将查找到的更新执行程序发送给微处理器。同样,用户也可以指定与已知存储体类型相匹配的更新执行程序,供外部设备下载。
这种固化更新的方法不仅提高了产品功能更新的可靠性,同时分两步更新也保证了与不同存储体匹配的灵活性,使产品更加人性化,方便用户的使用。
步骤403:MCU运行RAM中的更新执行程序,擦除FLASH中已有的旧用户程序。如通过运行更新执行程序中的Erase函数擦除旧用户程序。
步骤404:MCU从计算机获取需要写入FLASH的用于更新的目标用户程序,并将所获取的目标用户程序写入FLASH中,对FLASH进行重新编程。如通过运行更新执行程序中的Program函数将所述目标用户程序写入FLASH。
本领域内的普通技术人员应当知道,本发明的实施例中,所述更新通信程序、更新执行程序以及用于更新的目标用户程序均可采用现有技术方案实现。如将现有技术中的除更新程序之外的用户程序作为本实施例中的用于更新的目标用户程序;将现有技术中的更新程序根据功能分为通信部分和更新执行部分,并且在通信部分中增加获取更新执行部分的功能,即可实现本实施例中的更新通信程序和更新执行程序。
以上所述对本发明的目的、技术方案和有益效果进行了进一步的详细说明,所应理解的是,以上所述并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

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;
所述外部设备为具有通讯接口的终端设备。
CNB200610161724XA 2006-12-13 2006-12-13 软件在线更新方法及软件在线更新系统 Expired - Fee Related CN100507849C (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CNB200610161724XA CN100507849C (zh) 2006-12-13 2006-12-13 软件在线更新方法及软件在线更新系统
US11/955,727 US20080148252A1 (en) 2006-12-13 2007-12-13 Electronic Device, System and Method For Updating Software Online

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB200610161724XA CN100507849C (zh) 2006-12-13 2006-12-13 软件在线更新方法及软件在线更新系统

Publications (2)

Publication Number Publication Date
CN1971516A true CN1971516A (zh) 2007-05-30
CN100507849C CN100507849C (zh) 2009-07-01

Family

ID=38112356

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB200610161724XA Expired - Fee Related CN100507849C (zh) 2006-12-13 2006-12-13 软件在线更新方法及软件在线更新系统

Country Status (2)

Country Link
US (1) US20080148252A1 (zh)
CN (1) CN100507849C (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102331943A (zh) * 2011-09-08 2012-01-25 威盛电子股份有限公司 在线更新存储器系统与方法
CN105373403A (zh) * 2015-11-16 2016-03-02 珠海格力电器股份有限公司 控制器的升级方法及系统
CN108663959A (zh) * 2018-06-07 2018-10-16 南京协和电子科技有限公司 一种通过pwm口实现软件在线更新的ptc控制器

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010044574A (ja) * 2008-08-12 2010-02-25 Sony Ericsson Mobilecommunications Japan Inc 携帯端末、携帯端末制御方法、及び携帯端末制御プログラム
CN102622257B (zh) * 2012-04-25 2015-09-09 钜泉光电科技(上海)股份有限公司 电表在线自更新方法及其装置
CN105302591B (zh) * 2014-08-01 2018-06-19 联创汽车电子有限公司 双mcu架构系统更新程序的通信方法
CN105426198B (zh) * 2014-09-09 2018-09-07 联创汽车电子有限公司 车载双控制芯片系统及其辅助控制芯片程序更新方法
CN110347417B (zh) * 2019-07-11 2023-08-29 南京沁恒微电子股份有限公司 固定向量表mcu的iap程序升级方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5901330A (en) * 1997-03-13 1999-05-04 Macronix International Co., Ltd. In-circuit programming architecture with ROM and flash memory
US7496739B1 (en) * 2000-06-30 2009-02-24 Microsoft Corporation System and related methods for automatically configuring a computing system
US6795872B2 (en) * 2002-05-09 2004-09-21 Renesas Technology America, Inc. Maintaining at least partial functionality of a device as defined by a hardware configuration at a USB bus enumeration while the device memory is programmed
US7882502B2 (en) * 2004-05-25 2011-02-01 Sap Ag Single file update
TWI275019B (en) * 2004-12-09 2007-03-01 Lite On Technology Corp Embedded system and related method capable of automatically updating system software

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102331943A (zh) * 2011-09-08 2012-01-25 威盛电子股份有限公司 在线更新存储器系统与方法
US8601464B2 (en) 2011-09-08 2013-12-03 Via Technologies, Inc. Memory online update system and method
CN102331943B (zh) * 2011-09-08 2014-09-17 威盛电子股份有限公司 在线更新存储器系统与方法
CN105373403A (zh) * 2015-11-16 2016-03-02 珠海格力电器股份有限公司 控制器的升级方法及系统
CN108663959A (zh) * 2018-06-07 2018-10-16 南京协和电子科技有限公司 一种通过pwm口实现软件在线更新的ptc控制器

Also Published As

Publication number Publication date
US20080148252A1 (en) 2008-06-19
CN100507849C (zh) 2009-07-01

Similar Documents

Publication Publication Date Title
CN100507849C (zh) 软件在线更新方法及软件在线更新系统
CN106528106B (zh) 一种自适应各种不同Flash芯片类型的嵌入式系统启动方法
US20030088868A1 (en) Implementation of in system programming to update firmware on memory cards
CN101699402B (zh) 一种多模式启动的嵌入式系统
US8601464B2 (en) Memory online update system and method
CN101918928A (zh) 包括一次写入存储器器件和多次写入存储器器件的用于计算机的存储子系统及相关方法
CN103744712A (zh) 一种应用程序的更新方法及装置
CN103268294A (zh) 一种存取数据的操作方法和数据处理设备
US20040199911A1 (en) Apparatus and method for upgrading execution code of the portable memory device
CN101645046A (zh) 一次性可编程存储器仿真
US20100037042A1 (en) System for switching bios set-values
CN102662688B (zh) 一种Nor flash更新方法及装置
US8645624B2 (en) Portable electronic device, smartcard and control method for portable electronic device
CN110688247A (zh) 数据存储装置、数据存储装置操作方法及固件提供服务器
WO1996002034A1 (en) Updating firmware
CN102446101A (zh) 固件强制升级的系统及其固件的强制升级方法
CN103064654A (zh) 集成电路、电子系统及提供otp内存配置可更新的方法
CN107678770B (zh) 接口芯片升级方法、装置、存储介质和处理器
CN108664275A (zh) 备份配置参数的方法、系统及存储介质
US20090177921A1 (en) Portable electronic device and control method thereof
CN113064638A (zh) 嵌入式系统
CN112527341B (zh) 一种车机系统升级方法、车机系统及计算机存储介质
CN100452008C (zh) 只读存储器转接装置
EP1639455A2 (en) Embedded device with software registry
CN101840520B (zh) 一种智能卡及访问智能卡闪存的方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20090701

Termination date: 20111213