用于嵌入式系统的程序生成方法及程序局部更新方法与流程

文档序号:34718697发布日期:2023-07-07 17:21阅读:54来源:国知局
用于嵌入式系统的程序生成方法及程序局部更新方法与流程

本技术涉及嵌入式系统,特别是涉及一种用于嵌入式系统的程序生成方法及程序局部更新方法。


背景技术:

1、嵌入式终端设备是一种广泛用于工业现场、安防、消费、电力系统等领域的小型智能设备,主要由硬件和软件组成。从软件角度看可以将其分为两类:带操作系统和不带操作系统。对于那些带操作系统的如:vxworks、linux、wince等其应用升级比较方便,而且大部分系统已经自带了丰富的升级功能。对于那些不带操作系统的嵌入式终端设主要由成本比较低、功耗体积小的cpu和特定功能的专用软件组成,其主要特点是硬件资源(内存、flash)有限,功能比较简单,其应用软件的升级实现比较困难。随着应用场景的多样化,作为带软件的智能终端,应用功能升级成为越来越多的嵌入式设备必须具备的功能项。

2、目前在这类单一程序的嵌入式设备中比较常见的软件升级方法是单独再开发一个独立的升级程序,当需要升级时启动升级程序将应用程序完整的分段下载、烧录到设备,从而达到升级的目的。这种升级的特点是每次都要将一个完整的应用程序进行远程下载、烧录,这对流量、可靠性提出了挑战。针对这一弊端,有人提出了将应用程序分割成多个独立的小应用程序进行分段跳转运行、升级;也有人用增量方式进行远程升级。这些方法或多或少存在一些问题,分成多个独立的小应用程序这种方式增加了系统的复杂度,每个小应用程序都是一个完整的程序,每一程序在运行时之前都需要进行环境(堆栈初始化、全局变量初始化等)增加了系统运行时间、同时也增加了总的存储空间;对于增量式升级虽然可以减少传输通信流量,烧写程序没有减少。

3、现实中的升级需求大多数只需要对应用程序局部功能进行修改、增强,针对这类需求完全没有必要将整个程序进行升级,只需要对部分程序进行更新即可,对于非操作系统的单应用程序进行局部功能模块升级是本方法要解决的问题。


技术实现思路

1、基于此,有必要针对上述技术问题,提供一种能够对嵌入式系统中的程序进行局部更新的用于嵌入式系统的程序生成方法及程序局部更新方法。

2、一种用于嵌入式系统的程序生成方法,所述方法包括:

3、获取目标程序对应功能业务的源代码文件;

4、根据预设的划分方案将需要升级的功能部分对应的源代码与不需要升级的功能部分对应的源代码进行划分,并分别得到可升级部分文件以及固定部分文件;

5、在所述可升级部分文件中,提取其中被所述固定部分内容调用的函数,并对提取得到的所述被调用函数名称前增加预设前缀;

6、根据预设的存储方案对链接脚本文件进行编写,所述存储方案包括将所述可升级部分文件以及固定部分文件分别存储至存储区域第一片区和第二片区中,并对名称前具有预设前缀的被调用函数分配固定存储地址;

7、根据所述可升级部分文件、固定部分文件以及链接脚本文件进行编译,得到所述嵌入式系统可执行的二进制目标程序,所述二进制目标程序包括进行分段存储的固定部分程序以及可升级部分程序。

8、在其中一实施例中,所述预设的划分方案中包括:

9、将硬件驱动功能、flash烧写功能、硬件中断向量表以及通信协议话划分为不需要升级的固定部分;

10、将程序逻辑处理功能以及参数划分为需要升级的可升级部分。

11、在其中一实施例中,所述可升级部分文件中不包括需要被所述固定部分文件调用的全局变量。

12、在其中一实施例中,在对名称前具有预设前缀的被调用函数分配固定存储地址之后,还在该被调用函数前添加额外的编译代码,使得在进行编译时,将所述被调用函数存储在分配的固定存储地址指向的区域。

13、在其中一实施例中,所述存储区域为嵌入式系统的flash存储模块。

14、一种用于嵌入式系统的程序生成装置,所述装置包括:

15、源代码文件获取模块,用于获取目标程序对应功能业务的源代码文件;

16、固定/可升级部分划分模块,用于根据预设的划分方案将需要升级的功能部分对应的源代码与不需要升级的功能部分对应的源代码进行划分,并分别得到可升级部分文件以及固定部分文件;

17、被调用函数提取模块,用于在所述可升级部分文件中,提取其中被所述固定部分内容调用的函数,并对提取得到的所述被调用函数名称前增加预设前缀;

18、存储区域分配模块,用于根据预设的存储方案对链接脚本文件进行编写,所述存储方案包括将所述可升级部分文件以及固定部分文件分别存储至存储区域第一片区和第二片区中,并对名称前具有预设前缀的被调用函数分配固定存储地址;

19、目标程序编译模块,用于根据所述可升级部分文件、固定部分文件以及链接脚本文件进行编译,得到所述嵌入式系统可执行的二进制目标程序,所述二进制目标程序包括进行分段存储的固定部分程序以及可升级部分程序。

