启动应用的方法、系统、服务器和存储介质与流程

文档序号:26003585发布日期:2021-07-23 21:21阅读:71来源:国知局
启动应用的方法、系统、服务器和存储介质与流程

本发明实施例涉及物联网领域,特别涉及启动应用的方法、系统、服务器和存储介质。



背景技术:

在嵌入式操作系统中,引导启动程序(bootloader)初始化硬件设备、建立内存空间映射图,从而将系统的软硬件环境带到一个合适状态,以便为最终调用操作系统内核准备好正确的环境。在物联网设备中,不需要加载操作系统内核或者加载极小的实时操作系统,bootloader来完成嵌入式系统启动和系统软件加载工作的程序,引导系统启动和应用软件加载。

然而,常规的引导启动程序需要技术人员针对当前设备和芯片进行开发,通过编写出引导启动的代码,然后将编写的代码通过ide工具或者编译链编译成二进制文件之后写入到flash中才可以使用,无法进行程序生成编译的流程化,使引导启动程序的制作及配置需要花费许多人力和时间成本。



技术实现要素:

本发明实施方式的目的在于提供一种启动应用的方法、系统、服务器和存储介质,无需进行额外的开发,自动生成与物联网设备相匹配的引导启动程序。

为解决上述技术问题,本发明的实施方式提供了一种启动应用的方法,包括以下步骤:

通过客户端获取用户的需求信息和所述物联网设备的硬件信息;

根据所述硬件信息获取对应的引导启动程序的代码文件;

对所述物联网设备按照所述需求信息和硬件信息进行配置;

对所述代码文件进行编译,发送至配置后的所述物联网设备,供所述物联网设备启动应用。

本发明的实施方式还提供了一种启动应用的系统,包括:

接收模块,用于通过客户端获取用户的需求信息和所述物联网设备的硬件信息;

生成模块,用于根据所述硬件信息获取对应的引导启动程序的代码文件;

配置模块,用于对所述物联网设备按照所述需求信息和硬件信息进行配置;

发送模块,用于对所述代码文件进行编译,发送至配置后的所述物联网设备,供所述物联网设备启动应用。

本发明的实施方式还提供了一种服务器,包括:

至少一个处理器;以及,

与所述至少一个处理器通信连接的存储器;其中,

所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行的启动应用的方法。

本发明的实施方式还提供了一种计算机存储介质,包括:存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现启动应用的方法。

本发明实施方式相对于现有技术而言,根据不同的物联网设备匹配出相应的引导启动程序的代码,使本发明可以适用于不同的设备上,同时自动化的根据用户的需求对设备进行相应的处理,是用户只需要输入设备信息和需求内容便可以对设备进行配置和嵌入程序,无需技术人员的再次开发,节省了人工和时间成本;并且,获取的代码文件除了一般意义上的引导启动程序,还包括启动应用升级的功能,使一套代码可以实现多种功能

另外,在所述通过预先设备的脚本,结合所述型号,获取与所述物联网设备匹配的代码文件中,所述脚本用于调用不同型号的所述物联网设备可匹配的所述代码文件。通过调用不同类型的代码文件,使本发明可以适用于不同的设备,适配性更高。

另外,在所述对所述物联网设备按照所述需求信息和硬件信息进行配置中,包括:获取所述物联网设备的串口信息作为所述硬件信息,其中,所述串口信息至少包括串口类型;根据所述串口信息对所述串口进行配置。对设备的串口进行配置,使引导启动程序可以顺利嵌入设备中。

另外,在所述对所述代码文件按照所述硬件信息和所述需求信息进行配置中,包括:获取分区信息作为所述需求信息,其中所述分区信息包括所述引导启动区、数据存储区和应用存储区;对所述物联网设备按照所述分区信息进行配置。可以对设备按照需求信息进行配置,划分出不同的分区,方便设备的后续使用。

附图说明

一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。

图1是本发明的第一实施方式提供的启动应用的方法的流程图;

图2是本发明的第一实施方式提供的启动应用的方法中编译方法的流程图;

图3是本发明的第二实施方式提供的启动应用的方法的流程图;

图4是本发明的第三实施方式提供的启动应用的系统的结构示意图;

