一种单片机编译链接方法、装置、计算机设备及存储介质制造方法及图纸

技术编号:28212936 阅读:15 留言:0更新日期:2021-04-24 14:51
本发明专利技术实施例公开了一种单片机编译链接方法、装置、计算机设备及存储介质。该方法包括:获取当前文件中的不可变代码编译链接生成对应的第一可执行文件,所述第一可执行文件中的第一数据信息存放在第一不可变FLASH存储区,所述第一可执行文件中的第二数据信息存放在第一不可变RAM存储区;将所述当前文件中的可变代码编译链接生成对应的第二可执行文件,所述第二可执行文件中的第一数据信息存放在第二可变FLASH存储区,所述第二可执行文件中的第二数据信息存放在第二可变RAM存储区;根据所述第一可执行文件和所述第二可执行文件生成目标文件。本发明专利技术实施例的技术方案,以实现缩短编译时间,提升工作效率和用户体验。提升工作效率和用户体验。提升工作效率和用户体验。

【技术实现步骤摘要】
一种单片机编译链接方法、装置、计算机设备及存储介质


[0001]本专利技术实施例涉及单片机编译链接
,尤其涉及一种单片机编译链接方法、装置、计算机设备及存储介质。

技术介绍

[0002]单片机的烧录文件一般为s19\hex的格式,它是通过编译器对很多C代码进行编译、链接,最终生成目标文件。
[0003]随着ECU(电子控制单元)功能的越来越强大,软件逻辑也越来越复杂,C代码量的编译非常庞大,一般ECU代码行数有60万行,对应的C文件7000多个,对这么多文件进行编译、链接需要消耗很长的时间。
[0004]对于快速开发原型,用户有时仅需要修改少量的文件,然后跟大量的其他代码文件一起进行编译链接,耗时较长,即使其他文件已经编译成库文件不需要编译了,但也需要对所有的函数、变量确定存储地址,同样需要很长的时间进行链接。

技术实现思路