20、一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:

21、获取目标程序对应功能业务的源代码文件;

22、根据预设的划分方案将需要升级的功能部分对应的源代码与不需要升级的功能部分对应的源代码进行划分,并分别得到可升级部分文件以及固定部分文件;

23、在所述可升级部分文件中,提取其中被所述固定部分内容调用的函数,并对提取得到的所述被调用函数名称前增加预设前缀;

24、根据预设的存储方案对链接脚本文件进行编写,所述存储方案包括将所述可升级部分文件以及固定部分文件分别存储至存储区域第一片区和第二片区中,并对名称前具有预设前缀的被调用函数分配固定存储地址;

25、根据所述可升级部分文件、固定部分文件以及链接脚本文件进行编译,得到所述嵌入式系统可执行的二进制目标程序,所述二进制目标程序包括进行分段存储的固定部分程序以及可升级部分程序。

26、一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:

27、获取目标程序对应功能业务的源代码文件;

28、根据预设的划分方案将需要升级的功能部分对应的源代码与不需要升级的功能部分对应的源代码进行划分,并分别得到可升级部分文件以及固定部分文件;

29、在所述可升级部分文件中,提取其中被所述固定部分内容调用的函数,并对提取得到的所述被调用函数名称前增加预设前缀;

30、根据预设的存储方案对链接脚本文件进行编写,所述存储方案包括将所述可升级部分文件以及固定部分文件分别存储至存储区域第一片区和第二片区中,并对名称前具有预设前缀的被调用函数分配固定存储地址;

31、根据所述可升级部分文件、固定部分文件以及链接脚本文件进行编译,得到所述嵌入式系统可执行的二进制目标程序,所述二进制目标程序包括进行分段存储的固定部分程序以及可升级部分程序。

32、一种用于嵌入式系统的程序局部更新方法,所述程序更新方法应用于根据上述的程序生成方法生成的目标程序,所述程序局部更新方法包括:

33、获取更新文件,根据所述更新文件对目标程序的可升级部分文件进行修改;

34、根据修改后可升级部分文件、固定部分文件以及链接脚本文件进行编译,得到更新后的二进制目标程序;

35、在所述更新后的二进制目标程序中,提取更新后可升级部分程序文件;

36、将所述更新后可升级部分程序文件烧录至存储区域的第二片区中,以完成目标程序的局部更新。

37、在其中一实施例中,所述在所述更新后的二进制目标程序中,提取更新后可升级部分程序文件包括:

38、将所述更新后的二进制目标程序转化为bin文件格式;

39、在所述bin文件格式中从开头跳过第一片区长度处开始读取数据直到结束,读取得到的数据即为提取得到的所述更新后可升级部分程序文件。

40、一种用于嵌入式系统的程序局部更新装置,所述装置包括:

41、修改模块,用于获取更新文件,根据所述更新文件对目标程序的可升级部分文件进行修改;

42、更新编译模块,用于根据修改后可升级部分文件、固定部分文件以及链接脚本文件进行编译,得到更新后的二进制目标程序;

43、提取模块,用于在所述更新后的二进制目标程序中,提取更新后可升级部分程序文件;

44、局部更新模块,用于将所述更新后可升级部分程序文件烧录至存储区域的第二片区中,以完成目标程序的局部更新。

45、一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:

46、获取更新文件,根据所述更新文件对目标程序的可升级部分文件进行修改;

47、根据修改后可升级部分文件、固定部分文件以及链接脚本文件进行编译,得到更新后的二进制目标程序;

48、在所述更新后的二进制目标程序中,提取更新后可升级部分程序文件;

49、将所述更新后可升级部分程序文件烧录至存储区域的第二片区中,以完成目标程序的局部更新。

50、一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:

51、获取更新文件,根据所述更新文件对目标程序的可升级部分文件进行修改;

52、根据修改后可升级部分文件、固定部分文件以及链接脚本文件进行编译,得到更新后的二进制目标程序;

53、在所述更新后的二进制目标程序中,提取更新后可升级部分程序文件;

54、将所述更新后可升级部分程序文件烧录至存储区域的第二片区中,以完成目标程序的局部更新。

55、上述用于嵌入式系统的程序生成方法及程序局部更新方法,通过根据预设的划分方案将需要升级的功能部分对应的源代码与不需要升级的功能部分对应的源代码进行划分,并分别得到可升级部分文件以及固定部分文件,在可升级部分文件中,提取其需要被固定部分文件中内容调用的函数,并对提取得到的被调用函数名称前增加预设前缀,在对链接脚本文件进行编写时,将可升级部分文件以及固定部分文件分别存储至存储区域第一片区和第二片区,并对名称前具有预设前缀的被调用函数分配固定存储地址,最后根据可升级部分文件、固定部分文件以及链接脚本文件进行编译,得到嵌入式系统可执行的二进制目标程序,该二进制目标程序包括进行分段存储的固定部分程序以及可升级部分程序。基于本方法生成的用于嵌入式系统的程序可进行局部更新升级。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1