图5是本发明第五实施方式提供的服务器的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。

以下各个实施例的划分是为了描述方便,不应对本发明的具体实现方式构成任何限定,各个实施例在不矛盾的前提下可以相互结合相互引用。

本发明的第一实施方式涉及一种启动应用的方法。具体流程如图1所示。

步骤101,通过客户端获取用户的需求信息和所述物联网设备的硬件信息。

在本实施方式中,物联网设备主要指的是物联网设备中的芯片,未经设置的空白芯片通过串口与本发明的服务器相连,通过服务器对芯片进行配置,导入bootloader,供设备启动应用。

具体地,用户在客户端页面输入芯片设备的型号及存储空间,其中存储空间包括闪存(flashmemory)和随机存取存储器(randomaccessmemory,ram)。

一个具体实例,用户输入待配置的芯片型号为stm32f413zht6,flash为1.5mb,ram为320kb。

需求信息包括对芯片设备的存储空间的分区信息,包括各个分区的起始地址和分区大小。一般分为三个区:引导启动程序存储区、数据存储区和应用存储区。其中,引导启动程序存储区用于存放bootloader,数据存储区主要用于存储应用升级包,应用存储区用于存储物联网设备的应用程序。

步骤102,根据所述硬件信息获取对应的引导启动程序的代码文件。

在本实施方式中,脚本可以根据不同设备调用对应的不同的bootloader代码文件,包括通用代码文件和特殊型号代码文件。如果输入的芯片型号没有对应的代码文件,则使用通用代码文件,其中,本实施方式的脚本为在linux上运行的shell脚本。

具体地,硬件信息中的型号信息包含mcu内核及型号相关的宏,根据型号脚本确定该型号对应的内核及宏,如选择stm32l452xx就会在makefile里定义编译参数kernel=cortex-m4和stm32l452xx宏。

值得一提的是,可以在代码文件中加入id号,该id为bootloader唯一的编号,可以根据鉴权码校验该值,校验符合则可以进行其他操作,如进行升级等操作。

步骤103,对所述物联网设备按照所述需求信息和硬件信息进行配置。

在本实施方式中,根据步骤101可以得知需求信息包括分区信息,在flash中和ram中,按照分区信息进行配置。在flash中和在ram中的配置方法类似,此处仅具体说明flash配置。

具体地,引导启动程序存储区的起始地址和大小决定bootloader的bin文件的最大值和起始地址,如果bootloader不是在flash的起始地址,则修改中断向量表;应用存储区的起始地址和大小决定bootloader跳转位置和应用程序的bin文件的最大值;数据存储区的起始地址和大小决定升级包的起始地址和最大值,其中升级包的最大值为数据存储区大小减去两个block大小。这两个block分别为数据存储区的最后两个block,其中,最后一个block为参数区,倒数第二个为还原备份区。各区域的所在位置不得重叠。

需要说明的是,区域的划分类别仅为举例,可以根据实际需要进行不同的划分。

在各区域的起始地址和大小配置好后,脚本自动修改id文件和头文件。

在本实施方式中,硬件信息还包括串口信息,由于用户实际应用的多样性和不同平台的差异性决定串口不能有统一的驱动,因此需要用户上传客制化的串口驱动文件(usart.c和usart.h),脚本会根据配置的串口名称从usart.h中读取初始化函数等。

步骤104,对所述代码文件进行编译,发送至配置后的所述物联网设备,供所述物联网设备启动应用。

在本实施方式中,bootloader的编译器采用的是gcc-arm-none-eabi,在编译过程中,主要用到arm-none-eabi-gcc和arm-none-eabi-objcopy,编译成功生成bid.bin,编译失败(包含flash配置错误、ram配置错误和代码错误)报“builderror!”。

编译过程如图2所示,包括:

步骤201,对脚本调用的相应的代码文件“.c文件”进行预处理,生成预处理文件“.i文件”;

步骤202,对预处理文件进行编译生成汇编文件“.s文件”;

步骤203,对汇编文件进行汇编生成目标文件“.o文件”;

步骤204,目标文件结合其他目标文件、库文件和启动文件生成可执行文件;

步骤205,将生成的可执行文件发送至物联网设备。

