CN109189429A - 双核处理器amp模式下cpu0更新cpu1程序的方法 - Google Patents
双核处理器amp模式下cpu0更新cpu1程序的方法 Download PDFInfo
- Publication number
- CN109189429A CN109189429A CN201811057822.8A CN201811057822A CN109189429A CN 109189429 A CN109189429 A CN 109189429A CN 201811057822 A CN201811057822 A CN 201811057822A CN 109189429 A CN109189429 A CN 109189429A
- Authority
- CN
- China
- Prior art keywords
- cpu1
- cpu0
- program
- processor
- memory
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种双核处理器AMP模式下CPU0更新CPU1程序的方法,其特征在于,包括以下步骤:当检测到CPU1可执行程序有更新时,将更新后的CPU1可执行程序下载到可执行程序存储空间中,该可执行程序存储空间为在CPU0管理下的存储空间中预留的专门用于存放CPU1可执行程序的空间;由CPU0应用程序进行解析,把CPU1可执行程序的.elf格式文件转为.bin格式文件,并采用内存映射的方法把CPU1的.bin格式文件加载到DDR中对应的链接地址;使用读写内存字节的方式把CPU1上将要执行的应用程序执行地址写入片上存储器OCM中,在需要时激活启动CPU1的运行。本发明避免了打包操作及频繁更新CPU1可执行程序带来的效率低下问题,同时后期升级CPU1程序也非常的方便。
Description
技术领域
本发明涉及双核处理器,尤其涉及一种双核处理器AMP模式下CPU0更新CPU1程序的方法。
背景技术
双核处理器是指在一个处理器上集成两个内核,采用同构多核的架构(系统中的处理核在结构上是相同的,所有的核心或CPU具有相同的构架),它们拥有共同的存储器和外设资源,从软件的角度来看,目前支持同构双核处理器架构的运行模式主要有两种:SMP(Symmetric Multi-Processing)对称多处理;AMP(Asymmetric Multi-Processing)非对称多处理。
在AMP的体系架构中,双核运行设计上首先要保证CPU0和CPU1各自占用独立的DDR空间(即将DDR分为两部分,一部分只有CPU0能够访问,另一部分CPU1才能访问),为方便描述,假定CPU0占用的DDR地址区间为CPU0STARTMEM~CPU0ENDMEM,CPU1占用的DDR地址区间为CPU1STARTMEM~CPU1ENDMEM,OCM(On-Chip Memory,片上存储器)中激活CPU1的地址为CPU1STARTADDR。
在双核AMP模式下,一般是CPU0作为主处理器,CPU1是从处理器,运行启动是从CPU0开始,然后CPU0上的系统负责控制CPU1的启动,具体描述如下:
系统上电启动后,片内BootROM运行从外部非易失性存储器(例如flash)中加载启动镜像到OCM,然后运行启动代码,加载CPU0可执行文件和CPU1可执行文件到DDR对应的链接地址,这一阶段所有的代码在CPU0中执行,CPU1处于WFE(Waite For Event,等待事件)状态,然后从DDR中运行CPU0程序并把CPU1上将要执行的应用程序执行地址CPU1STARTMEM写入OCM的CPU1STARTADDR地址,执行指令激活CPU1,CPU1激活后将会到OCM的CPU1STARTADDR地址读取其数值,其数值就是CPU1执行可执行程序的地址CPU1STARTMEM,CPU1应用程序将从该地址执行。
目前在双核AMP模式启动镜像文件方面,通常的做法是借助第三方软件工具把CPU1application(CPU1的可执行程序)与CPU0的bootloader、kernel等软件打包在一起,生成一份启动镜像文件存放在外部非易失性存储器(例如flash)中,由CPU0启动时通过FSBL(First Stage Boot Loader)代码加载CPU1的代码到DDR中运行。
以上的做法存在两个弊端:
1)如果CPU1程序发生更改,更新CPU1的程序就需要重新打包,在产品软件开发阶段,CPU1程序可能更改比较频繁,每次更改后都需要打包,势必增加人力资源的投入和影响工作效率,后期产品出厂了,如果需要更新CPU1程序,则要更新整个底层软件包,给产品维护升级工作带来了极大的不便。
2)CPU1程序在CPU0运行的初始阶段就启动运行了,不适用于需要CPU0运行到一定阶段再启动运行CPU1的条件。
发明内容
本发明要解决的技术问题在于针对现有技术中当CPU1程序发生更改时,无论产品开发还是维护都很不便的缺陷,提出了一种在AMP模式下采用CPU0加载CPU1程序的设计思想,不需要将CPU1程序打包到CPU0的启动代码中,实现了快速更新CPU1程序的方法,并能满足在合适的条件下再开启CPU1运行。
本发明解决其技术问题所采用的技术方案是:
提供一种双核处理器AMP模式下CPU0更新CPU1程序的方法,包括以下步骤:
当检测到从处理器CPU1可执行程序有更新时,将更新后的从处理器CPU1可执行程序下载到可执行程序存储空间中,该可执行程序空间为在主处理器CPU0管理下的存储空间中预留的专门用于存放从处理器CPU1可执行程序的空间;
由主处理器CPU0应用程序进行解析,把从处理器CPU1可执行程序的.elf格式文件转为.bin格式文件,并采用内存映射的方法把从处理器CPU1的.bin格式文件加载到DDR中对应的链接地址;
使用读写内存字节的方式把从处理器CPU1上将要执行的应用程序执行地址写入片上存储器OCM中,在需要时激活启动从处理器CPU1的运行。
接上述技术方案,所述主处理器CPU0管理下的存储空间为非易失性存储设备划分的应用分区。
接上述技术方案,在更新前还包括步骤:
配置双核工作在AMP模式,绑定操作系统OS只在主处理器CPU0上运行,指定从处理器CPU1程序在编译时使用AMP模式;
配置主处理器CPU0和从处理器CPU1的内存地址不重叠,各自占用独立的内存DDR空间。
接上述技术方案,主处理器CPU0使用操作系统,配置使用的MEMORY范围,从处理器CPU1裸机程序通过修改链接脚本文件指定应用程序的链接内存地址范围。
本发明还提供一种计算机可读存储介质,该计算机可读存储介质中存储有可被处理器执行的计算机程序,该计算机程序执行上述技术方案的双核处理器AMP模式下CPU0更新CPU1程序的方法。
本发明产生的有益效果是:本发明在每次更改CPU1程序时,只需要把更改后的CPU1程序下载到CPU0管理的存储空间中即可,避免了打包操作及频繁更新CPU1可执行程序带来的效率低下问题,同时后期升级CPU1程序也非常的方便。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1是本发明实施例双核处理器AMP模式下CPU0更新CPU1程序的方法的流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
本发明从解决快速更新CPU1程序及在某一阶段在开启CPU1运行的问题出发,提出了一种在AMP模式下采用CPU0加载CPU1程序的设计思想,不需要将CPU1程序打包到CPU0的启动代码中,实现了快速更新CPU1程序的方法,并能满足在合适的条件下在开启CPU1运行,具体方法如下:
在CPU0管理的存储空间中预留存放CPU1可执行程序的空间,把CPU1的可执行程序下载放入到其中;CPU0管理的存储空间可以为CPU支持的任何非易失性存储器划分的应用分区。
由CPU0应用程序来实现解析把CPU1的可执行程序.elf格式文件转为.bin文件,并采用内存映射的方法把CPU1的.bin文件加载到DDR对应的链接地址中;
使用读写内存字节的方式把CPU1上将要执行的应用程序执行地址写入OCM的相应地址,在需要时激活启动CPU1的运行。
这样每次更改CPU1程序时,只需要把更新后的CPU1程序下载到CPU0管理的flash应用分区中即可,避免了打包操作及频繁更新CPU1可执行程序带来的效率低下问题,同时后期升级CPU1程序也非常的方便。
当存在更新时,双核处理器AMP模式下CPU0更新CPU1程序的方法具体步骤如下:
S1、当检测到从处理器CPU1可执行程序有更新时,将更新后的从处理器CPU1可执行程序下载到可执行程序空间中;
S2、由主处理器CPU0应用程序进行解析,把从处理器CPU1可执行程序的.elf格式文件转为.bin格式文件;
S3、采用内存映射的方法把CPU1的.bin格式文件加载到内存DDR对应的链接地址;
S4、使用读写内存字节的方式把从处理器CPU1上将要执行的应用程序执行地址写入片上存储器OCM中,在需要时激活启动从处理器CPU1的运行。
假定CPU0占用的DDR地址区间为CPU0STARTMEM~CPU0ENDMEM,CPU1占用的DDR地址区间为CPU1STARTMEM~CPU1ENDMEM,OCM(On-Chip Memory,片上存储器)中激活CPU1的地址为CPU1STARTADDR。则本发明双核处理器AMP模式下CPU0更新CPU1程序的方法具体包括以下步骤:
(1)配置双核工作在AMP模式,绑定OS只在CPU0上运行,指定CPU1程序在编译时使用AMP模式。
(2)配置CPU0和CPU1的内存地址不重叠,各自占用独立的DDR空间,CPU0使用OS配置使用的MEMORY范围,CPU1裸机程序通过修改链接脚本文件指定应用程序的链接内存地址。
(3)在CPU0管理的非易失性存储设备空间(如flash应用分区)中预留存放CPU1可执行程序的空间,把CPU1的可执行程序下载放入到其中。
(4)CPU0应用程序读取CPU1的可执行程序文件并解析,将CPU1的可执行程序.elf格式文件解析成.bin文件。
(5)CPU0应用程序采用内存映射的方式将CPU1的.bin文件加载到CPU1的运行内存中,在实现上要注意内存页面字节对齐问题。
(6)CPU0应用程序访问读写OCM和内存字节,CPU0应用程序把CPU1运行内存的DDR对应的链接地址CPU1STARTMEM写入到OCM的CPU1STARTADDR中来激活启动CPU1运行。
(7)定期检测从处理器CPU1可执行程序是否有更新,当检测到从处理器CPU1可执行程序有更新时,将更新后的从处理器CPU1可执行程序下载到可执行程序存储空间中,再运行步骤(4)、(5)、(6)。
本发明还提供一种计算机可读存储介质,该计算机可读存储介质中存储有可被处理器执行的计算机程序,该计算机程序执行上述实施例的双核处理器AMP模式下CPU0更新CPU1程序的方法。
应当理解的是,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,而所有这些改进和变换都应属于本发明所附权利要求的保护范围。
Claims (5)
1.一种双核处理器AMP模式下CPU0更新CPU1程序的方法,其特征在于,包括以下步骤:
当检测到从处理器CPU1可执行程序有更新时,将更新后的从处理器CPU1可执行程序下载到可执行程序存储空间中,该可执行程序存储空间为在主处理器CPU0管理下的存储空间中预留的专门用于存放从处理器CPU1可执行程序的空间;
由主处理器CPU0应用程序进行解析,把从处理器CPU1可执行程序的.elf格式文件转为.bin格式文件,并采用内存映射的方法把从处理器CPU1的.bin格式文件加载到DDR中对应的链接地址;
使用读写内存字节的方式把从处理器CPU1上将要执行的应用程序执行地址写入片上存储器OCM中,在需要时激活启动从处理器CPU1的运行。
2.根据权利要求1所述的双核处理器AMP模式下CPU0更新CPU1程序的方法,其特征在于,所述主处理器CPU0管理下的存储空间为非易失性存储设备划分的应用分区。
3.根据权利要求1所述的双核处理器AMP模式下CPU0更新CPU1程序的方法,其特征在于,在更新前还包括步骤:
配置双核工作在AMP模式,绑定操作系统OS只在主处理器CPU0 上运行,指定从处理器CPU1程序在编译时使用AMP模式;
配置主处理器CPU0 和从处理器CPU1的内存地址不重叠,各自占用独立的内存DDR空间。
4.根据权利要求1所述的双核处理器AMP模式下CPU0更新CPU1程序的方法,其特征在于,主处理器CPU0使用操作系统,配置使用的MEMORY范围,从处理器CPU1裸机程序通过修改链接脚本文件指定应用程序的链接内存地址范围。
5.一种计算机可读存储介质,其特征在于,该计算机可读存储介质中存储有可被处理器执行的计算机程序,该计算机程序执行如权利要求1-4中任一项所述的双核处理器AMP模式下CPU0更新CPU1程序的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811057822.8A CN109189429A (zh) | 2018-09-11 | 2018-09-11 | 双核处理器amp模式下cpu0更新cpu1程序的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811057822.8A CN109189429A (zh) | 2018-09-11 | 2018-09-11 | 双核处理器amp模式下cpu0更新cpu1程序的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109189429A true CN109189429A (zh) | 2019-01-11 |
Family
ID=64910241
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811057822.8A Pending CN109189429A (zh) | 2018-09-11 | 2018-09-11 | 双核处理器amp模式下cpu0更新cpu1程序的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109189429A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113282344A (zh) * | 2021-05-25 | 2021-08-20 | 中国航空无线电电子研究所 | 在飞腾非对称双核处理器上实现天脉操作系统的方法 |
CN113360440A (zh) * | 2020-03-06 | 2021-09-07 | Oppo广东移动通信有限公司 | 处理器通信控制方法及相关产品 |
CN113360161A (zh) * | 2020-03-06 | 2021-09-07 | Oppo广东移动通信有限公司 | 资源升级方法及相关产品 |
CN114924803A (zh) * | 2022-06-16 | 2022-08-19 | Oppo广东移动通信有限公司 | 加载启动方法、芯片、电子装置和存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101414270A (zh) * | 2008-12-04 | 2009-04-22 | 浙江大学 | 硬件辅助的辅核任务动态优先级调度的实现方法 |
US20090158297A1 (en) * | 2007-12-12 | 2009-06-18 | Electronics And Telecommunications Research Institute | System and method of dynamically loading and executing module devices using inter-core-communication channel in multicore system environment |
CN103109279A (zh) * | 2010-06-22 | 2013-05-15 | 富士通株式会社 | 多核处理器系统,控制程序以及控制方法 |
CN103744342A (zh) * | 2014-01-22 | 2014-04-23 | 大连理工计算机控制工程有限公司 | 一种基于双核处理器的pac实时控制系统 |
CN105573794A (zh) * | 2015-12-18 | 2016-05-11 | 中国电子科技集团公司第三研究所 | 一种嵌入式系统软件远程更新方法及系统 |
CN106407156A (zh) * | 2016-09-23 | 2017-02-15 | 深圳震有科技股份有限公司 | 一个bootrom引导多核cpu启动的方法及系统 |
CN107391245A (zh) * | 2017-07-18 | 2017-11-24 | 致象尔微电子科技(上海)有限公司 | 一种多核芯片的软件系统 |
-
2018
- 2018-09-11 CN CN201811057822.8A patent/CN109189429A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090158297A1 (en) * | 2007-12-12 | 2009-06-18 | Electronics And Telecommunications Research Institute | System and method of dynamically loading and executing module devices using inter-core-communication channel in multicore system environment |
CN101414270A (zh) * | 2008-12-04 | 2009-04-22 | 浙江大学 | 硬件辅助的辅核任务动态优先级调度的实现方法 |
CN103109279A (zh) * | 2010-06-22 | 2013-05-15 | 富士通株式会社 | 多核处理器系统,控制程序以及控制方法 |
CN103744342A (zh) * | 2014-01-22 | 2014-04-23 | 大连理工计算机控制工程有限公司 | 一种基于双核处理器的pac实时控制系统 |
CN105573794A (zh) * | 2015-12-18 | 2016-05-11 | 中国电子科技集团公司第三研究所 | 一种嵌入式系统软件远程更新方法及系统 |
CN106407156A (zh) * | 2016-09-23 | 2017-02-15 | 深圳震有科技股份有限公司 | 一个bootrom引导多核cpu启动的方法及系统 |
CN107391245A (zh) * | 2017-07-18 | 2017-11-24 | 致象尔微电子科技(上海)有限公司 | 一种多核芯片的软件系统 |
Non-Patent Citations (1)
Title |
---|
吴相楠等: "双核处理器 AMP 模式在电力设备控制中的应用", 《单片机与嵌入式系统应用》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113360440A (zh) * | 2020-03-06 | 2021-09-07 | Oppo广东移动通信有限公司 | 处理器通信控制方法及相关产品 |
CN113360161A (zh) * | 2020-03-06 | 2021-09-07 | Oppo广东移动通信有限公司 | 资源升级方法及相关产品 |
CN113360161B (zh) * | 2020-03-06 | 2024-08-09 | Oppo广东移动通信有限公司 | 资源升级方法及相关产品 |
CN113282344A (zh) * | 2021-05-25 | 2021-08-20 | 中国航空无线电电子研究所 | 在飞腾非对称双核处理器上实现天脉操作系统的方法 |
CN113282344B (zh) * | 2021-05-25 | 2022-11-04 | 中国航空无线电电子研究所 | 在飞腾非对称双核处理器上实现天脉操作系统的方法 |
CN114924803A (zh) * | 2022-06-16 | 2022-08-19 | Oppo广东移动通信有限公司 | 加载启动方法、芯片、电子装置和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109189429A (zh) | 双核处理器amp模式下cpu0更新cpu1程序的方法 | |
EP3491519B1 (en) | Optimized uefi reboot process | |
US9904539B2 (en) | Generating and applying patches to computer program code concurrently with its execution | |
US9348730B2 (en) | Firmware ROM patch method | |
US20120254865A1 (en) | Hypervisor replacing method and information processing device | |
US9733950B2 (en) | Boot sequencing for multi boot devices | |
WO2012119139A2 (en) | Application compatibility with library operating systems | |
US5825649A (en) | Kernel substitution method in multi-processor system and multi-processor system having kernel substitution function | |
US20220043700A1 (en) | Stack Safety for Independently Defined Operations | |
WO2022066296A1 (en) | Memory device firmware update and activation without memory access quiescence | |
CN112306782B (zh) | 面向调测试的操作系统内核引导与加载硬件及方法 | |
CN101615129A (zh) | 应用于分布式系统中的升级方法及版本管理客户端 | |
US8464040B2 (en) | Systems and methods to control multiple peripherals with a single-peripheral application code | |
CN116302122A (zh) | 多核异构域控制器、外设适配方法以及存储介质 | |
CN111984329A (zh) | 一种boot引导软件标准化生成、执行方法及系统 | |
US20120017035A1 (en) | Runtime reprogramming of a processor code space memory area | |
US20220197673A1 (en) | Binary Image Publication by Firmware | |
CN117762456A (zh) | 一种片上系统及片上系统启动固件的升级方法 | |
CN110990041A (zh) | 一种bootloader升级方法及系统 | |
CN117453244A (zh) | 系统升级方法、装置、设备和介质 | |
BR102015005838B1 (pt) | Método e sistema para emulação de instruções e execução de código legado | |
JPH02162446A (ja) | マイクロプログラム制御方式 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190111 |
|
RJ01 | Rejection of invention patent application after publication |