嵌入式代码的编译方法、装置及其计算机可读存储介质与流程

文档序号:34384187发布日期:2023-06-08 05:07阅读:47来源:国知局
嵌入式代码的编译方法、装置及其计算机可读存储介质与流程

本申请涉及嵌入式代码的编译领域,具体而言,涉及一种嵌入式代码的编译方法、装置、计算机可读存储介质、处理器和电子设备。


背景技术:

1、现有软件技术是自顶往下的执行过程:某个变量在一个.c文件中使用,变量的属性存在于其他文件夹中。常规的程序编译过程中,编译器编译过程中会迅速找到定义的头文件和声明的头文件,并且,编译的代码也不冗长。

2、但是在嵌入式程序的编译过程中,当变量的定义的头文件和/或声明的头文件嵌套使用时,会使得编译得到的目标代码冗长。

3、因此,亟需一种能缓解免嵌入式程序的编译得到的目标代码较为冗长的编译方法。


技术实现思路

1、本申请的主要目的在于提供一种嵌入式代码的编译方法、装置、计算机可读存储介质、处理器和电子设备,以至少解决现有技术中在变量的定义头文件和/或声明头文件嵌套使用时,会使得编译得到的目标代码冗长的问题。

2、为了实现上述目的,根据本申请的一个方面,提供了一种嵌入式代码的编译方法,包括:对源代码进行编译,生成初始编译文件,所述初始编译文件为可读取变量的属性的文件;确定所述初始编译文件中的各所述变量的属性,将至少一种所述属性的头文件生成至一个属性表中;遍历所述属性表,将至少一个所述属性的头文件写回至对应的所述变量的使用模块的文件中,形成更新的所述使用模块的文件,并采用所述更新的所述使用模块的文件进行编译,得到目标代码。

3、可选地,确定所述初始编译文件中的各所述变量的属性,将至少一种所述属性的头文件生成至一个属性表中,包括:确定各所述变量的属性,在所述属性有多个的情况下,将同一种所述属性的头文件对应地生成至一个所述属性表中,得到多个所述属性对应的多个所述属性表,其中,一个所述属性对应一个所述属性表。

4、可选地,遍历所述属性表,将至少一个所述属性的头文件写回至对应的所述变量的使用模块的文件中,包括:在所述属性表有多个的情况下,遍历各所述属性表,将所述变量对应的各所述属性的头文件分别写回至所述变量的使用模块的文件中。

5、可选地,确定所述初始编译文件中的各所述变量的属性,将至少一种所述属性的头文件生成至一个属性表中,包括:确定各全局变量的属性是否为定义属性或者声明属性;在所述全局变量的属性为所述定义属性的情况下,将所述全局变量的定义属性的头文件生成至定义属性表中;在所述全局变量的属性为所述声明属性的情况下,将所述全局变量的声明属性的头文件生成至声明属性表中。

6、可选地,遍历所述属性表,将至少一个所述属性的头文件写回至对应的所述变量的使用模块的文件中,包括:遍历所述定义属性表,将所述定义属性的头文件写回至对应的所述全局变量的使用模块的文件中;遍历所述声明属性表,将所述声明属性的头文件写回至对应的所述全局变量的所述使用模块的文件中。

7、可选地,对源代码进行编译,生成初始编译文件,包括:对源代码进行编译,生成对象文件;将所述对象文件转化为文本文件,得到所述初始编译文件。

8、根据本申请的另一方面,提供了一种嵌入式代码的编译装置,包括:初始编译单元,用于对源代码进行编译,生成初始编译文件,所述初始编译文件为可读取变量的属性的文件;生成单元,用于确定所述初始编译文件中的各所述变量的属性,将至少一种所述属性的头文件生成至一个属性表中;再编译单元,用于遍历所述属性表,将至少一个所述属性的头文件写回至对应的所述变量的使用模块的文件中,形成更新的所述使用模块的文件,并采用所述更新的所述使用模块的文件进行编译,得到目标代码。

9、根据本申请的再一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的程序,其中,在所述程序运行时控制所述计算机可读存储介质所在设备执行上述任意一项所述的编译方法。

