CN115437672A - 基于soc芯片的用户程序更新方法、装置、设备及存储介质 - Google Patents
基于soc芯片的用户程序更新方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN115437672A CN115437672A CN202211120722.1A CN202211120722A CN115437672A CN 115437672 A CN115437672 A CN 115437672A CN 202211120722 A CN202211120722 A CN 202211120722A CN 115437672 A CN115437672 A CN 115437672A
- Authority
- CN
- China
- Prior art keywords
- program
- user
- user program
- bootloader
- soc chip
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
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
本申请公开了一种基于SOC芯片的用户程序更新方法、装置、设备及存储介质,属于计算机技术领域,该方法包括:将bootloader程序下载至存储区,通过所述bootloader程序设定若干个用户程序的地址和容量大小;在CPU每次复位重启后,优先执行bootloader程序,并通过所述bootloader程序读取所述若干个用户程序的标志信息;根据协议选择当前CPU的PC指针跳转至某个用户程序;通过SOC芯片执行当前用户程序,当所述用户程序需要更新时,根据当前FLASH内多个用户程序的标志信息,将本次更新的用户程序存储在非当前运行用户程序存储区;根据用户程序的个数对存储区进行动态分配,在更新完成后仍能保存原用户程序,可实现多用户程序共存,并根据用户需求自由切换,提高了用户体验。
Description
技术领域
本申请属于计算机技术领域,尤其涉及一种基于SOC芯片的用户程序更新方法、装置、设备及存储介质。
背景技术
在目前SOC芯片设计领域,对于程序存储区(用户程序区)的划分仅划分一块区间,但在实际嵌入式应用领域上,根据一些特殊应用场景的需要,需支持对程序进行在线升级,且为保证升级后的程序若无法正常运行工作后能还原至升级更新前程序。现有技术主要通过PC指针不断从Boot区与APP区进行跳转,在更新用户程序时需将PC指针切换至Boot程序来实现APP程序的更新,但此方式存在在升级时无法运行原本APP程序的缺陷,且在同一时刻仅能保存一个用户程序。
发明内容
本申请在于提供一种基于SOC芯片的用户程序更新方法、装置、设备及存储介质,根据用户程序的个数对存储区进行动态分配,当用户程序需要更新时,将本次更新的用户程序存储在非当前运行用户程序存储区,在更新完成后仍能保存原用户程序,可实现多用户程序共存,并根据用户需求自由切换,提高了用户体验。
本申请解决上述技术问题所采用的技术方案如下:
根据本申请的一个方面,提供的一种基于SOC芯片的用户程序更新方法,包括:
将bootloader程序下载至存储区,通过所述bootloader程序设定若干个用户程序的地址和容量大小;
在CPU每次复位重启后,优先执行bootloader程序,并通过所述bootloader程序读取所述若干个用户程序的标志信息;
根据协议选择当前CPU的PC指针跳转至某个用户程序;
通过SOC芯片执行当前用户程序,当所述用户程序需要更新时,根据当前FLASH内多个用户程序的标志信息,将本次更新的用户程序存储在非当前运行用户程序存储区。
可选地,所述用户程序根据所述容量大小进行开发,当所述用户程序占用资源增加时,修改bootloader程序。
可选地,当所述用户程序带有更新升级功能时,通过在线升级方式进行用户程序烧录,将用户程序烧录至bootloader程序分配映射地址的FLASH存储区内。
可选地,所述协议为多用户程序切换协议,根据所述若干个用户程序标志信息制定。
可选地,所述根据协议选择当前CPU的PC指针跳转至某个用户程序之后还包括:
将SOC芯片开放的重映射偏移量以及用户区容量写入,从而可指定CPU取值地址及取值地址范围检测。
可选地,所述通过SOC芯片执行当前用户程序,当所述用户程序需要更新时,根据当前FLASH内多个用户程序的标志信息,将本次更新的用户程序存储在非当前运行用户程序存储区之后还包括:
按照制定的协议规则编辑当前用户程序存储区内的标志信息,完成标志信息写入后重启复位,重新运行bootloader程序。
可选地,所述按照制定的协议规则编辑当前用户程序存储区内的标志信息,完成标志信息写入后重启复位,重新运行bootloader程序之后还包括:
根据用户程序的标志信息完成bootloader程序至用户程序的跳转,从而实现程序的升级更新。
根据本发明的另一方面,提供的一种基于SOC芯片的用户程序更新装置,包括:
下载模块,用于将bootloader程序下载至存储区,通过所述bootloader程序设定若干个用户程序的地址和容量大小;
执行模块,用于在CPU每次复位重启后,优先执行bootloader程序,并通过所述bootloader程序读取所述若干个用户程序的标志信息;
选择模块,用于根据协议选择当前CPU的PC指针跳转至某个用户程序;
存储更新模块,用于通过SOC芯片执行当前用户程序,当所述用户程序需要更新时,根据当前FLASH内多个用户程序的标志信息,将本次更新的用户程序存储在非当前运行用户程序存储区。
根据本发明的再一个方面,提供的一种基于SOC芯片的用户程序更新设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上所述的一种基于SOC芯片的用户程序更新方法的步骤。
根据本发明的再一个方面,提供的一种存储介质,所述存储介质上存储有一种基于SOC芯片的用户程序更新方法的程序,所述一种基于SOC芯片的用户程序更新方法的程序被处理器执行时实现如上所述的一种基于SOC芯片的用户程序更新方法的步骤。
本发明提出的一种基于SOC芯片的用户程序更新方法、装置、设备及存储介质,该方法包括:将bootloader程序下载至存储区,通过所述bootloader程序设定若干个用户程序的地址和容量大小;在CPU每次复位重启后,优先执行bootloader程序,并通过所述bootloader程序读取所述若干个用户程序的标志信息;根据协议选择当前CPU的PC指针跳转至某个用户程序;通过SOC芯片执行当前用户程序,当所述用户程序需要更新时,根据当前FLASH内多个用户程序的标志信息,将本次更新的用户程序存储在非当前运行用户程序存储区;根据用户程序的个数对存储区进行动态分配,当用户程序需要更新时,将本次更新的用户程序存储在非当前运行用户程序存储区,在更新完成后仍能保存原用户程序,可实现多用户程序共存,并根据用户需求自由切换,提高了用户体验。
附图说明
图1为本发明实施例一提供的一种基于SOC芯片的用户程序更新方法流程图;
图2为本发明实施例一提供的另一种基于SOC芯片的用户程序更新方法流程图;
图3为本发明实施例一提供的再一种基于SOC芯片的用户程序更新方法流程图;
图4为本发明实施例一提供的再一种基于SOC芯片的用户程序更新方法流程图;
图5为本发明实施例二提供的一种基于SOC芯片的用户程序更新装置示范性结构框图;
图6为本发明实施例三提供的一种基于SOC芯片的用户程序更新设备示范性结构框图。
本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
为了使本申请所要解决的技术问题、技术方案及有益效果更加清楚、明白,以下结合附图和实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本发明的说明,其本身没有特定的意义。因此,“模块”、“部件”或“单元”可以混合地使用。
实施例一
如图1所示,在本实施例中,一种基于SOC芯片的用户程序更新方法,包括:
S10、将bootloader程序下载至存储区,通过所述bootloader程序设定若干个用户程序的地址和容量大小;
S20、在CPU每次复位重启后,优先执行bootloader程序,并通过所述bootloader程序读取所述若干个用户程序的标志信息;
S30、根据协议选择当前CPU的PC指针跳转至某个用户程序;
S40、通过SOC芯片执行当前用户程序,当所述用户程序需要更新时,根据当前FLASH内多个用户程序的标志信息,将本次更新的用户程序存储在非当前运行用户程序存储区。
在本实施例中,根据用户程序的个数对存储区进行动态分配,当用户程序需要更新时,将本次更新的用户程序存储在非当前运行用户程序存储区,在更新完成后仍能保存原用户程序,可实现多用户程序共存,并根据用户需求自由切换,提高了用户体验。
在本实施例中,所述用户程序根据所述容量大小进行开发,在FLASH中可同时保存二个或多个用户程序,通过bootloader程序判断机制可完成对二个或多个用户程序的选择并跳转执行。当所述用户程序占用资源增加时,修改bootloader程序,修改其检测用户程序区标志时操作的FLASH映射地址。可以灵活选择用户程序的存储容量,最大程度使用FLASH存储器,且CPU取指范围可受SOC保护。
在本实施例中,在基于外部拓展FLASH可寻址的SOC芯片设计基础上可以进一步拓展用户程序容量,根据实际用户代码大小灵活分配代码存储区,仅需同步更新bootloader程序即可。
在本实施例中,当所述用户程序带有更新升级功能时,通过在线升级方式进行用户程序烧录,将用户程序烧录至bootloader程序分配映射地址的FLASH存储区内。
在本实施例中,所述协议为多用户程序切换协议,根据所述若干个用户程序标志信息制定。以此达到多用户程序区执行优先级控制,并对在线升级后用户程序执行异常时可通过软件改变优先级标志信息完成反转。
如图2所示,在本实施例中,所述步骤S30之后还包括:
S31、将SOC芯片开放的重映射偏移量以及用户区容量写入,从而可指定CPU取值地址及取值地址范围检测。
如图3所示,在本实施例中,所述步骤S40之后还包括:
S50、按照制定的协议规则编辑当前用户程序存储区内的标志信息,完成标志信息写入后重启复位,重新运行bootloader程序。
如图4所示,在本实施例中,所述步骤S50之后还包括:
S60、根据用户程序的标志信息完成bootloader程序至用户程序的跳转,从而实现程序的升级更新。
在本实施例中,在用户程序更新过程中仍能执行当前程序,并在更新完成后仍能保存原用户程序,在特殊需要时可将执行程序更换为更新前版本的用户程序,解决了在升级时无法运行原本用户程序的问题。
实施例二
如图5所示,在本实施例中,一种基于SOC芯片的用户程序更新装置,包括:
下载模块31,用于将bootloader程序下载至存储区,通过所述bootloader程序设定若干个用户程序的地址和容量大小;
执行模块32,用于在CPU每次复位重启后,优先执行bootloader程序,并通过所述bootloader程序读取所述若干个用户程序的标志信息;
选择模块33,用于根据协议选择当前CPU的PC指针跳转至某个用户程序;
存储更新模块34,用于通过SOC芯片执行当前用户程序,当所述用户程序需要更新时,根据当前FLASH内多个用户程序的标志信息,将本次更新的用户程序存储在非当前运行用户程序存储区。
在本实施例中,根据用户程序的个数对存储区进行动态分配,当用户程序需要更新时,将本次更新的用户程序存储在非当前运行用户程序存储区,在更新完成后仍能保存原用户程序,可实现多用户程序共存,并根据用户需求自由切换,提高了用户体验。
在本实施例中,所述用户程序根据所述容量大小进行开发,在FLASH中可同时保存二个或多个用户程序,通过bootloader程序判断机制可完成对二个或多个用户程序的选择并跳转执行。当所述用户程序占用资源增加时,修改bootloader程序,修改其检测用户程序区标志时操作的FLASH映射地址。可以灵活选择用户程序的存储容量,最大程度使用FLASH存储器,且CPU取指范围可受SOC保护。
在本实施例中,在基于外部拓展FLASH可寻址的SOC芯片设计基础上可以进一步拓展用户程序容量,根据实际用户代码大小灵活分配代码存储区,仅需同步更新bootloader程序即可。
在本实施例中,当所述用户程序带有更新升级功能时,通过在线升级方式进行用户程序烧录,将用户程序烧录至bootloader程序分配映射地址的FLASH存储区内。
在本实施例中,所述协议为多用户程序切换协议,根据所述若干个用户程序标志信息制定。以此达到多用户程序区执行优先级控制,并对在线升级后用户程序执行异常时可通过软件改变优先级标志信息完成反转。
实施例三
如图6所示,在本实施例中,一种基于SOC芯片的用户程序更新设备,包括:存储器10、处理器20及存储在所述存储器上并可在所述处理器上运行的计算机程序,如实施例二所述的基于SOC芯片的用户程序更新装置30,所述计算机程序被所述处理器执行时实现如上所述的一种基于SOC芯片的用户程序更新方法的步骤。
在本实施例中,根据用户程序的个数对存储区进行动态分配,当用户程序需要更新时,将本次更新的用户程序存储在非当前运行用户程序存储区,在更新完成后仍能保存原用户程序,可实现多用户程序共存,并根据用户需求自由切换,提高了用户体验。
在本实施例中,所述存储器至少包括一种类型的可读存储介质,用于存储安装于所述电子设备的操作系统和各类应用软件,例如基于SOC芯片的用户程序更新方法的程序代码等,此外,所述存储器还可以用于暂时地存储已经输出或者将要输出的各类数据。
在本实施例中,所述处理器在一些实施例中可以是中央处理器(CentralProcessing Unit,CPU)、控制器、微控制器、微处理器或者其他数据处理芯片。该处理器通常用于控制所述电子设备的总体操作,在本实施例中,所述处理器用于运行所述存储器中存储的程序代码或者处理数据,例如运行所述基于SOC芯片的用户程序更新方法等。
实施例四
在本实施例中,一种存储介质,所述存储介质上存储有一种基于SOC芯片的用户程序更新方法的程序,所述一种基于SOC芯片的用户程序更新方法的程序被处理器执行时实现如上所述的一种基于SOC芯片的用户程序更新方法的步骤。
本发明提供的计算机可读存储介质,根据用户程序的个数对存储区进行动态分配,当用户程序需要更新时,将本次更新的用户程序存储在非当前运行用户程序存储区,在更新完成后仍能保存原用户程序,可实现多用户程序共存,并根据用户需求自由切换,提高了用户体验。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件来实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例的方法。
以上参照附图说明了本发明的优选实施例,并非因此局限本发明的权利范围。本领域技术人员不脱离本发明的范围和实质内所作的任何修改、等同替换和改进,均应在本发明的权利范围之内。
Claims (10)
1.一种基于SOC芯片的用户程序更新方法,其特征在于,包括:
将bootloader程序下载至存储区,通过所述bootloader程序设定若干个用户程序的地址和容量大小;
在CPU每次复位重启后,优先执行bootloader程序,并通过所述bootloader程序读取所述若干个用户程序的标志信息;
根据协议选择当前CPU的PC指针跳转至某个用户程序;
通过SOC芯片执行当前用户程序,当所述用户程序需要更新时,根据当前FLASH内多个用户程序的标志信息,将本次更新的用户程序存储在非当前运行用户程序存储区。
2.根据权利要求1所述的一种基于SOC芯片的用户程序更新方法,其特征在于,所述用户程序根据所述容量大小进行开发,当所述用户程序占用资源增加时,修改bootloader程序。
3.根据权利要求1所述的一种基于SOC芯片的用户程序更新方法,其特征在于,当所述用户程序带有更新升级功能时,通过在线升级方式进行用户程序烧录,将用户程序烧录至bootloader程序分配映射地址的FLASH存储区内。
4.根据权利要求1所述的一种基于SOC芯片的用户程序更新方法,其特征在于,所述协议为多用户程序切换协议,根据所述若干个用户程序标志信息制定。
5.根据权利要求1所述的一种基于SOC芯片的用户程序更新方法,其特征在于,所述根据协议选择当前CPU的PC指针跳转至某个用户程序之后还包括:
将SOC芯片开放的重映射偏移量以及用户区容量写入,从而可指定CPU取值地址及取值地址范围检测。
6.根据权利要求1所述的一种基于SOC芯片的用户程序更新方法,其特征在于,所述通过SOC芯片执行当前用户程序,当所述用户程序需要更新时,根据当前FLASH内多个用户程序的标志信息,将本次更新的用户程序存储在非当前运行用户程序存储区之后还包括:
按照制定的协议规则编辑当前用户程序存储区内的标志信息,完成标志信息写入后重启复位,重新运行bootloader程序。
7.根据权利要求6所述的一种基于SOC芯片的用户程序更新方法,其特征在于,所述按照制定的协议规则编辑当前用户程序存储区内的标志信息,完成标志信息写入后重启复位,重新运行bootloader程序之后还包括:
根据用户程序的标志信息完成bootloader程序至用户程序的跳转,从而实现程序的升级更新。
8.一种基于SOC芯片的用户程序更新装置,其特征在于,包括:
下载模块,用于将bootloader程序下载至存储区,通过所述bootloader程序设定若干个用户程序的地址和容量大小;
执行模块,用于在CPU每次复位重启后,优先执行bootloader程序,并通过所述bootloader程序读取所述若干个用户程序的标志信息;
选择模块,用于根据协议选择当前CPU的PC指针跳转至某个用户程序;
存储更新模块,用于通过SOC芯片执行当前用户程序,当所述用户程序需要更新时,根据当前FLASH内多个用户程序的标志信息,将本次更新的用户程序存储在非当前运行用户程序存储区。
9.一种基于SOC芯片的用户程序更新设备,其特征在于,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至7任一项所述的一种基于SOC芯片的用户程序更新方法的步骤。
10.一种存储介质,其特征在于,所述存储介质上存储有一种基于SOC芯片的用户程序更新方法的程序,所述一种基于SOC芯片的用户程序更新方法的程序被处理器执行时实现如权利要求1至7任一项所述的一种基于SOC芯片的用户程序更新方法的步骤。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202211120722.1A CN115437672A (zh) | 2022-09-15 | 2022-09-15 | 基于soc芯片的用户程序更新方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202211120722.1A CN115437672A (zh) | 2022-09-15 | 2022-09-15 | 基于soc芯片的用户程序更新方法、装置、设备及存储介质 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| CN115437672A true CN115437672A (zh) | 2022-12-06 |
Family
ID=84247958
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202211120722.1A Pending CN115437672A (zh) | 2022-09-15 | 2022-09-15 | 基于soc芯片的用户程序更新方法、装置、设备及存储介质 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN115437672A (zh) |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN108132797A (zh) * | 2016-11-30 | 2018-06-08 | 青岛海信电器股份有限公司 | 一种遥控器、SoC芯片及其应用程序的升级方法 |
| CN111045714A (zh) * | 2019-12-19 | 2020-04-21 | 歌尔股份有限公司 | 一种固件更新方法、装置、耳机及计算机可读存储介质 |
| WO2021115477A1 (zh) * | 2019-12-13 | 2021-06-17 | 中兴通讯股份有限公司 | 程序升级方法、装置、电子设备及存储介质 |
| CN113741971A (zh) * | 2021-08-31 | 2021-12-03 | 深圳市航顺芯片技术研发有限公司 | 微控制芯片上的程序运行方法、装置及存储介质 |
-
2022
- 2022-09-15 CN CN202211120722.1A patent/CN115437672A/zh active Pending
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN108132797A (zh) * | 2016-11-30 | 2018-06-08 | 青岛海信电器股份有限公司 | 一种遥控器、SoC芯片及其应用程序的升级方法 |
| WO2021115477A1 (zh) * | 2019-12-13 | 2021-06-17 | 中兴通讯股份有限公司 | 程序升级方法、装置、电子设备及存储介质 |
| CN111045714A (zh) * | 2019-12-19 | 2020-04-21 | 歌尔股份有限公司 | 一种固件更新方法、装置、耳机及计算机可读存储介质 |
| CN113741971A (zh) * | 2021-08-31 | 2021-12-03 | 深圳市航顺芯片技术研发有限公司 | 微控制芯片上的程序运行方法、装置及存储介质 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP7090657B2 (ja) | アプリケーションをアップグレードするための方法、装置、デバイスならびに記憶媒体 | |
| CN109933348B (zh) | 一种电子控制单元中Bootloader的更新方法和装置 | |
| US7802252B2 (en) | Method and apparatus for selecting the architecture level to which a processor appears to conform | |
| CN102486733B (zh) | 引导程序的升级方法和装置 | |
| CN112527365A (zh) | 应用程序更新方法、非易失存储器、存储介质及家用电器 | |
| EP3252595A1 (en) | Method and device for running process | |
| CN112015522B (zh) | 系统功能扩展方法、装置及计算机可读存储介质 | |
| EP3673368B1 (en) | Stack safety for independently defined operations | |
| US20060200815A1 (en) | Electronic Device and Method for Updating Related Programs | |
| CN104699503A (zh) | 一种替换安卓系统中函数的执行逻辑的方法及装置 | |
| US20100153619A1 (en) | Data processing and addressing methods for use in an electronic apparatus | |
| CN107911816B (zh) | 用于多模IoT设备的启动方法、多模IoT设备及存储介质 | |
| JP2007510211A (ja) | コンピュータ装置におけるダイナミック・リンク・ライブラリのマッピング | |
| CN117573175A (zh) | 不复位控制芯片的固件实时更新方法、系统及存储介质 | |
| US20240220235A1 (en) | Virtual machine hot-upgrading method and apparatus, device, and storage medium | |
| CN113467797A (zh) | 程序更新方法、装置和系统以及计算机可读存储介质 | |
| CN114115979A (zh) | 配置文件的自适应方法、系统、电子设备及存储介质 | |
| CN111651179B (zh) | 耳机及其程序升级方法、控制装置和可读存储介质 | |
| KR100558394B1 (ko) | 전자장치 및 그 프로그램 업데이트 방법 | |
| CN109976958B (zh) | 提升固件测试效率的方法、装置及存储介质 | |
| CN114691181B (zh) | 热升级方法、装置、设备、分布式系统及存储介质 | |
| JP2005092708A (ja) | ソフトウェア更新システム及びソフトウェア更新方法並びにコンピュータプログラム | |
| KR100617796B1 (ko) | 무선 펌웨어 업그레이드 가능 무선 단말기 및 그 방법 | |
| JPH11282690A (ja) | 制御プログラムの書込方法及び情報処理装置並びに情報処理システム | |
| US20130179653A1 (en) | Apparatus and method for partitioning memory area for application preloading in a wireless terminal |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PB01 | Publication | ||
| PB01 | Publication | ||
| SE01 | Entry into force of request for substantive examination | ||
| SE01 | Entry into force of request for substantive examination |