CN109189429A - 双核处理器amp模式下cpu0更新cpu1程序的方法 - Google Patents

双核处理器amp模式下cpu0更新cpu1程序的方法 Download PDF

Info

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
Application number
CN201811057822.8A
Other languages
English (en)
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.)
ZHENGWEI ELECTRONIC TECHNOLOGY Co Ltd WUHAN
Wuhan Gewei Electronic Technology Co Ltd
Original Assignee
ZHENGWEI ELECTRONIC TECHNOLOGY Co Ltd WUHAN
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 ZHENGWEI ELECTRONIC TECHNOLOGY Co Ltd WUHAN filed Critical ZHENGWEI ELECTRONIC TECHNOLOGY Co Ltd WUHAN
Priority to CN201811057822.8A priority Critical patent/CN109189429A/zh
Publication of CN109189429A publication Critical patent/CN109189429A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations 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/163Interprocessor 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程序的方法
技术领域
本发明涉及双核处理器,尤其涉及一种双核处理器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程序的方法。
CN201811057822.8A 2018-09-11 2018-09-11 双核处理器amp模式下cpu0更新cpu1程序的方法 Pending CN109189429A (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 致象尔微电子科技(上海)有限公司 一种多核芯片的软件系统

Patent Citations (7)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Title
吴相楠等: "双核处理器 AMP 模式在电力设备控制中的应用", 《单片机与嵌入式系统应用》 *

Cited By (6)

* Cited by examiner, † Cited by third party
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