10、根据本申请的又一方面,提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行上述任意一项所述的编译方法。

11、根据本申请的又一方面,还提供了一种电子设备,包括:一个或多个处理器,存储器,以及一个或多个程序,其中,所述一个或多个程序被存储在所述存储器中,并且被配置为由所述一个或多个处理器执行,所述一个或多个程序包括用于执行上述任意一项所述的编译方法。

12、应用本申请的技术方案,首先,对源代码进行编译,生成初始编译文件,之后,确定上述初始编译文件中的各上述变量的属性,将至少一种上述属性的头文件生成至一个属性表中,遍历上述属性表,将至少一个上述属性的头文件写回至对应的上述变量的使用模块的文件中,形成更新的上述使用模块的文件,并采用上述更新的上述使用模块的文件进行编译,得到目标代码。与现有技术中,嵌入式代码在编译过程中,当变量的定义头文件和/或声明头文件嵌套使用时,编译得到的目标代码过于冗长的方法相比,本方案在变量的定义头文件和/或声明头文件嵌套使用时,可以使编译得到的嵌入式代码较为简洁,通过对源代码进行编译生成初始编译文件,将与初始编译文件中各变量的属性对应的头文件生成至一个属性表,遍历属性表并将上述各变量对应属性的头文件写回至各变量的使用模块中,以得到更新后的使用模块的文件,使得对更新后的使用模块的文件进行编译得到的目标代码更加简洁,进而解决了在嵌入式代码的编译过程中,变量的定义头文件和/或声明头文件嵌套使用时,编译得到的目标代码过于冗长的问题。



技术特征:

1.一种嵌入式代码的编译方法,其特征在于,包括:

2.根据权利要求1所述的编译方法,其特征在于,确定所述初始编译文件中的各所述变量的属性,将至少一种所述属性的头文件生成至一个属性表中,包括:

3.根据权利要求2所述的编译方法,其特征在于,遍历所述属性表,将至少一个所述属性的头文件写回至对应的所述变量的使用模块的文件中,包括:

4.根据权利要求1所述的编译方法,其特征在于,确定所述初始编译文件中的各所述变量的属性,将至少一种所述属性的头文件生成至一个属性表中,包括:

5.根据权利要求4所述的编译方法,其特征在于,遍历所述属性表,将至少一个所述属性的头文件写回至对应的所述变量的使用模块的文件中,包括:

6.根据权利要求1至5中任一项所述的编译方法,其特征在于,对源代码进行编译,生成初始编译文件,包括:

7.一种嵌入式代码的编译装置,其特征在于,包括:

8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的程序,其中,在所述程序运行时控制所述计算机可读存储介质所在设备执行权利要求1至6中任意一项所述的编译方法。

9.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1至6中任意一项所述的编译方法。

10.一种电子设备,其特征在于,包括:一个或多个处理器,存储器,以及一个或多个程序,其中,所述一个或多个程序被存储在所述存储器中,并且被配置为由所述一个或多个处理器执行,所述一个或多个程序包括用于执行权利要求1至6中任意一项所述的编译方法。


技术总结
本申请提供了一种嵌入式代码的编译方法、装置及其计算机可读存储介质。该编译方法包括:对源代码进行编译,生成初始编译文件,所述初始编译文件为可读取变量的属性的文件;确定所述初始编译文件中的各所述变量的属性,将至少一种所述属性的头文件生成至一个属性表中;遍历所述属性表,将至少一个所述属性的头文件写回至对应的所述变量的使用模块的文件中,形成更新的所述使用模块的文件,并采用所述更新的所述使用模块的文件进行编译,得到目标代码。通过本申请,解决了在变量的定义头文件和/或声明头文件嵌套使用时,编译得到的目标代码过于冗长的问题,达到了使嵌入式编译代码简洁的目的。

技术研发人员:白金铭,刘硕,朱鲁明,马彦
受保护的技术使用者:潍柴动力股份有限公司
技术研发日:
技术公布日:2024/1/13
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1