产学研创新服务平台(全国)
专利申请类型:发明专利;专利名称:一种基于多核同构的AMP系统实现方法及设备
专利类型:发明专利
专利申请号:CN202411171805.2
专利申请(专利权)人:惠州华阳通用电子有限公司
权利人地址:广东省惠州市东江高新科技产业园上霞北路1号华阳工业园A区2号
专利发明(设计)人:徐志刚,梁宏沛
专利摘要:本发明涉及嵌入式系统开发技术领域,提供一种基于多核同构的AMP系统实现方法及设备,在多核同构的SOC中通过GPOS启动器对系统资源进行配置,并通过实时操作系统RTOS来启动通用操作系统GPOS,由于实时操作系统RTOS首先启动,因此能够配合实现车载系统业务要求中快速功能的启动,再启动通用操作系统GPOS完成系统要求的更复杂的软件生态,使得SoC启动完成后组成APM混合系统,保证了快速启动业务和非实时OS中OpenCV软件生态同时在单一SoC上,充分满足车载系统的业务需求;能够在一个SoC上组成“RTOS+GPOS混合AMP系统”,有效降低成本。
主权利要求:
1.一种基于多核同构的AMP系统实现方法,其特征在于,包括:
上电启动SOC,读取并运行引导加载程序bootloader,跳转执行对实时操作系统RTOS运行环境的初始化,加载文件系统启动所述实时操作系统RTOS;
所述实时操作系统RTOS基于配置文件执行资源划分隔离,包括:将其自身所需的硬件资源传到RTOS内核并执行快速启动,并且将对应通用操作系统GPOS的硬件配置资源导出到GPOS设备树;
所述实时操作系统RTOS将GPOS映像加载到预先配置的DDR地址,通过PSCI机制加载文件系统启动所述通用操作系统GPOS,组成AMP系统;
在执行资源划分隔离之前还包括:所述实时操作系统RTOS获取硬件外设的操作API和对应的配置文件,具体为:通过GetCpuInfo()函数获取当前SoC的核心数量及id,并存储到cpuinfo.cfg文件中;
通过GeteMMCInfo()函数获取当前存储器件信息,并存储到eMMCinfo.cfg文件中;通过GetDDRInfo()函数获取当前DDR信息,并存储到ddrinfo.cfg文件中;
所述将其自身所需的硬件资源传到RTOS内核并执行快速启动包括:
获取对应包含当前SoC、当前存储器件、当前DDR配置信息的所述cpuinfo.cfg文件、eMMCinfo.cfg文件、ddrinfo.cfg文件;
获取用户预定义的第一配置文件rtos_soc_hardware.cfg,所述第一配置文件rtos_soc_hardware.cfg对应于所述实时操作系统RTOS的配置信息;
基于所述cpuinfo.cfg文件、eMMCinfo.cfg文件、ddrinfo.cfg文件和所述第一配置文件rtos_soc_hardware.cfg,生成第一源文件rtos_defconfig.dts并作为所述实时操作系统RTOS的设备树配置,划分得到所述实时操作系统RTOS可识别的SoC资源;
所述实时操作系统RTOS对其所属的SoC资源进行硬件初始化、设备驱动加载、执行外部设备点亮,实现快速启动;
所述将对应通用操作系统GPOS的硬件配置资源导出到GPOS设备树包括:
获取用户预定义的第二配置文件gpos_soc_hardware.cfg,所述第二配置文件gpos_soc_hardware.cfg对应于所述通用操作系统GPOS的配置信息;
基于所述cpuinfo.cfg文件、eMMCinfo.cfg文件、ddrinfo.cfg文件和所述第二配置文件gpos_soc_hardware.cfg,生成第二源文件gpos_defconfig.dts并作为所述通用操作系统GPOS的设备树配置,划分得到所述通用操作系统GPOS可识别的SoC资源。
2.如权利要求1所述的一种基于多核同构的AMP系统实现方法,其特征在于,所述实时操作系统RTOS将GPOS映像加载到配置好的DDR地址包括:根据所述ddrinfo.cfg文件以及所述第二源文件gpos_defconfig.dts,确定出所述通用操作系统GPOS加载到DDR的指定地址gpos_loader_addr;
所述实时操作系统RTOS通过eMMC_readto_DDR()函数将存储在SoC外部储存器件的GPOS映像读取到指定地址gpos_loader_addr,完成GPOS映像加载工作。
3.如权利要求1所述的一种基于多核同构的AMP系统实现方法,其特征在于,所述通过PSCI机制加载文件系统启动所述通用操作系统GPOS具体为:所述实时操作系统RTOS利用PSCI机制执行SMC指令的交互,将所述通用操作系统GPOS在资源隔离后对应的SoC核心上运行;进而所述通用操作系统GPOS根据对应的设备树配置进行启动,并初始化所述通用操作系统GPOS的专用硬件资源;所述实时操作系统RTOS、所述通用操作系统GPOS同时运行在SoC上组成AMP系统。
4.如权利要求1所述的一种基于多核同构的AMP系统实现方法,其特征在于,所述上电启动SOC,读取并运行引导加载程序bootloader,执行对实时操作系统RTOS运行环境的初始化,加载文件系统启动所述实时操作系统RTOS包括:A1、SoC上电复位,运行SoC内部ROM程序;
A2、ROM程序执行自检,进而将存储器件中引导加载程序Bootloader的BL1映像加载到SoC内部RAM中运行;
A3、BL1加载并校验存储器件中引导加载程序Bootloader的BL2映像,BL2程序对DDR对初始化,将BL31加载到DDR中运行;
A4、BL31初始化PSCI、向量表后,将BL33加载到DDR中运行,BL33将OS内核加载到DDR中;
A5、通过PSCI机制启动所述实时操作系统RTOS,Bootloader阶段结束,SoC进入RTOS内核管控阶段。
5.一种基于多核同构的AMP系统实现设备,用于实现如权利要求1 4中任一项所述的一~种基于多核同构的AMP系统实现方法,其特征在于:包括设置于实时操作系统RTOS内的GPOS启动器,所述GPOS启动器包括RTOS处理模块、SoC资源隔离模块、GPOS映像加载模块、GPOS启动模块;
所述RTOS处理模块用于实现对于SOC硬件外设的操作执行,进而获取硬件外设的操作API和对应的配置文件;
所述SoC资源隔离模块用于执行资源划分隔离,包括:将所述实时操作系统RTOS所需的硬件资源传到RTOS内核并执行快速启动,并且将对应通用操作系统GPOS的硬件配置资源导出到GPOS设备树;
所述GPOS映像加载模块用于将GPOS映像加载到预先配置的DDR地址;
所述GPOS启动模块用于通过PSCI机制加载文件系统启动通用操作系统GPOS。
6.如权利要求5所述的一种基于多核同构的AMP系统实现设备,其特征在于:所述SOC硬件外设至少包括图像获取设备、显示设备和存储器件中的一种或多种。
7.如权利要求6所述的一种基于多核同构的AMP系统实现设备,其特征在于:所述存储器件包括只读存储器、随机存取器和DDR,所述存储器件上存储有计算机程序,用于实现如权利要求1 4中任一项所述的一种基于多核同构的AMP系统实现方法。
~ 说明书 : 一种基于多核同构的AMP系统实现方法及设备技术领域[0001] 本发明涉及嵌入式系统开发技术领域,尤其涉及一种基于多核同构的AMP系统实现方法及设备。背景技术[0002] AMP架构是一种多核处理器的运行模式,它允许每个核心独立运行不同的任务,甚至可以运行不同的操作系统或裸机程序。这种架构有两种主要类型:[0003] 非对称多处理(AMP):在这种模式下,每个核心可以独立运行不同的任务,甚至不同的操作系统。这种架构适用于需要高度独立处理能力的系统,如工业控制系统和实时系统,其中每个核心可以专注于特定的任务,从而提高系统的整体效率和稳定性。[0004] 对称多处理(SMP):在这种模式下,所有核心都运行同一个操作系统,由同一个操作系统管理。这种模式适用于需要高并发性能的场景,如服务器和高端工作站,其中多个核心协同工作以提高整体性能。[0005] 现有的多核SoC,一个OS运行在多个SoC核心上,形成对称多核操作系统,也叫做SMP,也就是运行单一的操作系统实例,所有处理器共享操作系统的内核。[0006] SMP系统一般为单一的通用操作系统GPOS(例如Linux,非实时系统)或者单一的实时操作系统RTOS,一般情况下可以满足业务要求。[0007] 但是对于车载上的部分业务,无法满足其要求。比如说电子外后视镜产品,在SoC上电后,需要最快的时间去初始化摄像头、点亮屏幕,但是通用操作系统GPOS一般启动时间较慢,无法在1s以内完成启动,所以无法满足要求。与此同时,电子外后视镜产品还需要通用操作系统GPOS上成熟的OpenCV软件生态执行视频识别、处理等功能。若使用不同的多核SOC分别运行通用操作系统GPOS、实时操作系统RTOS,则将导致成本激增。发明内容[0008] 本发明提供一种基于多核同构的AMP系统实现方法及设备,解决了现有的SMP系统启动速率低、仅能运行单一的操作系统,无法充分满足车载系统的业务需求的技术问题。[0009] 为解决以上技术问题,本发明提供一种基于多核同构的AMP系统实现方法,包括:[0010] 上电启动SOC,读取并运行引导加载程序bootloader,跳转执行对实时操作系统RTOS运行环境的初始化,加载文件系统启动所述实时操作系统RTOS;[0011] 所述实时操作系统RTOS基于配置文件执行资源划分隔离,包括:将其自身所需的硬件资源传到RTOS内核并执行快速启动,并且将对应通用操作系统GPOS的硬件配置资源导出到GPOS设备树;[0012] 所述实时操作系统RTOS将GPOS映像加载到预先配置的DDR地址,通过PSCI机制加载文件系统启动所述通用操作系统GPOS,组成AMP系统。[0013] 在进一步的实施方案中,在执行资源划分隔离之前还包括:所述实时操作系统RTOS获取硬件外设的操作API和对应的配置文件,具体为:[0014] 通过GetCpuInfo()函数获取当前SoC的核心数量及id,并存储到cpuinfo.cfg文件中;通过GeteMMCInfo()函数获取当前存储器件信息,并存储到eMMCinfo.cfg文件中;通过GetDDRInfo()函数获取当前DDR信息,并存储到ddrinfo.cfg文件中。[0015] 在进一步的实施方案中,所述将其自身所需的硬件资源传到RTOS内核并执行快速启动包括:[0016] 获取对应包含当前SoC、当前存储器件、当前DDR配置信息的所述cpuinfo.cfg文件、eMMCinfo.cfg文件、ddrinfo.cfg文件;[0017] 获取用户预定义的第一配置文件rtos_soc_hardware.cfg,所述第一配置文件rtos_soc_hardware.cfg对应于所述实时操作系统RTOS的配置信息;[0018] 基于所述cpuinfo.cfg文件、eMMCinfo.cfg文件、ddrinfo.cfg文件和所述第一配置文件rtos_soc_hardware.cfg,生成第一源文件rtos_defconfig.dts并作为所述实时操作系统RTOS的设备树配置,划分得到所述实时操作系统RTOS可识别的SoC资源;[0019] 所述实时操作系统RTOS对其所属的SoC资源进行硬件初始化、设备驱动加载、执行外部设备点亮,实现快速启动。[0020] 在进一步的实施方案中,所述将对应通用操作系统GPOS的硬件配置资源导出到GPOS设备树包括:[0021] 获取用户预定义的第二配置文件gpos_soc_hardware.cfg,所述第二配置文件gpos_soc_hardware.cfg对应于所述通用操作系统GPOS的配置信息;[0022] 基于所述cpuinfo.cfg文件、eMMCinfo.cfg文件、ddrinfo.cfg文件和所述第二配置文件gpos_soc_hardware.cfg,生成第二源文件gpos_defconfig.dts并作为所述通用操作系统GPOS的设备树配置,划分得到所述通用操作系统GPOS可识别的SoC资源。[0023] 在进一步的实施方案中,所述实时操作系统RTOS将GPOS映像加载到配置好的DDR地址包括:[0024] 根据所述ddrinfo.cfg文件以及所述第二源文件gpos_defconfig.dts,确定出所述通用操作系统GPOS加载到DDR的指定地址gpos_loader_addr;[0025] 所述实时操作系统RTOS通过eMMC_readto_DDR()函数将存储在SoC外部储存器件的GPOS映像读取到指定地址gpos_loader_addr,完成GPOS映像加载工作。[0026] 在进一步的实施方案中,所述通过PSCI机制加载文件系统启动所述通用操作系统GPOS具体为:[0027] 所述实时操作系统RTOS利用PSCI机制执行SMC指令的交互,将所述通用操作系统GPOS在资源隔离后对应的SoC核心上运行;进而所述通用操作系统GPOS根据对应的设备树配置进行启动,并初始化所述通用操作系统GPOS的专用硬件资源;所述实时操作系统RTOS、所述通用操作系统GPOS同时运行在SoC上组成AMP系统。[0028] 在进一步的实施方案中,所述上电启动SOC,读取并运行引导加载程序bootloader,执行对实时操作系统RTOS运行环境的初始化,加载文件系统启动所述实时操作系统RTOS包括:[0029] A1、SoC上电复位,运行SoC内部ROM程序;[0030] A2、ROM程序执行自检,进而将存储器件中引导加载程序Bootloader的BL1映像加载到SoC内部RAM中运行;[0031] A3、BL1加载并校验存储器件中引导加载程序Bootloader的BL2映像,BL2程序对DDR对初始化,将BL31加载到DDR中运行;[0032] A4、BL31初始化PSCI、向量表后,将BL33加载到DDR中运行,BL33将OS内核加载到DDR中;[0033] A5、通过PSCI机制启动所述实时操作系统RTOS,Bootloader阶段结束,SoC进入RTOS内核管控阶段。[0034] 本发明还提供一种基于多核同构的AMP系统实现设备,用于实现如上所述的一种基于多核同构的AMP系统实现方法,包括设置于实时操作系统RTOS内的GPOS启动器,所述GPOS启动器包括RTOS处理模块、SoC资源隔离模块、GPOS映像加载模块、GPOS启动模块;[0035] 所述RTOS处理模块用于实现对于SOC硬件外设的操作执行,进而获取硬件外设的操作API和对应的配置文件;[0036] 所述SoC资源隔离模块用于执行资源划分隔离,包括:将所述实时操作系统RTOS所需的硬件资源传到RTOS内核并执行快速启动,并且将对应通用操作系统GPOS的硬件配置资源导出到GPOS设备树;[0037] 所述GPOS映像加载模块用于将GPOS映像加载到预先配置的DDR地址;[0038] 所述GPOS启动模块用于通过PSCI机制加载文件系统启动通用操作系统GPOS。[0039] 在进一步的实施方案中,所述SOC硬件外设至少包括图像获取设备、显示设备和存储器件中的一种或多种。[0040] 在进一步的实施方案中,所述存储器件包括只读存储器、随机存取器和DDR,所述存储器件上存储有计算机程序,用于实现如上所述的一种基于多核同构的AMP系统实现方法。[0041] 本发明的有益效果如下:[0042] (1)在多核同构的SOC中通过GPOS启动器对系统资源进行配置,并通过实时操作系统RTOS来启动通用操作系统GPOS,由于实时操作系统RTOS首先启动,因此能够配合实现车载系统业务要求中快速功能的启动,再启动通用操作系统GPOS完成系统要求的更复杂的软件生态,使得SoC启动完成后组成APM混合系统,保证了快速启动业务和非实时OS中OpenCV软件生态同时在单一SoC上,充分满足车载系统的业务需求。[0043] (2)通过PSCI机制启动实时操作系统RTOS,随后执行资源隔离,将SoC上的DDR、RTOS和GPOS分别用到的外设控制器进行隔离,随后基于对应的设备树配置进行系统启动,实现硬件资源隔离使用,进而能够在一个SoC上组成“RTOS+GPOS混合AMP系统”,有效降低成本。附图说明[0044] 图1是本发明实施例提供的一种基于多核同构的AMP系统实现方法的工作流程图;[0045] 图2是本发明实施例提供的RTOS+GPOS混合AMP系统构型示意图;[0046] 图3是本发明实施例提供的HorizonXJ3芯片框图;[0047] 图4是本发明实施例提供的一种基于多核同构的AMP系统实现设备的GPOS启动器的系统框架图;[0048] 其中:RTOS处理模块1、SoC资源隔离模块2、GPOS映像加载模块3、GPOS启动模块4。具体实施方式[0049] 下面结合附图具体阐明本发明的实施方式,实施例的给出仅仅是为了说明目的,并不能理解为对本发明的限定,包括附图仅供参考和说明使用,不构成对本发明专利保护范围的限制,因为在不脱离本发明精神和范围基础上,可以对本发明进行许多改变。[0050] 实施例1[0051] 本发明实施例提供的一种基于多核同构的AMP系统实现方法,如图1、图2、图3所示,在本实施例中,包括步骤S1 S5:~[0052] 现有的多核SoC,以HorizonXJ3为例,芯片采用的ARM®Cortex®‑A53作为主控CPU,L1Cache大小为32KB,L2Cache大小为512KB,支持FPU、NEON加速。典型工作频率为1.2GHz,并支持软件层面进行频率控制。芯片内部4个CPUCore。[0053] Bootloader一般为Uboot,包括BL1、BL2、BL31、BL33等部分。[0054] S1、上电启动SOC,读取并运行引导加载程序bootloader,跳转执行对实时操作系统RTOS运行环境的初始化,加载文件系统启动所述实时操作系统RTOS,包括A1A5:~[0055] A1、SoC上电复位,运行SoC内部ROM程序;[0056] A2、ROM程序执行自检,进而将存储器件中引导加载程序Bootloader的BL1映像(即RTOS的映像)加载到SoC内部RAM中运行;[0057] A3、BL1加载并校验存储器件中引导加载程序Bootloader的BL2映像,BL2程序对DDR对初始化,将BL31加载到DDR中运行;[0058] A4、BL31初始化PSCI、向量表后,将BL33加载到DDR中运行,BL33将OS内核加载到DDR中;[0059] A5、通过PSCI机制启动所述实时操作系统RTOS,Bootloader阶段结束,SoC进入RTOS内核管控阶段。[0060] S2、所述实时操作系统RTOS获取硬件外设的操作API和对应的配置文件,具体为:[0061] 通过GetCpuInfo()函数获取当前SoC的核心数量及id,并存储到cpuinfo.cfg文件中;[0062] 通过GeteMMCInfo()函数获取当前存储器件信息,并存储到eMMCinfo.cfg文件中;[0063] 通过GetDDRInfo()函数获取当前DDR信息,并存储到ddrinfo.cfg文件中。[0064] S3、所述实时操作系统RTOS基于上述配置文件执行资源划分隔离,包括:[0065] S31、将其自身所需的硬件资源传到RTOS内核并执行快速启动,包括:[0066] 获取对应包含当前SoC、当前存储器件、当前DDR配置信息的所述cpuinfo.cfg文件、eMMCinfo.cfg文件、ddrinfo.cfg文件;[0067] 获取用户预定义的第一配置文件rtos_soc_hardware.cfg,所述第一配置文件rtos_soc_hardware.cfg对应于所述实时操作系统RTOS的配置信息;[0068] 基于所述cpuinfo.cfg文件、eMMCinfo.cfg文件、ddrinfo.cfg文件和所述第一配置文件rtos_soc_hardware.cfg,生成第一源文件rtos_defconfig.dts并作为所述实时操作系统RTOS的设备树配置,划分得到所述实时操作系统RTOS可识别的SoC资源;[0069] 所述实时操作系统RTOS对其所属的SoC资源进行硬件初始化、设备驱动加载、执行外部设备点亮,实现快速启动。[0070] 其中,SoC资源包括DDR、CPU核心及SoC外设(即外部设备),执行外部设备点亮包括但不限于快速启动摄像头、显示屏。[0071] S32、将对应通用操作系统GPOS的硬件配置资源导出到GPOS设备树,包括:[0072] 获取用户预定义的第二配置文件gpos_soc_hardware.cfg,所述第二配置文件gpos_soc_hardware.cfg对应于所述通用操作系统GPOS的配置信息;[0073] 基于所述cpuinfo.cfg文件、eMMCinfo.cfg文件、ddrinfo.cfg文件和所述第二配置文件gpos_soc_hardware.cfg,生成第二源文件gpos_defconfig.dts并作为所述通用操作系统GPOS的设备树配置,划分得到所述通用操作系统GPOS可识别的SoC资源。[0074] S4、所述实时操作系统RTOS将GPOS映像加载到预先配置的DDR地址,包括:[0075] 根据所述ddrinfo.cfg文件以及所述第二源文件gpos_defconfig.dts,确定出所述通用操作系统GPOS加载到DDR的指定地址gpos_loader_addr;[0076] 所述实时操作系统RTOS通过eMMC_readto_DDR()函数将存储在SoC外部储存器件的GPOS映像读取到指定地址gpos_loader_addr,完成GPOS映像加载工作。[0077] S5、通过PSCI机制加载文件系统启动所述通用操作系统GPOS,组成AMP系统,具体为:[0078] 所述实时操作系统RTOS利用PSCI机制执行SMC指令的交互,将所述通用操作系统GPOS在资源隔离后对应的SoC核心上运行;进而所述通用操作系统GPOS根据对应的设备树配置进行启动,并初始化所述通用操作系统GPOS的专用硬件资源;所述实时操作系统RTOS、所述通用操作系统GPOS同时运行在SoC上组成AMP系统。[0079] 在本实施例中的AMP系统通用操作系统GPOS提供非实时运行环境,包括OpenCV等丰富的软件生态,用来进行图像识别、处理等业务;实时操作系统RTOS提供快速启动业务,包括快速启动摄像头、显示屏等。[0080] 实施例2[0081] 本发明还提供一种基于多核同构的AMP系统实现设备,用于实现如上实施例1所述的一种基于多核同构的AMP系统实现方法,参加图2、图4,包括设置于实时操作系统RTOS内的GPOS启动器,所述GPOS启动器包括RTOS处理模块1、SoC资源隔离模块2、GPOS映像加载模块3、GPOS启动模块4;[0082] 所述RTOS处理模块1用于实现对于SOC硬件外设的操作执行,进而获取硬件外设的操作API和对应的配置文件,作用于为后续的SoC资源隔离、GPOS固件加载提供基础;[0083] 所述SoC资源隔离模块2用于执行资源划分隔离,包括:将所述实时操作系统RTOS所需的硬件资源传到RTOS内核并执行快速启动,并且将对应通用操作系统GPOS的硬件配置资源导出到GPOS设备树;[0084] 所述GPOS映像加载模块3用于将GPOS映像加载到预先配置的DDR地址;[0085] 所述GPOS启动模块4用于通过PSCI机制加载文件系统启动通用操作系统GPOS。[0086] 其中,所述实时操作系统RTOS、所述通用操作系统GPOS之间设有高速通信,例如RPMSG等。SoC的外设在GPOS启动器的隔离下各自分配给所述实时操作系统RTOS、所述通用操作系统GPOS使用。[0087] 在本实施例中,所述SOC硬件外设至少包括图像获取设备、显示设备和存储器件中的一种或多种。[0088] 在本实施例中,所述存储器件包括只读存储器、随机存取器和DDR,所述存储器件上存储有计算机程序,用于实现如上所述的一种基于多核同构的AMP系统实现方法。[0089] 本发明实施例的有益效果如下:[0090] (1)在多核同构的SOC中通过GPOS启动器对系统资源进行配置,并通过实时操作系统RTOS来启动通用操作系统GPOS,由于实时操作系统RTOS首先启动,因此能够配合实现车载系统业务要求中快速功能的启动,再启动通用操作系统GPOS完成系统要求的更复杂的软件生态,使得SoC启动完成后组成APM混合系统,保证了快速启动业务和非实时OS中OpenCV软件生态同时在单一SoC上,充分满足车载系统的业务需求。[0091] (2)通过PSCI机制启动实时操作系统RTOS,随后执行资源隔离,将SoC上的DDR、RTOS和GPOS分别用到的外设控制器进行隔离,随后基于对应的设备树配置进行系统启动,实现硬件资源隔离使用,进而能够在一个SoC上组成“RTOS+GPOS混合AMP系统”,有效降低成本。[0092] 上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。
专利地区:广东
专利申请日期:2024-08-26
专利公开日期:2024-11-29
专利公告号:CN118689548B