CN117608562A - 一种可执行程序生成方法、装置、电子设备及存储介质 - Google Patents
一种可执行程序生成方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN117608562A CN117608562A CN202311453689.9A CN202311453689A CN117608562A CN 117608562 A CN117608562 A CN 117608562A CN 202311453689 A CN202311453689 A CN 202311453689A CN 117608562 A CN117608562 A CN 117608562A
- Authority
- CN
- China
- Prior art keywords
- attribute information
- configuration file
- file
- configuration
- target
- 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 61
- 238000012545 processing Methods 0.000 claims abstract description 39
- 238000004458 analytical method Methods 0.000 claims abstract description 10
- 230000006870 function Effects 0.000 claims description 47
- 238000005253 cladding Methods 0.000 claims description 25
- 238000010276 construction Methods 0.000 claims description 23
- 230000004044 response Effects 0.000 claims description 7
- 230000008569 process Effects 0.000 abstract description 12
- 238000005516 engineering process Methods 0.000 abstract description 2
- 230000000007 visual effect Effects 0.000 abstract description 2
- 238000011161 development Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 3
- 230000003190 augmentative effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000003319 supportive effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/36—Software reuse
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及计算机技术领域,特别涉及一种可执行程序生成方法、装置、电子设备及存储介质。所述方法通过获取实时操作系统的配置文件;配置文件为树形结构文件;配置文件包含有用于构建可执行程序的相关功能配置信息和相关编译配置信息;对配置文件进行解析操作,生成目标文件;获取实时操作系统的工程文件和目标应用程序;工程文件包含有实时操作系统的源代码;编译链接目标文件、工程文件和应用程序,生成可执行程序。从而在对配置文件进行解析的过程中,只需要统一调用开源库JSON解析API处理即可,可提高生成可执行程序的效率,而且后续还可以对配置参数进行可视化处理,实现动态更新配置。
Description
技术领域
本申请涉及计算机技术领域,特别涉及一种可执行程序生成方法、装置、电子设备及存储介质。
背景技术
在嵌入式应用程序开发时,通常会涉及多种格式的配置文件,如.bsp文件、.cpu文件、.config文件等以实现对不同功能组件的配置,但这使得在库文件编译过程中,需要调用不同的接口的解析器来对多种配置文件分别进行解析,降低了开发效率,而且也不便于进行功能扩展以及代码升级维护。
发明内容
为了解决现有技术的问题,本申请实施例提供了一种可执行程序生成方法、装置、电子设备及存储介质。所述技术方案如下:
获取实时操作系统的配置文件;配置文件为树形结构文件;配置文件包含有用于构建可执行程序的相关功能配置信息和相关编译配置信息;
对配置文件进行解析操作,生成目标文件;
获取实时操作系统的工程文件和目标应用程序;工程文件包含有实时操作系统的源代码;
编译链接目标文件、工程文件和应用程序,生成可执行程序。
在一个示例性的实施方式中,获取实时操作系统的配置文件,包括:
响应于在多个配置界面中每个配置界面的对象生成指令,生成多个子配置文件;每个子配置文件对应一个配置界面的对象生成指令;
基于多个子配置文件确定配置文件。
在一个示例性的实施方式中,响应于在多个配置界面中每个配置界面的对象生成指令,生成多个子配置文件,包括:
响应于在包/组件配置界面的第一对象生成指令,生成第一对象生成指令对应的包/组件配置文件;包/组件配置文件包含有包/组件的功能属性信息;
响应于在板级支持包配置界面的第二对象生成指令,生成第二对象生成指令对应的板级支持包配置文件;板级支持包配置文件包含有板级支持包层中与构建操作系统组件和驱动相关的功能属性信息和编译属性信息;
响应于在中央处理器配置界面的第三对象生成指令,生成第三对象生成指令对应的中央处理器配置文件;中央处理器配置文件包含有与中央处理器相关的功能属性信息和编译属性信息;
响应于在构建工具配置界面的第四对象生成指令,生成第四对象生成指令对应的构建工具配置文件;构建工具配置文件包含有构建应用程序时所需工具的属性信息。
在一个示例性的实施方式中,基于多个子配置文件确定配置文件,包括:
基于板级支持包配置文件、中央处理器配置文件、包/组件配置文件和构建工具配置文件生成配置文件。
在一个示例性的实施方式中,配置文件为JSON格式的文件;对配置文件进行解析操作,生成目标文件,包括:
通过调用JSON解析器来分别对配置文件中的包/组件配置文件、板级支持包配置文件、中央处理器配置文件和构建工具配置文件进行解析处理,得到包/组件的功能属性信息、板级支持包层中与构建操作系统组件和驱动相关的功能属性信息和编译属性信息、与中央处理器相关的功能属性信息和编译属性信息,以及构建应用程序时所需工具的属性信息;
从板级支持包层中与构建操作系统组件和驱动相关的功能属性信息、与中央处理器相关的功能属性信息和包/组件的功能属性信息中确定出第一目标对象的功能属性信息和目标包/组件的功能属性信息,得到目标功能类配置文件;
从板级支持包层中与构建操作系统组件和驱动相关的编译属性信息、与中央处理器相关的编译属性信息和构建应用程序时所需工具的属性信息中确定出第二目标对象的编译属性信息,得到目标编译类配置文件;
基于目标功能类配置文件和目标编译类配置文件生成目标文件。
在一个示例性的实施方式中,从板级支持包层中与构建操作系统组件和驱动相关的功能属性信息、与中央处理器相关的功能属性信息和包/组件的功能属性信息中确定出第一目标对象的功能属性信息和目标包/组件的功能属性信息,得到目标功能类配置文件,包括:
获取第一目标对象的标识;
基于第一目标对象的标识从板级支持包层中与构建操作系统组件和驱动相关的功能属性信息,以及与中央处理器相关的功能属性信息从确定出第一目标对象的功能属性信息;
获取目标包/组件的标识;
基于目标包/组件的标识从包/组件的功能属性信息中确定出目标包/组件的功能属性信息;
基于目标包/组件的功能属性信息和第一目标对象的功能属性信息生成功能类配置文件。
在一个示例性的实施方式中,从板级支持包层中与构建操作系统组件和驱动相关的编译属性信息、与中央处理器相关的编译属性信息和构建应用程序时所需工具的属性信息中确定出目标对象的编译属性信息,得到目标编译类配置文件,包括:
获取第二目标对象的标识;
基于第二目标对象的标识从板级支持包层中与构建操作系统组件和驱动相关的编译属性信息、与中央处理器相关的编译属性信息和构建应用程序时所需工具的属性信息中确定出目标对象的编译属性信息,得到目标编译类配置文件。
于另一方面,提供了一种可执行程序生成装置,所述装置包括:
第一获取模块,用于获取实时操作系统的配置文件;配置文件为树形结构文件;配置文件包含有用于构建可执行程序的相关功能配置信息和相关编译配置信息;
解析模块,用于对配置文件进行解析操作,生成目标文件;
第二获取模块,用于获取实时操作系统的工程文件和目标应用程序;工程文件包含有实时操作系统的源代码;
编译模块,用于编译链接目标文件、工程文件和应用程序,生成可执行程序。
于另一方面,提供了一种电子设备,其包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,处理器被配置为执行指令,以实现上述的可执行程序生成方法。
于另一方面,提供了一种计算机可读存储介质,当计算机可读存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行上述的可执行程序生成方法。
本申请实施例通过获取实时操作系统的配置文件;配置文件为树形结构文件;配置文件包含有用于构建可执行程序的相关功能配置信息和相关编译配置信息;对配置文件进行解析操作,生成目标文件;获取实时操作系统的工程文件和目标应用程序;工程文件包含有实时操作系统的源代码;编译链接目标文件、工程文件和应用程序,生成可执行程序。如此,可以通过通过将实时操作系统的多种类型的配置文件(如.bsp文件、.cpu文件、.xml文件等)都统一成树形结构文件(如JSON格式文件),从而后续开发时,对该配置文件只需要统一调用开源库JSON解析API处理即可,可提高生成可执行程序的效率,而且后续还可以对配置参数进行可视化处理,实现动态更新配置。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种实施环境的示意图;
图2是本申请实施例提供的一种可执行程序生成方法的流程示意图;
图3是本申请实施例提供的另一种可执行程序生成方法的流程示意图;
图4是本申请实施例提供的一种可执行程序生成装置的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或服务器不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
请参阅图1,图1是本申请实施例提供的一种实施环境的示意图,如图1所示,该应用环境可以包括服务器01和终端02。
在一个可选的实施例中,服务器01可以用于对可执行程序生成方法进行计算处理。具体的,服务器01可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。
在一个可选的实施例中,终端02可以结合服务器01的可执行程序生成方法进行计算处理。具体的,终端02可以包括但不限于智能手机、台式计算机、平板电脑、笔记本电脑、智能音箱、数字助理、增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR)设备、智能可穿戴设备等类型的电子设备。可选的,电子设备上运行的操作系统可以包括但不限于安卓系统、IOS系统、Linux系统、Windows系统、Unix系统等。
例如,通过终端02获取实时操作系统的配置文件、实时操作系统的工程文件和目标应用程序;配置文件为树形结构文件;配置文件包含有用于构建可执行程序的相关功能配置信息和相关编译配置信息,并将其传输给服务器01,通过服务器01对配置文件进行解析操作,生成目标文件,然后编译链接目标文件、工程文件和应用程序,生成可执行程序。
此外,需要说明的是,图1所示的仅仅是本公开提供的一种应用环境,在实际应用中,还可以包括其他应用环境。
本说明书实施例中,上述服务器01以及终端02可以通过有线或无线通信方式进行直接或间接地连接,本公开在此不做限制。
请参阅图2,图2是本申请实施例提供的一种可执行程序生成方法的流程示意图,可执行程序生成方法包括以下:
S201:获取实时操作系统的配置文件;配置文件为树形结构文件;配置文件包含有用于构建可执行程序的相关功能配置信息和相关编译配置信息。
本公开实施例中,配置文件具体可以是JSON格式的文件,一种树形结构文件,具体其数据是以Key-Value的方式来定义的。
本公开实施例中,用于构建可执行程序的相关配置信息具体可以包括包/组件配置信息、板级支持包配置信息、中央处理器配置信息、构建工具配置信息,即可以从两个维度来对这些配置信息进行划分,例如用于构建可执行程序的相关功能配置信息具体可以包括包/组件配置信息、板级支持包配置信息中的功能配置信息和中央处理器配置信息中的功能配置信息;用于构建可执行程序的相关编译配置信息具体可以包括构建工具配置信息、板级支持包配置信息中的编译配置信息和中央处理器配置信息中的编译配置信息。
在一个示例性的实施方式中,步骤S201的具体实施方式可以包括:响应于在多个配置界面中每个配置界面的对象生成指令,生成多个子配置文件;每个子配置文件对应一个配置界面的对象生成指令;基于多个子配置文件确定配置文件。从而可以基于需求灵活更新配置,提高提高产品扩展性,方便用户使用。具体可以是用户通过在配置界面选择相应的配置参数后,点击“完成/确定”控件,生成相应的子配置文件,如上述所列示的多种配置信息,每种配置信息可以通过在相应的配置界面进行配置参数的选择来生成。可选的,可以将部分必要配置参数设置成不可更改项,只有可更改配置参数可以基于用户的选择来增加或者删除。在另一个示例性的实施方式中,多个子配置文件还可以是基于在一个配置界面上进行的选择操作生成的,即多个子配置文件可以对应一个配置界面,可以对应多个配置界面,配置界面的数量可以小于或者等于子配置文件的数量。
本公开实施例中,本方法可以用于开发MOS实时操作系统(Real Time OperatingSystem,简称RTOS)的嵌入式应用程序,提供创建RTOS/Application(应用)工程、编译链接、基于虚拟操作系统模拟器(如QEMU)的运行调试等功能。
在一个示例性的实施方式中,配置文件具体可以包括包/组件配置文件,板级支持包配置文件,中央处理器配置文件和构建工具配置文件;包/组件配置文件包含有包/组件的功能属性信息;板级支持包配置文件包含有板级支持包层中与构建操作系统组件和驱动相关的功能属性信息和编译属性信息,如可以表示为bsp/<bsp>/bsp.json文件;中央处理器配置文件包含有与中央处理器相关的功能属性信息和编译属性信息,如可以表示为os/arch/<arch>/cpu/<cpu>/cpu.json文件;另外,构建工具配置文件包含有构建应用程序时所需工具的属性信息,如构建工具配置文件可以表示为os/toolset/<toolset>.toolset文件。则上述响应于在多个配置界面中每个配置界面的对象生成指令,生成多个子配置文件,包括:响应于在包/组件配置界面的第一对象生成指令,生成第一对象生成指令对应的包/组件配置文件;响应于在板级支持包配置界面的第二对象生成指令,生成第二对象生成指令对应的板级支持包配置文件;响应于在中央处理器配置界面的第三对象生成指令,生成第三对象生成指令对应的中央处理器配置文件;响应于在构建工具配置界面的第四对象生成指令,生成第四对象生成指令对应的构建工具配置文件。后续基于板级支持包配置文件、中央处理器配置文件、包/组件配置文件和构建工具配置文件生成配置文件,即通过在各种配置界面上的选择操作,从而可以生成相应的配置文件,如此,当我们需要扩展功能,比如支持一款新的板级支持包(Board Support Package,BSP),用户可以通过更新配置,增加新的JSON节点,工具自动解析出相应的信息,不需要逐步更新各个逻辑代码,提高产品扩展性,方便用户使用。
需要说明的是,还可以将实时操作系统能够支撑的功能情况和编译情况的初始配置信息存储在JSON格式的初始配置文件中,例如对于中央处理器对应的初始配置文件包含有多种中央处理器的属性信息,如cpu1、cpu2和cpu3等多种cpu的属性信息,后续通过用户在中央处理器配置界面的对cpu1的选择操作,从而可以生成cpu1的属性信息(具体包括功能属性信息和编译属性信息)。可选的,板级支持包配置文件中还可以包含中央处理器的部分属性信息,如可以包含中央处理器的标识,表示该种板级支持包可以支持的中央处理器的类型。便于后续程序运行存在支持性问题时,可以快速定位,只有当选择的板级支持包配置文件和中央处理器配置文件中的中央处理器类型一致时,可以保证程序的正常执行。
S203:对配置文件进行解析操作,生成目标文件。
在一个示例性的实施方式中,配置文件为JSON格式的文件;请参阅图3,步骤S203具体实施方式可以包括:
S2031:通过调用JSON解析器来分别对配置文件中的包/组件配置文件、板级支持包配置文件、中央处理器配置文件和构建工具配置文件进行解析处理,得到包/组件的功能属性信息、板级支持包层中与构建操作系统组件和驱动相关的功能属性信息和编译属性信息、与中央处理器相关的功能属性信息和编译属性信息,以及构建应用程序时所需工具的属性信息。
S2033:从板级支持包层中与构建操作系统组件和驱动相关的功能属性信息、与中央处理器相关的功能属性信息和包/组件的功能属性信息中确定出第一目标对象的功能属性信息和目标包/组件的功能属性信息,得到目标功能类配置文件。
在一个示例性的实施方式中,步骤S2033的具体实施方式可以包括:获取第一目标对象的标识;基于第一目标对象的标识从板级支持包层中与构建操作系统组件和驱动相关的功能属性信息,以及与中央处理器相关的功能属性信息从确定出第一目标对象的功能属性信息;获取目标包/组件的标识;基于目标包/组件的标识从包/组件的功能属性信息中确定出目标包/组件的功能属性信息;基于目标包/组件的功能属性信息和第一目标对象的功能属性信息生成功能类配置文件。可选的,第一目标对象的标识具体可以包括多个第一对象的标识,可以是基于用户在相应的配置界面的选择操作确定,延续上述示例,对中央处理器来说,当用户选择了cpu1,则一个第一对象的标识即为“cpu1”,同理,对板级支持包层来说,当用户选择了bsp1,则另一个第一对象的标识即为“bsp1”。以上仅为示例,实际上对于板级支持包层来说,也可以对应多个第一对象的标识,因为板级支持包会包含多种功能组件和多种编译组件,即对应多个功能组件的标识和多个编译组件的标识。
S2035:从板级支持包层中与构建操作系统组件和驱动相关的编译属性信息、与中央处理器相关的编译属性信息和构建应用程序时所需工具的属性信息中确定出第二目标对象的编译属性信息,得到目标编译类配置文件。
在一个示例性的实施方式中,步骤S2035的具体实施方式可以包括:获取第二目标对象的标识;基于第二目标对象的标识从板级支持包层中与构建操作系统组件和驱动相关的编译属性信息、与中央处理器相关的编译属性信息和构建应用程序时所需工具的属性信息中确定出目标对象的编译属性信息,得到目标编译类配置文件。可选的,目标编译类配置文件包含有编译系统使用的汇编器、编译器、链接器等相关工具信息。可选的,第一目标对象的标识具体可以包括多个第二对象的标识,可以是基于用户在相应的配置界面的选择操作确定,延续上述示例,对中央处理器来说,当用户选择了cpu1,则一个第一对象的标识即为“cpu1”,同理,对板级支持包层来说,当用户选择了bsp1,则另一个第一对象的标识即为“bsp1”。
S2037:基于目标功能类配置文件和目标编译类配置文件生成目标文件。
本公开实施例中,上述各种配置文件(如目标功能类配置文件、目标编译类配置文件)均为JSON格式,后续均可以解析成树形结构,解析完就可以直接使用,方便配置管理以及功能扩展。
本公开实施例中,目标功能类配置文件可以表示为imageconfig.json文件;目标编译类配置文件可以表示为systemproperties.json文件。
S205:获取实时操作系统的工程文件和目标应用程序;工程文件包含有实时操作系统的源代码。
S207:编译链接目标文件、工程文件和应用程序,生成可执行程序。
本公开实施例中,上述步骤S203-S207属于生成可执行程序的编译构建过程,应用程序可以是指开发人员编写的程序源代码,如基于C/C++语言编写的,从而可以基于目标文件,将工程文件、应用程序进行编译链接。可选的,编译链接的过程可以是,应用程序先生成中间程序文件(如bsp/cpu对应的源码头文件(.h文件),bsp/cpu对应的源码文件(.c文件)),然后再进行汇编处理,得到目标程序文件(如.o文件)。可选的,编译链接之前,还需获取构建脚本文件和依赖文件(如bsp/cpu对应的mk文件,bsp/cpu对应的rsp文件),以及设备树文件(如.dtb文件)、相应的库文件(.lib文件),从而利用目标文件将上述文件、工程文件和目标程序文件进行编译链接生成可执行程序(如.bin文件或者.out文件)。
由于现有的整个编译构建系统,都是基于不同配置来实现功能多样性,各类不同格式的配置,对于解析维护带来诸多不便,而本申请实施例通过统一JSON规范,可以由开源高效的API实现配置解析,JSON格式以树形结构存储,而我们的包/组件配置最终也需要解析成树结构来使用,直接使用JSON格式,解析完就可以直接使用,方便开发人员开发和维护,以及功能扩展。比如支持一款新的bsp,用户可以通过更新配置,增加新的JSON节点,工具自动解析出相应的信息,不需要逐步更新各个逻辑代码,提高产品扩展性,方便用户使用。
与上述几种实施例提供的可执行程序生成方法相对应,本申请实施例还提供一种可执行程序生成装置,由于本申请实施例提供的可执行程序生成装置与上述几种实施例提供的可执行程序生成方法相对应,因此前述可执行程序生成方法的实施方式也适用于本实施例提供的可执行程序生成装置,在本实施例中不再详细描述。
请参阅图4,其所示为本申请实施例提供的一种可执行程序生成装置的结构示意图,该装置具有实现上述方法实施例中可执行程序生成方法的功能,所述功能可以由硬件实现,也可以由硬件执行相应的软件实现。如图4所示,可执行程序生成装置400,可以包括:
第一获取模401,用于获取实时操作系统的配置文件;配置文件为树形结构文件;配置文件包含有用于构建可执行程序的相关功能配置信息和相关编译配置信息;
解析模块403,用于对配置文件进行解析操作,生成目标文件;
第二获取模块405,用于获取实时操作系统的工程文件和目标应用程序;工程文件包含有实时操作系统的源代码;
编译模块407,用于编译链接目标文件、工程文件和应用程序,生成可执行程序。
在一个示例性的实施方式中,第一获取模块,用于响应于在多个配置界面中每个配置界面的对象生成指令,生成多个子配置文件;每个子配置文件对应一个配置界面的对象生成指令;
基于多个子配置文件确定配置文件。
在一个示例性的实施方式中,第一获取模块,用于响应于在包/组件配置界面的第一对象生成指令,生成第一对象生成指令对应的包/组件配置文件;包/组件配置文件包含有包/组件的功能属性信息;
响应于在板级支持包配置界面的第二对象生成指令,生成第二对象生成指令对应的板级支持包配置文件;板级支持包配置文件包含有板级支持包层中与构建操作系统组件和驱动相关的功能属性信息和编译属性信息;
响应于在中央处理器配置界面的第三对象生成指令,生成第三对象生成指令对应的中央处理器配置文件;中央处理器配置文件包含有与中央处理器相关的功能属性信息和编译属性信息;
响应于在构建工具配置界面的第四对象生成指令,生成第四对象生成指令对应的构建工具配置文件;构建工具配置文件包含有构建应用程序时所需工具的属性信息。
在一个示例性的实施方式中,第一获取模块,用于基于板级支持包配置文件、中央处理器配置文件、包/组件配置文件和构建工具配置文件生成配置文件。
在一个示例性的实施方式中,配置文件为JSON格式的文件;解析模块,用于通过调用JSON解析器来分别对配置文件中的包/组件配置文件、板级支持包配置文件、中央处理器配置文件和构建工具配置文件进行解析处理,得到包/组件的功能属性信息、板级支持包层中与构建操作系统组件和驱动相关的功能属性信息和编译属性信息、与中央处理器相关的功能属性信息和编译属性信息,以及构建应用程序时所需工具的属性信息;
从板级支持包层中与构建操作系统组件和驱动相关的功能属性信息、与中央处理器相关的功能属性信息和包/组件的功能属性信息中确定出第一目标对象的功能属性信息和目标包/组件的功能属性信息,得到目标功能类配置文件;
从板级支持包层中与构建操作系统组件和驱动相关的编译属性信息、与中央处理器相关的编译属性信息和构建应用程序时所需工具的属性信息中确定出第二目标对象的编译属性信息,得到目标编译类配置文件;
基于目标功能类配置文件和目标编译类配置文件生成目标文件。
在一个示例性的实施方式中,解析模块,用于获取第一目标对象的标识;
基于第一目标对象的标识从板级支持包层中与构建操作系统组件和驱动相关的功能属性信息,以及与中央处理器相关的功能属性信息从确定出第一目标对象的功能属性信息;
获取目标包/组件的标识;
基于目标包/组件的标识从包/组件的功能属性信息中确定出目标包/组件的功能属性信息;
基于目标包/组件的功能属性信息和第一目标对象的功能属性信息生成功能类配置文件。
在一个示例性的实施方式中,解析模块,用于获取第二目标对象的标识;
基于第二目标对象的标识从板级支持包层中与构建操作系统组件和驱动相关的编译属性信息、与中央处理器相关的编译属性信息和构建应用程序时所需工具的属性信息中确定出目标对象的编译属性信息,得到目标编译类配置文件。
需要说明的是,上述实施例提供的装置,在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本申请实施例提供了一种电子设备,该电子设备包括处理器和存储器,该存储器中存储有至少一条指令或者至少一段程序,该至少一条指令或者该至少一段程序由该处理器加载并执行以实现如上述方法实施例所提供的任意一种可执行程序生成方法。
存储器可用于存储软件程序以及模块,处理器通过运行存储在存储器的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、功能所需的应用程序等;存储数据区可存储根据所述设备的使用所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器还可以包括存储器控制器,以提供处理器对存储器的访问。
本申请的实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质可设置于电子设备之中以保存用于实现一种可执行程序生成方法相关的至少一条指令或者至少一段程序,该至少一条指令或者该至少一段程序由该处理器加载并执行以实现上述方法实施例提供的任意一种可执行程序生成方法。
本申请的实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。电子设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该电子设备执行上述方法实施例提供的任意一种可执行程序生成方法。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是:上述本申请实施例先后顺序仅仅为了描述,不代表实施例的优劣。且上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的较佳实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种可执行程序生成方法,其特征在于,所述方法包括:
获取实时操作系统的配置文件;所述配置文件为树形结构文件;所述配置文件包含有用于构建可执行程序的相关功能配置信息和相关编译配置信息;
对所述配置文件进行解析操作,生成目标文件;
获取所述实时操作系统的工程文件和目标应用程序;所述工程文件包含有所述实时操作系统的源代码;
编译链接所述目标文件、所述工程文件和应用程序,生成所述可执行程序。
2.根据权利要求1所述的方法,其特征在于,所述获取实时操作系统的配置文件,包括:
响应于在多个配置界面中每个配置界面的对象生成指令,生成多个子配置文件;每个所述子配置文件对应一个配置界面的对象生成指令;
基于多个所述子配置文件确定所述配置文件。
3.根据权利要求2所述的方法,其特征在于,所述响应于在多个配置界面中每个配置界面的对象生成指令,生成多个子配置文件,包括:
响应于在包/组件配置界面的第一对象生成指令,生成所述第一对象生成指令对应的包/组件配置文件;所述包/组件配置文件包含有包/组件的功能属性信息;
响应于在板级支持包配置界面的第二对象生成指令,生成所述第二对象生成指令对应的板级支持包配置文件;所述板级支持包配置文件包含有板级支持包层中与构建操作系统组件和驱动相关的功能属性信息和编译属性信息;
响应于在中央处理器配置界面的第三对象生成指令,生成所述第三对象生成指令对应的中央处理器配置文件;所述中央处理器配置文件包含有与中央处理器相关的功能属性信息和编译属性信息;
响应于在构建工具配置界面的第四对象生成指令,生成所述第四对象生成指令对应的构建工具配置文件;所述构建工具配置文件包含有构建应用程序时所需工具的属性信息。
4.根据权利要求3所述的方法,其特征在于,所述基于多个所述子配置文件确定所述配置文件,包括:
基于所述板级支持包配置文件、所述中央处理器配置文件、所述包/组件配置文件和所述构建工具配置文件生成所述配置文件。
5.根据权利要求4所述的方法,其特征在于,所述配置文件为JSON格式的文件;所述对所述配置文件进行解析操作,生成目标文件,包括:
通过调用JSON解析器来分别对所述配置文件中的包/组件配置文件、所述板级支持包配置文件、所述中央处理器配置文件和所述构建工具配置文件进行解析处理,得到所述包/组件的功能属性信息、所述板级支持包层中与构建操作系统组件和驱动相关的功能属性信息和编译属性信息、所述与中央处理器相关的功能属性信息和编译属性信息,以及所述构建应用程序时所需工具的属性信息;
从板级支持包层中与构建操作系统组件和驱动相关的功能属性信息、所述与中央处理器相关的功能属性信息和所述包/组件的功能属性信息中确定出第一目标对象的功能属性信息和目标包/组件的功能属性信息,得到目标功能类配置文件;
从所述板级支持包层中与构建操作系统组件和驱动相关的编译属性信息、所述与中央处理器相关的编译属性信息和所述构建应用程序时所需工具的属性信息中确定出第二目标对象的编译属性信息,得到目标编译类配置文件;
基于所述目标功能类配置文件和所述目标编译类配置文件生成所述目标文件。
6.根据权利要求5所述的方法,其特征在于,所述从板级支持包层中与构建操作系统组件和驱动相关的功能属性信息、所述与中央处理器相关的功能属性信息和所述包/组件的功能属性信息中确定出第一目标对象的功能属性信息和目标包/组件的功能属性信息,得到目标功能类配置文件,包括:
获取第一目标对象的标识;
基于所述第一目标对象的标识从所述板级支持包层中与构建操作系统组件和驱动相关的功能属性信息,以及所述与中央处理器相关的功能属性信息从确定出第一目标对象的功能属性信息;
获取目标包/组件的标识;
基于所述目标包/组件的标识从所述包/组件的功能属性信息中确定出所述目标包/组件的功能属性信息;
基于所述目标包/组件的功能属性信息和所述第一目标对象的功能属性信息生成功能类配置文件。
7.根据权利要求5所述的方法,其特征在于,所述从所述板级支持包层中与构建操作系统组件和驱动相关的编译属性信息、所述与中央处理器相关的编译属性信息和所述构建应用程序时所需工具的属性信息中确定出目标对象的编译属性信息,得到目标编译类配置文件,包括:
获取第二目标对象的标识;
基于所述第二目标对象的标识从所述板级支持包层中与构建操作系统组件和驱动相关的编译属性信息、所述与中央处理器相关的编译属性信息和所述构建应用程序时所需工具的属性信息中确定出目标对象的编译属性信息,得到目标编译类配置文件。
8.一种可执行程序生成装置,其特征在于,所述装置包括:
第一获取模块,用于获取实时操作系统的配置文件;所述配置文件为树形结构文件;所述配置文件包含有用于构建可执行程序的相关功能配置信息和相关编译配置信息;
解析模块,用于对所述配置文件进行解析操作,生成目标文件;
第二获取模块,用于获取所述实时操作系统的工程文件和目标应用程序;所述工程文件包含有所述实时操作系统的源代码;
编译模块,用于编译链接所述目标文件、所述工程文件和应用程序,生成所述可执行程序。
9.一种电子设备,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求1~7中任一项所述的可执行程序生成方法。
10.一种计算机可读存储介质,其特征在于,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行权利要求1~7中任一项所述的可执行程序生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311453689.9A CN117608562A (zh) | 2023-11-02 | 2023-11-02 | 一种可执行程序生成方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311453689.9A CN117608562A (zh) | 2023-11-02 | 2023-11-02 | 一种可执行程序生成方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117608562A true CN117608562A (zh) | 2024-02-27 |
Family
ID=89952470
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311453689.9A Pending CN117608562A (zh) | 2023-11-02 | 2023-11-02 | 一种可执行程序生成方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117608562A (zh) |
-
2023
- 2023-11-02 CN CN202311453689.9A patent/CN117608562A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109976761B (zh) | 软件开发工具包的生成方法、装置及终端设备 | |
CN107766126B (zh) | 容器镜像的构建方法、系统、装置及存储介质 | |
CN109032631B (zh) | 应用程序补丁包获取方法、装置、计算机设备及存储介质 | |
JP7311710B2 (ja) | 実行時コンテナ | |
US9729677B2 (en) | Method of adding client server automation to computer languages for cloud computing | |
CN111880801A (zh) | 应用程序动态化方法、装置、电子设备 | |
CN113312046A (zh) | 子应用页面处理方法、装置和计算机设备 | |
US10296299B2 (en) | Server-side weaving of application-oriented-programming advice into computer code that preempts client-side load-time weaving | |
Cherubin et al. | libVersioningCompiler: An easy-to-use library for dynamic generation and invocation of multiple code versions | |
US11604662B2 (en) | System and method for accelerating modernization of user interfaces in a computing environment | |
CN107608672B (zh) | 一种ui模块管理器、ui模块管理方法和系统 | |
da Silva et al. | A model-driven approach for promoting cloud PaaS portability. | |
Sandrieser et al. | Explicit platform descriptions for heterogeneous many-core architectures | |
US11573777B2 (en) | Method and apparatus for enabling autonomous acceleration of dataflow AI applications | |
CN115390846A (zh) | 编译构建方法、装置、电子设备和存储介质 | |
CN115904384A (zh) | 应用程序发布的配置方法、装置、设备及存储介质 | |
CN115048082A (zh) | 微前端系统构建方法、装置、服务器及可读存储介质 | |
CN117608562A (zh) | 一种可执行程序生成方法、装置、电子设备及存储介质 | |
Jezek et al. | Magic with Dynamo--Flexible Cross-Component Linking for Java with Invokedynamic | |
CN114816475A (zh) | 一种嵌入式操作系统的更新方法、装置、设备和介质 | |
US9389838B2 (en) | Method for creating a computer software compiler for client server computing | |
Haja et al. | Location, proximity, affinity–the key factors in FaaS | |
CN114253595A (zh) | 代码仓库管理方法、装置、计算机设备及存储介质 | |
RU2521265C2 (ru) | Система и способ автоматической обработки системных ошибок программного обеспечения | |
Slawinska et al. | A Practical, SCVM-based Approach to Enhance Portability and Adaptability of HPC Application Build Systems |
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 |