CN114090097A - 发动机控制系统和控制软件启动方法 - Google Patents
发动机控制系统和控制软件启动方法 Download PDFInfo
- Publication number
- CN114090097A CN114090097A CN202010619282.9A CN202010619282A CN114090097A CN 114090097 A CN114090097 A CN 114090097A CN 202010619282 A CN202010619282 A CN 202010619282A CN 114090097 A CN114090097 A CN 114090097A
- Authority
- CN
- China
- Prior art keywords
- processor core
- processor
- operating system
- core
- functional modules
- 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
- 238000000034 method Methods 0.000 title claims abstract description 41
- 230000010354 integration Effects 0.000 claims abstract description 9
- 238000003860 storage Methods 0.000 claims description 16
- 230000003993 interaction Effects 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 4
- 230000000903 blocking effect Effects 0.000 claims description 3
- 230000000737 periodic effect Effects 0.000 claims description 3
- 238000011161 development Methods 0.000 abstract description 29
- 230000006870 function Effects 0.000 description 22
- 230000008569 process Effects 0.000 description 8
- 238000012545 processing Methods 0.000 description 8
- 238000013461 design Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 230000006872 improvement Effects 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 230000000644 propagated effect Effects 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000002441 reversible effect Effects 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 239000003607 modifier Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- F—MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
- F02—COMBUSTION ENGINES; HOT-GAS OR COMBUSTION-PRODUCT ENGINE PLANTS
- F02D—CONTROLLING COMBUSTION ENGINES
- F02D28/00—Programme-control of engines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Chemical & Material Sciences (AREA)
- Combustion & Propulsion (AREA)
- Mechanical Engineering (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供了一种发动机控制系统,包括:多核处理器,包括第一处理器核与第二处理器核;易失性存储器;操作系统,适于加载到易失性存储器中并由第一处理器核与第二处理器核运行;应用程序,适于加载到易失性存储器中并由第一处理器核和/或第二处理器核运行,应用程序包括集成模块和多个功能模块,集成模块包括与业务相关的模块和驱动程序,多个功能模块配置为部署多个功能模块的运行时间和空间;以及引导程序,配置为启动第一处理器核、第二处理器核、操作系统和应用程序。本发明另一方面提供了一种基于多核处理器的发动机控制软件启动方法和控制系统。本发明可以降低操作系统的适航难度,降低应用软件的开发成本,从而提高软件的开发效率。
Description
技术领域
本发明主要涉及发动机控制系统和软件开发领域,尤其涉及一种发动机控制系统和基于多核处理器的发动机控制软件启动方法。
背景技术
随着半导体技术的日益发展,越来越多的单核处理器逐渐面临停产,多核处理器(Multicore Processor)的市场占有率逐渐提升。而在发动机控制领域,FADEC(FullAuthority Digital Engine Control,全权限数字发动机控制系统)已经越来越多的采用多核处理器作为其计算平台,多核处理器由于其集成化程度的提升,不仅带来了性能上的优化,也能使得控制器的体积、重量、功耗等进一步降低。但与此同时,多核处理器的发展和广泛应用也带来了软件开发难度的提升,并造成了适航难度高等问题。传统的多核软件架构主要有SMP(Symmetric Multi Processing,对称多处理)和AMP(Asymmetric MultiProcessing,非对称多处理)两种,这两种架构在软件开发复杂度和适航难度之间各存优劣。
SMP是多核同步的架构,一个操作系统管理多个处理器核,使得软件开发人员可以将该多核处理器在整体上看成一个单核处理器来进行应用软件的开发,开发复杂度较低。但是,SMP的特点是由一个操作系统管理多核处理器的核,软件耦合度高,因此,SMP架构下处理器核之间的资源竞争、同步等各种复杂的行为都给操作系统的适航带来不小的难度。
相比之下,AMP是多核异步的架构,每个核运行独立的操作系统,因此在操作系统层面,多核之间的资源竞争、同步等情况较为简单。但是,由于AMP的每个核都等于是一个独立的软件,软件开发人员需要对每一个核进行单独的开发,因此,AMP架构下的应用程序开发复杂度相对较高。
有鉴于此,上述两种架构对于软件开发均存在一定程度的缺点,分别增加了操作系统的适航难度和应用软件的开发成本。
发明内容
本发明要解决的技术问题是提供一种发动机控制系统及一种基于多核处理器的发动机控制软件的启动方法,可以降低操作系统的适航难度,降低应用软件的开发成本,从而提高软件的开发效率。
为解决上述技术问题,本发明提供了一种发动机控制系统,包括:多核处理器,包括第一处理器核与第二处理器核;易失性存储器;操作系统,适于加载到所述易失性存储器中并由所述第一处理器核与第二处理器核运行;应用程序,适于加载到所述易失性存储器中并由所述第一处理器核和/或第二处理器核运行,所述应用程序包括集成模块和多个功能模块,所述集成模块包括与业务相关的模块和驱动程序,所述多个功能模块配置为部署所述多个功能模块的运行时间和空间;以及引导程序,配置为启动所述第一处理器核、第二处理器核、操作系统和应用程序。
在本发明的一实施例中,所述第一处理器核与第二处理器核对应同一操作系统,所述集成模块中具有所述第一处理器核与第二处理器核的内核配置。
在本发明的一实施例中,所述多个功能模块的运行时间包括运行周期和时间预算。
在本发明的一实施例中,所述多个功能模块的运行空间包括分配运行空间、任务间交互空间和/或运行的处理器核。
在本发明的一实施例中,所述操作系统配置为解析所述应用程序的集成模块,并部署多个所述功能模块运行的处理器核。
在本发明的一实施例中,所述易失性存储器具有不同的第一存储区和第二存储区,其中当所述操作系统运行时,分别在所述第一存储区和第二存储区运行。
在本发明的一实施例中,所述多个功能模块的一部分被部署在所述第一处理器核,另一部分被部署在所述第二处理器核。
在本发明的一实施例中,所述引导程序配置为先启动所述第一处理器核,将所述操作系统加载到所述第一存储区中后,再启动所述操作系统,将所述操作系统复制到所述第二存储区中。
在本发明的一实施例中,所述引导程序配置为在将所述操作系统加载到所述第一存储区中后且启动所述操作系统前,启动所述第二处理器核,并阻塞所述第二处理器核。
本发明的另一方面提供一种基于多核处理器的发动机控制软件启动方法,包括以下步骤:启动多核处理器的第一处理器核,并初步初始化所述第一处理器核;将操作系统及应用程序加载到易失性存储器中,其中所述操作系统加载到第一存储区中,所述应用程序包括集成模块和多个功能模块,所述多个功能模块包括与业务相关的模块和驱动程序,所述集成模块配置为部署所述功能模块的运行时间和空间;启动所述多核处理器的第二处理器核,并阻塞所述第二处理器核;启动所述操作系统;使用所述操作系统完整初始化所述第一处理器核与第二处理器核;将所述操作系统复制到所述易失性存储器的第二存储区中;所述操作系统解析所述应用程序的集成模块,并部署多个所述功能模块运行的处理器核;以及释放所述第二处理器核。
在本发明的一实施例中,根据上述基于多核处理器的发动机控制软件启动方法,所述多个功能模块的运行空间包括分配运行空间、任务间交互空间和/或运行的处理器核。
在本发明的一实施例中,根据上述基于多核处理器的发动机控制软件启动方法,所述操作系统将所述多个功能模块的一部分部署在所述第一处理器核,另一部分部署在所述第二处理器核。
在本发明的一实施例中,根据上述基于多核处理器的发动机控制软件启动方法,在释放所述第二处理器核后还包括:所述第一处理器核与第二处理器核分别调转到对应的操作系统存储地址,进行周期任务调度。
本发明的另一方面还提供一种基于多核处理器的发动机控制系统,包括:
存储器,用于存储可由处理器执行的指令;以及
处理器,用于执行所述指令以实现上述基于多核处理器的发动机控制软件启动方法。
本发明的另一方面还提供一种存储有计算机程序代码的计算机可读介质,所述计算机程序代码在由处理器执行时实现上述基于多核处理器的发动机控制软件启动方法。
与现有技术相比,本发明具有以下优点:本发明虽然是基于AMP架构的多核使用方案,但是通过在操作系统层面进行架构优化,使得应用软件的开发仍可以像SMP架构一样灵活,从而降低了软件开发的难度,减少了软件的开发成本,并同时避免了SMP架构操作系统适航难度高的问题,在整体上提高了软件开发的效率。
附图说明
包括附图是为提供对本申请进一步的理解,它们被收录并构成本申请的一部分,附图示出了本申请的实施例,并与本说明书一起起到解释本发明原理的作用。附图中:
图1是本发明一实施例的发动机控制系统结构示意图;
图2是本发明一实施例的发动机控制系统的应用程序的开发原理示意图;
图3是本发明一实施例的基于多核处理器的发动机控制软件启动方法的原理示意图。
具体实施方式
为了更清楚地说明本申请的实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本申请的一些示例或实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图将本申请应用于其他类似情景。除非从语言环境中显而易见或另做说明,图中相同标号代表相同结构或操作。
如本申请和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其他的步骤或元素。
除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本申请的范围。同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
本发明的一实施例提出一种发动机控制系统,可以降低操作系统的适航难度,降低应用软件的开发成本,从而提高软件的开发效率。
图1是本发明一实施例的发动机控制系统结构示意图。如图1所示,该发动机控制系统10包括一多核处理器11,该多核处理器11进一步包括一第一处理器核111和一第二处理器核112。发动机控制系统10还包括一易失性存储器12,一操作系统13,一应用程序14和一引导程序15。
图2是本发明一实施例的发动机控制系统的应用程序的开发原理示意图。图2使用了流程图示例性的展示了根据本申请的实施例的发动机控制系统的应用程序在开发时所需要所执行的操作。应当理解的是,前面或后面的操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各种步骤。同时,或将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。
图2所示的应用程序的开发原理可以适用于图1所示的本发明一实施例的发动机控制系统中的应用程序14的开发,但本发明不以此为限。下面结合图1和图2,对本发明在该实施例中的一种发动机控制系统做出说明,并对该发动机控制系统中应用程序的开发原理进行详细说明。
在发动机领域,发动机控制系统的软件开发程序主要包括应用程序(AS)、平台程序(PS)以及启动程序(BOOT)三部分,且三者一般独立开发。其中,平台程序PS主要负责最小系统的集成、软件程序的整体调度以及功能与功能间的交互,而与业务相关的应用功能,主要在应用程序AS中开发,平台程序PS可能承担部分的与外部接口相关的应用功能。
而在本发明如图1所示的实施例中,该发动机控制系统与现有技术中的软件开发方法关键的区别在于将平台程序PS从业务功能中独立,将与业务相关的输入、处理、输出等全部应用功能划归在应用程序AS中处理。并且,与现有技术不同的是,驱动的程序在本发明中也是集成在应用程序AS中。因此,在本发明的AMP多核异步架构中,也可以做到每个核采用相同的操作系统内核,从而实现如图1所示的操作系统13和应用程序之间14只有一个映像,而非传统的针对AMP架构中的每个核均有独立对应的映像。从而降低了开发的复杂程度,节约了开发成本。
如图1所示,以一双核处理器为例,在本发明的该实施例中,多核处理器11的第一处理器核111与第二处理器核112对应同一操作系统13,采用同一个操作系统内核,但是第一处理器核111与第二处理器核112各具有不同的操作系统内核配置,并体现在应用程序需14中,用来实现不同的与业务相关的应用功能。
在本发明的该实施例中,如图1所示的操作系统13可以加载到易失性存储器12中并由第一处理器核111与第二处理器核112运行。
在本发明的一实施例中,该易失性存储器12还具有不同的第一存储区和第二存储区,操作系统13可以分别在第一存储区和第二存储区中运行,从而为第一处理器核111和第二处理器核112分别提供独立的操作系统。
如图2所示,本发明的发动机控制系统中的应用程序的开发方法20分为多个功能模块设计21和集成模块设计22两个独立的流程。功能模块设计的流程21主要用于开发多个功能模块,包括与业务相关的输入、处理、输出等全部应用功能以及驱动程序。集成模块设计的流程22主要用于部署多个功能模块的运行空间和运行时间的相关参数,并且该集成模块在设计时具有上述第一处理器核111和第二处理器核112的操作系统内核配置。
示例性的,在本发明的一实施例中,该集成模块设计的流程22在部署多个功能模块的运行空间时,主要分配运行空间、任务间交互空间和/或运行的处理器核;而在部署多个功能模块的运行时间时,主要分配多个功能模块的运行周期和时间运算等参数。在此基础上,上述多个功能模块中的一部分被部署分配给第一处理器核111,而另一部分则被部署分配给第二处理器核112。
在本发明的一实施例中,如图1所示的操作系统13还配置为解析应用程序的集成模块,并部署多个功能模块运行的处理器核,即通过上述示例性的描述中所提到运行时间和运行空间的参数,决定各核所需要实现的功能和运行的程序及方式。
应当理解的是,本发明不以上述的部署方案以及运行空间和运行时间的具体选定为限,任何为了实现本发明的应用程序的开发而对于功能模块的运行空间和运行时间的限定参数的选取以及部署方案的调整均属于本发明的精神和范围。
更具体的,如图2所示,本发明中发动机控制系统的应用程序在开发时,步骤211和步骤221分别为输入多个功能模块A1,A2…An,以及输入集成模块,分别作为功能模块设计21和集成模块设计22两个独立开发流程的起点。
在进行功能模块设计21的流程时,步骤212为对于步骤211输入的多个功能模块A1,A2…An通过编译器编译为多个目标码M1,M2,…Mn。步骤212生成的多个目标码M1,M2,…Mn代表了本发明的一发动机控制系统中与业务相关的不同应用功能和驱动程序。步骤213为整合多个目标码M1,M2,…Mn以生成一最终的目标码M,该目标码M包含了与应用功能相关的功能信息和驱动程序的信息。
在进行集成模块设计22的流程时,对于步骤221输入的集成模块首先生成该集成模块的源代码Y1,Y2,…Yn。在此步骤中,也可以选取来自步骤212的对于多个功能模块编译形成的多个目标码M1,M2,…Mn为输入代码;或者选取来自步骤211的多个功能模块所涉及的信息作为输入代码,如任务交互信息的代码等,源代码Y1,Y2,…Yn因此代表了部署多个功能模块的运行时间和运行空间的信息。步骤223为通过编译集成模块的源代码以生成集成模块的目标码m,该目标码m包含了本发明的一发动机控制系统中对于多个功能模块A1,A2…An的运行空间和运行时间的部署,并包含了任务交互信息、多核配置信息等其他与双核系统运行相关的信息。
最后,步骤23为链接最终生成的多个功能模块的目标码M和集成模块的目标码m以生成完整的应用程序映像,即将各功能模块所包含的各功能与其运行空间和运行时间、以及任务交互信息、多核配置信息等其他与双核系统运行相关的信息以映像的方式一一对应,可以在后续启动双核系统后进行任务调度,使各核分别以设定好的运行方式实现其相对应的功能。
示例性的,步骤23中链接的具体方案可以是,提前为每个功能模块A1,A2…An的链接赋予唯一的标识符,查询如图1所示的第一处理器和111和第二处理器核112与各功能模块A1,A2…An的映射关系,如下表1所示。通过如表1中映射关系的查找,得到各功能模块A1,A2…An需要在哪一个处理器核运行的信息,根据这些信息,生成第一处理器核111和第二处理器核112的静态调度表并编译在目标码m中,同时与编译在目标码m中的其他任务交互信息、运行空间和时间信息等其他多核配置信息结合,以实现后续发动机控制系统后对于功能任务的完整调度。
功能 | 运行位置 |
功能模块A1 | 第一处理器核111 |
功能模块A2 | 第二处理器核112 |
… | … |
功能模块An | 第一处理器核111 |
表1处理器核与功能模块的映射关系表
进一步的,如图1所示,本发明的一发动机控制系统还包括一引导程序15,配置为启动第一处理器核111、第二处理器核112、操作系统13和应用程序14。
示例性的,在本发明的一实施例中,该引导程序15配置为先启动第一处理器核111,将操作系统13加载到易失性存储器12的一第一存储区中后,启动操作系统13,并将该操作系统13复制到易失性存储器12的一第二存储区中。在此基础上,该引导程序15还配置为在将操作系统13加载到易失性存储器12的第一存储区中之后,以及在启动操作系统13前,启动第二处理器核112,并阻塞第二处理器核112。
关于该引导程序15的具体实现方法将在下文做详细阐述。
以上是本发明一实施例的一种发动机控制系统的实现原理,可以理解的是,图1、图2以及上述的说明仅仅示例性的展示了本发明的一发动机控制系统的基本架构及其应用程序的一种开发方法。目的是为了说明本发明相较于现有技术,如何将与业务相关的输入、处理、输出等全部应用功能以及驱动程序划归在应用程序AS中处理,从而实现基于AMP的多核异步架构也可以做到每个核采用相同的操作系统,且操作系统和应用程序之间只有一个映像,降低了开发的复杂程度,节约了开发成本。
本发明的另一方面提供了一种发动机控制软件的启动方法,可以用来实现如图1所示的本发明的发动机控制系统中的引导程序。该启动方法配合本发明的发动机控制系统使用,可以降低操作系统的适航难度,降低应用软件的开发成本,从而提高软件的开发效率。
图3是本发明一实施例的基于多核处理器的发动机控制软件启动方法的原理示意图。图3使用了流程图用来说明根据本申请的实施例的基于多核处理器的发动机控制软件在启动时所需要所执行的操作。应当理解的是,前面或后面的操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各种步骤。同时,或将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。
下面结合图3,仍然以一双核处理器为例,对本发明的一基于多核处理器的发动机控制软件启动方法30做出说明。
首先,在开始上电后,步骤31为启动并初步初始化第一处理器核,以满足第一处理器核的基本运行需求。
步骤32为加载操作系统到易失性存储器的一第一存储区中,该第一存储区为第一处理器核的特定地址,以供第一处理器核使用。步骤32同时加载应用程序到易失性存储器的一特定位置中,该应用程序包括集成模块和多个功能模块。其中,该集成模块配置为部署功能模块的运行时间和运行空间,包括分配运行空间、任务间交互和/或运行的处理器核;多个功能模块包括与业务相关的模块和驱动程序。关于应用程序的具体实现方式,可以参照图2及上述实施例中的说明,在此不再赘述。
步骤33为启动并阻塞第二处理器核,由于此时第二处理器核上尚未有部署的应用程序,因此需要通过阻塞第二处理器核的方式保障系统的正常运行。
步骤34为跳转至第一处理器核的操作系统启动地址,启动操作系统。由于此时的系统尚未知晓在应用程序中的各功能模块中具体哪些需要在第一处理器核上运行,因此,通过启动操作系统而将CPU控制权交由操作系统负责。
步骤35为使用该操作系统完整初始化第一处理器核与第二处理器核,以满足基本的处理器核运行的需求。
步骤36为将操作系统复制到易失性存储器的第二存储区中,该第二存储区为第二处理器核的特定地址,以供第二处理器核使用,从而与步骤32中将操作系统加载到易失性存储器中的第一存储区中形成区分,实现第一处理器核和第二处理器核的相互独立运行。
步骤37为操作系统解析应用程序的集成模块并部署相应处理器核,即分别部署第一处理器核和第二处理器核所需要运行的代码。更具体的,参照图2和以上的实施例说明,该集成模块配置为部署功能模块的运行时间和运行空间,因此,操作系统通过解析应用程序的集成模块,可以将相对应的一部分功能模块部署在第一处理器核,而将相对应的另一部分功能模块部署在第二处理器核,以实现双核所需要运行的代码的分配。
最后,步骤38为释放第二处理器核,从而成功启动基于同一操作系统而具有不同应用功能的双核异构处理器。
在实际生产中,在执行完一次步骤31-38对于双核的任务调度分配后,将第一处理器核和第二处理器核分别调转到对应的操作系统的存储地址,以实现双核的周期任务调度。
在本发明的一实施例中,如图3所示的步骤31-34可以按照现有技术中传统的启动程序BOOT来开发,以保持其通用性。
以上是本发明一实施例的一种基于多核处理器的发动机控制软件启动方法,该启动方法适用于启动本发明的一种具有相同操作系统的多核异构处理器的发动机控制系统,在效果上降低了操作系统的适航难度,也降低了应用软件的开发成本,从而提高软件的开发效率。
本发明的另一方面提出一种基于多核处理器的发动机控制系统,该控制系统包括一存储器,用于存储可由处理器执行的指令;该控制系统还包括一处理器,用于执行指令以实现如上述实施例的参考图3所示的步骤31-38的基于多核处理器的发动机控制软件启动方法。
本发明的另一方面还提出一种存储有计算机程序代码的计算机可读介质,该计算机程序代码在由处理器执行时可以实现如上述实施例的参考图3所示的步骤31-38的基于多核处理器的发动机控制软件启动方法。
可以理解的是,本发明不以图1和图3所示以及上述说明中的双核处理器为限,领域内的技术人员可以根据实际生产的需要选取更多核的处理器,并在图1和图3以及上述说明的基础上做出适应性的变形,则各种变形均属于本发明的精神和范围。
上文已对基本概念做了描述,显然,对于本领域技术人员来说,上述发明披露仅仅作为示例,而并不构成对本申请的限定。虽然此处并没有明确说明,本领域技术人员可能会对本申请进行各种修改、改进和修正。该类修改、改进和修正在本申请中被建议,所以该类修改、改进、修正仍属于本申请示范实施例的精神和范围。
同时,本申请使用了特定词语来描述本申请的实施例。如“一个实施例”、“一实施例”、和/或“一些实施例”意指与本申请至少一个实施例相关的某一特征、结构或特点。因此,应强调并注意的是,本说明书中在不同位置两次或多次提及的“一实施例”或“一个实施例”或“一替代性实施例”并不一定是指同一实施例。此外,本申请的一个或多个实施例中的某些特征、结构或特点可以进行适当的组合。
本申请的一些方面可以完全由硬件执行、可以完全由软件(包括固件、常驻软件、微码等)执行、也可以由硬件和软件组合执行。以上硬件或软件均可被称为“数据块”、“模块”、“引擎”、“单元”、“组件”或“系统”。处理器可以是一个或多个专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理器件(DAPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、处理器、控制器、微控制器、微处理器或者其组合。此外,本申请的各方面可能表现为位于一个或多个计算机可读介质中的计算机产品,该产品包括计算机可读程序编码。例如,计算机可读介质可包括,但不限于,磁性存储设备(例如,硬盘、软盘、磁带……)、光盘(例如,压缩盘CD、数字多功能盘DVD……)、智能卡以及闪存设备(例如,卡、棒、键驱动器……)。
计算机可读介质可能包含一个内含有计算机程序编码的传播数据信号,例如在基带上或作为载波的一部分。该传播信号可能有多种表现形式,包括电磁形式、光形式等等、或合适的组合形式。计算机可读介质可以是除计算机可读存储介质之外的任何计算机可读介质,该介质可以通过连接至一个指令执行系统、装置或设备以实现通讯、传播或传输供使用的程序。位于计算机可读介质上的程序编码可以通过任何合适的介质进行传播,包括无线电、电缆、光纤电缆、射频信号、或类似介质、或任何上述介质的组合。
同理,应当注意的是,为了简化本申请披露的表述,从而帮助对一个或多个发明实施例的理解,前文对本申请实施例的描述中,有时会将多种特征归并至一个实施例、附图或对其的描述中。但是,这种披露方法并不意味着本申请对象所需要的特征比权利要求中提及的特征多。实际上,实施例的特征要少于上述披露的单个实施例的全部特征。
一些实施例中使用了描述成分、属性数量的数字,应当理解的是,此类用于实施例描述的数字,在一些示例中使用了修饰词“大约”、“近似”或“大体上”来修饰。除非另外说明,“大约”、“近似”或“大体上”表明所述数字允许有±20%的变化。相应地,在一些实施例中,说明书和权利要求中使用的数值参数均为近似值,该近似值根据个别实施例所需特点可以发生改变。在一些实施例中,数值参数应考虑规定的有效数位并采用一般位数保留的方法。尽管本申请一些实施例中用于确认其范围广度的数值域和参数为近似值,在具体实施例中,此类数值的设定在可行范围内尽可能精确。
虽然本申请已参照当前的具体实施例来描述,但是本技术领域中的普通技术人员应当认识到,以上的实施例仅是用来说明本申请,在没有脱离本申请精神的情况下还可作出各种等效的变化或替换,因此,只要在本申请的实质精神范围内对上述实施例的变化、变型都将落在本申请的权利要求书的范围内。
Claims (15)
1.一种发动机控制系统,包括:
多核处理器,包括第一处理器核与第二处理器核;
易失性存储器;
操作系统,适于加载到所述易失性存储器中并由所述第一处理器核与第二处理器核运行;
应用程序,适于加载到所述易失性存储器中并由所述第一处理器核和/或第二处理器核运行,所述应用程序包括集成模块和多个功能模块,所述多个功能模块包括与业务相关的模块和驱动程序,所述集成模块配置为部署所述多个功能模块的运行时间和空间;以及
引导程序,配置为启动所述第一处理器核、第二处理器核、操作系统和应用程序。
2.如权利要求1所述的系统,其特征在于,所述第一处理器核与第二处理器核对应同一操作系统,所述集成模块中具有所述第一处理器核与第二处理器核的内核配置。
3.如权利要求1所述的系统,其特征在于,所述多个功能模块的运行时间包括运行周期和时间预算。
4.如权利要求1所述的系统,其特征在于,所述多个功能模块的运行空间包括分配运行空间、任务间交互空间和/或运行的处理器核。
5.如权利要求4所述的系统,其特征在于,所述操作系统配置为解析所述应用程序的集成模块,并部署多个所述功能模块运行的处理器核。
6.如权利要求1所述的系统,其特征在于,所述易失性存储器具有不同的第一存储区和第二存储区,其中当所述操作系统运行时,分别在所述第一存储区和第二存储区运行。
7.如权利要求1所述的系统,其特征在于,所述多个功能模块的一部分被部署在所述第一处理器核,另一部分被部署在所述第二处理器核。
8.如权利要求6所述的系统,其特征在于,所述引导程序配置为先启动所述第一处理器核,将所述操作系统加载到所述第一存储区中后,再启动所述操作系统,将所述操作系统复制到所述第二存储区中。
9.如权利要求6所述的系统,其特征在于,所述引导程序配置为在将所述操作系统加载到所述第一存储区中后且启动所述操作系统前,启动所述第二处理器核,并阻塞所述第二处理器核。
10.一种基于多核处理器的发动机控制软件启动方法,包括以下步骤:
启动多核处理器的第一处理器核,并初步初始化所述第一处理器核;
将操作系统及应用程序加载到易失性存储器中,其中所述操作系统加载到第一存储区中,所述应用程序包括集成模块和多个功能模块,所述多个功能模块包括与业务相关的模块和驱动程序,所述集成模块配置为部署所述功能模块的运行时间和空间;
启动所述多核处理器的第二处理器核,并阻塞所述第二处理器核;
启动所述操作系统;
使用所述操作系统完整初始化所述第一处理器核与第二处理器核;
将所述操作系统复制到所述易失性存储器的第二存储区中;
所述操作系统解析所述应用程序的集成模块,并部署多个所述功能模块运行的处理器核;以及
释放所述第二处理器核。
11.如权利要求10所述的方法,其特征在于,所述多个功能模块的运行空间包括分配运行空间、任务间交互空间和/或运行的处理器核。
12.如权利要求10所述的方法,其特征在于,所述操作系统将所述多个功能模块的一部分部署在所述第一处理器核,另一部分部署在所述第二处理器核。
13.如权利要求10所述的方法,其特征在于,在释放所述第二处理器核后还包括:
所述第一处理器核与第二处理器核分别调转到对应的操作系统存储地址,进行周期任务调度。
14.一种基于多核处理器的发动机控制系统,包括:
存储器,用于存储可由处理器执行的指令;以及
处理器,用于执行所述指令以实现如权利要求10-13任一项所述的方法。
15.一种存储有计算机程序代码的计算机可读介质,所述计算机程序代码在由处理器执行时实现如权利要求10-13任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010619282.9A CN114090097A (zh) | 2020-06-30 | 2020-06-30 | 发动机控制系统和控制软件启动方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010619282.9A CN114090097A (zh) | 2020-06-30 | 2020-06-30 | 发动机控制系统和控制软件启动方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114090097A true CN114090097A (zh) | 2022-02-25 |
Family
ID=80294781
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010619282.9A Pending CN114090097A (zh) | 2020-06-30 | 2020-06-30 | 发动机控制系统和控制软件启动方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114090097A (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080244507A1 (en) * | 2007-03-30 | 2008-10-02 | Microsoft Corporation | Homogeneous Programming For Heterogeneous Multiprocessor Systems |
CN101561764A (zh) * | 2009-05-18 | 2009-10-21 | 华为技术有限公司 | 一种多核环境下的补丁方法与补丁装置 |
JP2010182096A (ja) * | 2009-02-05 | 2010-08-19 | Nec Corp | プログラム並列実行システム、マルチコアプロセッサ上のプログラム並列実行方法 |
CN103793255A (zh) * | 2014-02-27 | 2014-05-14 | 重庆邮电大学 | 可配置的多主模式多os内核实时操作系统架构与启动方法 |
CN104156234A (zh) * | 2014-07-22 | 2014-11-19 | 华为技术有限公司 | 启动多核处理器、bootloader大小端模式自适应的方法及装置 |
CN104714846A (zh) * | 2013-12-17 | 2015-06-17 | 华为技术有限公司 | 资源处理方法、操作系统及设备 |
CN106648758A (zh) * | 2016-11-30 | 2017-05-10 | 中国电子科技集团公司第五十八研究所 | 一种多核处理器boot启动系统及方法 |
CN107820701A (zh) * | 2015-05-01 | 2018-03-20 | 三星电子株式会社 | 开发者交换系统 |
US20190340140A1 (en) * | 2016-10-31 | 2019-11-07 | Leonardo S.P.A. | Certifiable deterministic system software framework for hard real-time safety-critical applications in avionics systems featuring multi-core processors |
-
2020
- 2020-06-30 CN CN202010619282.9A patent/CN114090097A/zh active Pending
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080244507A1 (en) * | 2007-03-30 | 2008-10-02 | Microsoft Corporation | Homogeneous Programming For Heterogeneous Multiprocessor Systems |
JP2010182096A (ja) * | 2009-02-05 | 2010-08-19 | Nec Corp | プログラム並列実行システム、マルチコアプロセッサ上のプログラム並列実行方法 |
CN101561764A (zh) * | 2009-05-18 | 2009-10-21 | 华为技术有限公司 | 一种多核环境下的补丁方法与补丁装置 |
US20120066484A1 (en) * | 2009-05-18 | 2012-03-15 | Huawei Technologies Co., Ltd. | Patching method and patching device in multi-core environment |
CN104714846A (zh) * | 2013-12-17 | 2015-06-17 | 华为技术有限公司 | 资源处理方法、操作系统及设备 |
CN103793255A (zh) * | 2014-02-27 | 2014-05-14 | 重庆邮电大学 | 可配置的多主模式多os内核实时操作系统架构与启动方法 |
CN104156234A (zh) * | 2014-07-22 | 2014-11-19 | 华为技术有限公司 | 启动多核处理器、bootloader大小端模式自适应的方法及装置 |
CN107820701A (zh) * | 2015-05-01 | 2018-03-20 | 三星电子株式会社 | 开发者交换系统 |
US20190340140A1 (en) * | 2016-10-31 | 2019-11-07 | Leonardo S.P.A. | Certifiable deterministic system software framework for hard real-time safety-critical applications in avionics systems featuring multi-core processors |
CN106648758A (zh) * | 2016-11-30 | 2017-05-10 | 中国电子科技集团公司第五十八研究所 | 一种多核处理器boot启动系统及方法 |
Non-Patent Citations (2)
Title |
---|
蒋小文: "多核实时系统的节能和可靠性优化调度研究", 计算机硬件技术, no. 6, 15 June 2019 (2019-06-15) * |
赵光;: "多核处理器在综合模块化航空电子系统中的应用", 科技视界, no. 13, 5 May 2016 (2016-05-05) * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10095657B2 (en) | Processor, accelerator, and direct memory access controller within a core reading/writing local synchronization flag area for parallel | |
JP4936517B2 (ja) | ヘテロジニアス・マルチプロセッサシステムの制御方法及びマルチグレイン並列化コンパイラ | |
US9015683B2 (en) | Method and apparatus for transforming program code | |
CN110401700B (zh) | 模型加载方法及系统、控制节点及执行节点 | |
US20070204271A1 (en) | Method and system for simulating a multi-CPU/multi-core CPU/multi-threaded CPU hardware platform | |
CN101681294A (zh) | 存储器事务分组 | |
US10296316B2 (en) | Parallelization method, parallelization tool, and in-vehicle apparatus | |
CN111666210A (zh) | 一种芯片验证方法及装置 | |
JP2004220583A (ja) | アセンブラにおいて大域的プロセッサ資源割当てを実行するための方法およびシステム | |
US11663020B2 (en) | Bootstrapping frameworks from a generated static initialization method for faster booting | |
US8341613B2 (en) | Reducing stack space consumption via head-call optimization | |
JP6464982B2 (ja) | 並列化方法、並列化ツール、車載装置 | |
US10318259B2 (en) | Technology to use control dependency graphs to convert control flow programs into data flow programs | |
CN111381894A (zh) | 一种复杂分时操作系统启动时从系统快速启动并同时工作的实现方法 | |
CN111782335A (zh) | 通过进程内操作系统的扩展应用机制 | |
JP6427053B2 (ja) | 並列化コンパイル方法、及び並列化コンパイラ | |
US10496433B2 (en) | Modification of context saving functions | |
CN111930359B (zh) | 一种异构嵌入式系统上进行算法开发的系统及方法 | |
CN114546581A (zh) | 一种无服务容器启动方法及相关设备 | |
US20180136917A1 (en) | Compiler program, compiling method, and compiling device | |
CN114090097A (zh) | 发动机控制系统和控制软件启动方法 | |
US7111288B2 (en) | Method and system for minimizing the cycle time when compiling a program in a processing system | |
CN113961260A (zh) | 系统控制软件的运行方法、系统、计算机设备及存储介质 | |
JP6933001B2 (ja) | 並列化方法、並列化ツール | |
US11941437B2 (en) | Graph partitioning to exploit batch-level parallelism |
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 |