具体地,需要用到以下工具:arm-none-eabi-gcc为c语言编译器,可以将.c文件转化为.o的执行文件;arm-none-eabi-g++为c++语言编译器,可以将.cpp文件转化为.o的执行文件;arm-none-eabi-ld为链接器即最后链接所有.o文件生成可执行文件的工具,一般我们不使用arm-none-eabi-ld的指令调用它,而是通过使用arm-none-eabi-gcc来调用,因为前者对c/cpp文件混合型生成的.o文件们的支持性不好,所以官方的说明书中也推荐使用arm-none-eabi-gcc指令来代替arm-none-eabi-ld;arm-none-eabi-objcopy将链接器生成的文件转化为bin/hex等烧写的格式,用以下载进入物联网设备;arm-none-eabi-gdb为工具链中的调试器,连接到调试器硬件产生的网络端口,就可以进行硬件和代码的调试。

需要说明的是,本实施方式采用gcc进行编译,但编译方法不限于此,除此之外还可使用keil或iar等进行编译,但gcc进行编译可以更适合在linux上运行。

上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包括相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。

本发明的第二实施例涉及一种启动应用的方法,应用于代码文件已发送至物联网设备后。具体步骤如图3所示:

步骤301,通过引导启动程序检测物联网设备的数据存储区中是否存在应用升级包;

在本实施方式中,应用升级包中只包含应用的新版本和旧版本之间差异部分的内容;

检测到存在应用升级包后执行步骤302。

步骤302,询问用户是否进行升级;

需要说明是的,可以设置用户进行交互后,确定用户的需求再进行升级的步骤303,也可以不进行询问,在检测到存在升级包后直接执行步骤303。

步骤303,将应用升级包加载到运行内存中,引导应用按照应用升级包内容进行升级。

通过引导启动程序的引导启动应用升级功能,使应用进入到升级页面,并按照应用升级包进行升级。

需要说明的是,由于应用升级包中数据为版本之间差异部分数据,因此采用差分升级的方式,升级速度更快,且减少应用升级包及升级进程占用的空间。

本发明第二实施方式涉及一种启动应用的系统,如图4所示,包括:

接收模块401,用于通过客户端获取用户的需求信息和所述物联网设备的硬件信息;

生成模块402,用于根据所述硬件信息获取对应的引导启动程序的代码文件;

配置模块403,用于对所述物联网设备按照所述需求信息和硬件信息进行配置;

发送模块404,用于对所述代码文件进行编译,发送至配置后的所述物联网设备,供所述物联网设备启动应用。

不难发现,本实施方式为与第一实施方式相对应的系统实施例,本实施方式可与第一实施方式互相配合实施。第一实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第一实施方式中。

值得一提的是,本实施方式中所涉及到的各模块均为逻辑模块,在实际应用中,一个逻辑单元可以是一个物理单元,也可以是一个物理单元的一部分,还可以以多个物理单元的组合实现。此外,为了突出本发明的创新部分,本实施方式中并没有将与解决本发明所提出的技术问题关系不太密切的单元引入,但这并不表明本实施方式中不存在其它的单元。

本发明的第三实施例涉及一种启动应用的系统,如图5所示,包括:

客户端501,用于获取用户的输入的硬件信息和需求信息。

服务器502,根据客户端获取的信息对设备进行配置,获得合适的bootloader,用于在物联网设备中启动应用。

物联网设备503,通过串口与服务器连接,用于下载bootloader,配置设备存储空间。

本发明第四实施方式涉及一种服务器,如图6所示,包括:

至少一个处理器601;以及,与所述至少一个处理器601通信连接的存储器602;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行启动应用的方法。

其中,存储器和处理器采用总线方式连接,总线可以包括任意数量的互联的总线和桥,总线将一个或多个处理器和存储器的各种电路链接在一起。总线还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口在总线和收发机之间提供接口。收发机可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。经处理器处理的数据通过天线在无线介质上进行传输,进一步,天线还接收数据并将数据传送给处理器。

处理器负责管理总线和通常的处理,还可以提供各种功能,包括定时,外围接口,电压调节、电源管理以及其他控制功能。而存储器可以被用于存储处理器在执行操作时所使用的数据。

本领域技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。

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