[0005]本专利技术实施例提供一种单片机编译链接方法、装置、计算机设备及存储介质,以实现缩短编译时间,提升工作效率和用户体验。
[0006]第一方面,本专利技术实施例提供了一种单片机编译链接方法,该方法包括:
[0007]获取当前文件中的不可变代码编译链接生成对应的第一可执行文件,所述第一可执行文件中的第一数据信息存放在第一不可变FLASH存储区,所述第一可执行文件中的第二数据信息存放在第一不可变RAM存储区;
[0008]将所述当前文件中的可变代码编译链接生成对应的第二可执行文件,所述第二可执行文件中的第一数据信息存放在第二可变FLASH存储区,所述第二可执行文件中的第二数据信息存放在第二可变RAM存储区;
[0009]根据所述第一可执行文件和所述第二可执行文件生成目标文件。
[0010]第二方面,本专利技术实施例还提供了一种单片机编译链接装置,该装置包括:
[0011]第一可执行文件生成模块,用于获取当前文件中的不可变代码编译链接生成对应的第一可执行文件,所述第一可执行文件中的第一数据信息存放在第一不可变FLASH存储区,所述第一可执行文件中的第二数据信息存放在第一不可变RAM存储区;
[0012]第二可执行文件生成模块,用于将所述当前文件中的可变代码编译链接生成对应的第二可执行文件,所述第二可执行文件中的第一数据信息存放在第二可变FLASH存储区,所述第二可执行文件中的第二数据信息存放在第二可变RAM存储区;
[0013]目标文件生成模块,用于根据所述第一可执行文件和所述第二可执行文件生成目标文件。
[0014]第三方面,本专利技术实施例还提供了一种设备,该设备包括:
[0015]一个或多个处理器;
[0016]存储装置,用于存储多个程序,
[0017]当所述多个程序中的至少一个被所述一个或多个处理器执行时,使得所述一个或多个处理器实现本专利技术第一方面实施例所提供的单片机编译链接方法。
[0018]第四方面,本专利技术实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本专利技术第一方面实施例所提供的一种单片机编译链接方法。
[0019]本专利技术实施例的技术方案,通过获取当前文件中的不可变代码编译链接生成对应的第一可执行文件,所述第一可执行文件中的第一数据信息存放在第一不可变FLASH存储区,所述第一可执行文件中的第二数据信息存放在第一不可变RAM存储区;将所述当前文件中的可变代码编译链接生成对应的第二可执行文件,所述第二可执行文件中的第一数据信息存放在第二可变FLASH存储区,所述第二可执行文件中的第二数据信息存放在第二可变RAM存储区;根据所述第一可执行文件和所述第二可执行文件生成目标文件。解决了现有单片机的烧录文件编译链接耗时较长的问题,以实现缩短编译时间,提升工作效率和用户体验。
附图说明
[0020]图1是本专利技术实施例一提供的一种单片机编译链接方法的流程图;
[0021]图2是本专利技术实施例二提供的一种单片机编译链接方法的流程图;
[0022]图3是本专利技术实施例三提供的一种单片机编译链接装置的结构图;
[0023]图4是本专利技术实施例四提供的一种计算机设备的硬件结构示意图。
具体实施方式
[0024]为了使本专利技术的目的、技术方案和优点更加清楚,下面结合附图对本专利技术具体实施例作进一步的详细描述。可以理解的是,此处所描述的具体实施例仅仅用于解释本专利技术,而非对本专利技术的限定。
[0025]另外还需要说明的是,为了便于描述,附图中仅示出了与本专利技术相关的部分而非全部内容。在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
[0026]实施例一
[0027]图1为本专利技术实施例一提供的一种单片机编译链接方法的流程图,本实施例可适用于库函数较多或者用户仅修改少量模型代码的情况,该方法可以由单片机编译链接装置来执行,该装置可以通过软件和/或硬件的形式实现。具体包括如下步骤:
[0028]S110、获取当前文件中的不可变代码编译链接生成对应的第一可执行文件,所述第一可执行文件中的第一数据信息存放在第一不可变FLASH存储区,所述第一可执行文件中的第二数据信息存放在第一不可变RAM存储区。
[0029]其中,当前文件为单片机待编译链接的单片机库文件中所有的.o文件。
[0030]可以理解的是,在获取当前文件中的不可变代码编译链接生成对应的第一可执行文件之前,还包括:将原始文件通过编译器编译为当前文件。
[0031]具体的,通过所有.c文件(即原始文件)的C代码通过编译器编译为单片机库文件中的.o文件。
[0032]进一步的,当前文件中的不可变代码为基本不会被修改的代码,例如,库函数、驱动等代码,当前文件中的不可变代码可以存放于lib存储区。正如现有单片机编译链接方法中对当前文件中的不可变代码也进行了重新的编译链接,则导致单片机编译链接时间耗时较长,在本实施例中,预先将当前文件中的不可变代码单独存放于指定的lib存储区,而在单片机进行编译链接时不再对当前文件中的不可变代码进行重新的编译链接,从而缩短了单片机的编译链接的时间。
[0033]其中,所述第一数据信息为函数和常量,所述第二数据信息为变量。所述第二数据信息中变量无初始值或初始值为零。
[0034]第一不可变FLASH存储区为第一不可变FLASH_lib存储区,第一不可变RAM存储区为第一不可变RAM_lib存储区。
[0035]具体的,将当前文件中的不可变代码经过编译链接生成对应的第一可执行文件,因此为,将第一可执行文件中的第一数据信息存放在第一不可变FLASH_lib存储区,即将第一本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种单片机编译链接方法,其特征在于,包括:获取当前文件中的不可变代码编译链接生成对应的第一可执行文件,所述第一可执行文件中的第一数据信息存放在第一不可变FLASH存储区,所述第一可执行文件中的第二数据信息存放在第一不可变RAM存储区;将所述当前文件中的可变代码编译链接生成对应的第二可执行文件,所述第二可执行文件中的第一数据信息存放在第二可变FLASH存储区,所述第二可执行文件中的第二数据信息存放在第二可变RAM存储区;根据所述第一可执行文件和所述第二可执行文件生成目标文件。2.根据权利要求1所述的方法,其特征在于,在获取当前文件中的不可变代码编译链接生成对应的第一可执行文件之前,还包括:将原始文件通过编译器编译为当前文件。3.根据权利要求1所述的方法,其特征在于,在将所述当前文件中的可变代码编译链接生成对应的第二可执行文件之前,还包括:根据预设条件对可变代码进行修改;将所述当前文件中的可变代码编译链接生成对应的第二可执行文件,包括:将所述当前文件中修改后的可变代码编译链接生成对应的第二可执行文件。4.根据权利要求1所述的方法,其特征在于,根据所述第一可执行文件和所述第二可执行文件生成目标文件,包括:根据所述第一可执行文件中的第一数据信息和所述第二可执行文件中的第一数据信息生成FLASH存储区文件,以及所述第一可执行文件中的第二数据信息和所述第二可执行文件中的第二数据信息生成RAM存储区文件;将所述FLASH存储区文件和所述RAM存储区文件合并生成所述目标文件。5.根据权利要求1所述的方法,其特征在于,所述第二可执行文件中的...

【专利技术属性】
技术研发人员:刘晓波许晓梦韩国梁史家涛
申请(专利权)人:潍柴动力股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1