一种嵌入式设备的程序烧写方法、装置、存储介质及终端与流程

文档序号:29924312发布日期:2022-05-07 10:31阅读:93来源:国知局
一种嵌入式设备的程序烧写方法、装置、存储介质及终端与流程

1.本发明涉及计算机技术领域,特别涉及一种嵌入式设备的程序烧写方法、装置、存储介质及终端。


背景技术:

2.随着信息化技术的发展,嵌入式系统因其高效、低成本、高可靠性、丰富的代码以及应用程序可扩展性、可移植性等一系列优点,目前已越来越成为工业系统和民用系统的主力军,尤其在信息化产品中,越来越多地应用到嵌入式系统。嵌入式系统可应用于人类工作与生活的各个领域,具有极其广阔的应用前景。嵌入式系统的不断发展离不开系统版本迭代。
3.在现有的技术方案中,目前嵌入式软件应用中,对版本迭代的方法不外两种,一种是进行烧写,一种是升级。嵌入式烧写一般采用usb或者sd卡的方式进行烧写,这些方法都有一个共同的缺点就是必须在设备现场进行操作,无法进行远程操作。升级的方法通常都不会覆盖整个闪存区域,例如将一个分区固定不动,里面存放一个升级管理程序例如ubootloader,使用该ubootloader进行对其他区域的升级,这种方法的弊端就是总有一个分区使不能动的,例如想要占用这块分区或者对这块分区进行升级都是不可以的。因此,现有的嵌入式系统的版本迭代效率低下,同时浪费了存储空间。


技术实现要素:

4.本技术实施例提供了一种嵌入式设备的程序烧写方法、装置、存储介质及终端。为了对披露的实施例的一些方面有一个基本的理解,下面给出了简单的概括。该概括部分不是泛泛评述,也不是要确定关键/重要组成元素或描绘这些实施例的保护范围。其唯一目的是用简单的形式呈现一些概念,以此作为后面的详细说明的序言。
5.第一方面,本技术实施例提供了一种嵌入式设备的程序烧写方法,应用于服务端,方法包括:
6.采用安全外壳协议与嵌入式设备建立远程链接;
7.通过远程链接登录嵌入式设备,并查询和配置嵌入式设备中u-boot的环境变量,以及重启u-boot;
8.控制嵌入式设备运行配置的环境变量,使嵌入式设备从服务端下载firmware固件到内存,并使嵌入式设备在内存中启动firmware固件;其中,firmware固件包括内核、设备树、ramdisk文件系统;
9.根据启动的firmware固件对嵌入式设备进行程序烧写。
10.可选的,查询和配置嵌入式设备中u-boot的环境变量,包括:
11.将预设环境变量处理组件发送至嵌入式设备;
12.控制所述嵌入式设备执行所述预设环境变量配置命令,得到配置后的u-boot的环境变量;其中,所述嵌入式设备采用预设环境变量处理组件执行所述预设环境变量配置命
令。
13.可选的,预设环境变量处理组件包括环境变量查询工具和环境变量设置工具;
14.控制所述嵌入式设备执行所述预设环境变量配置命令,得到配置后的u-boot的环境变量,包括:
15.控制嵌入式设备采用环境变量查询工具查询u-boot环境变量,得到u-boot的初始环境变量;
16.控制嵌入式设备采用环境变量设置工具配置u-boot环境变量,以使初始环境变量修改为所述配置后的u-boot的环境变量。
17.可选的,控制嵌入式设备运行配置的环境变量,以使嵌入式设备从服务端下载内核、设备树、ramdisk到内存:包括:
18.启动基于简单文件传送协议的文件传输工具;
19.在文件传输工具中设置firmware固件所在路径,得到设置路径的文件传输工具;
20.控制所述嵌入式设备运行配置后的u-boot的环境变量,以使嵌入式设备通过设置路径的文件传输工具从服务端下载内核、设备树、ramdisk到内存。
21.可选的,根据启动的firmware固件对嵌入式设备进行程序烧写,包括:
22.对嵌入式设备中启动后的firmware固件发送分区脚本;
23.firmware固件执行接收的分区脚本对闪存进行分区操作,并对分区后的多个分区进行格式化操作,得到分区集合;
24.对嵌入式设备中启动后的firmware固件发送程序烧写脚本;
25.对嵌入式设备中启动后的firmware固件发送烧写程序包;
26.firmware固件执行接收的程序烧写脚本,以使烧写程序包烧写至分区集合中各个分区。
27.可选的,执行接收的程序烧写脚本,以使烧写程序包烧写至分区集合中各个分区,包括:
28.根据程序烧写脚本中路径创建指令建立路径;
29.将分区集合关联到路径上,得到关联分区的目标路径;
30.通过程序烧写脚本中文件解压命令将烧写程序包解压至目标路径中。
31.可选的,方法包括:
32.将初始环境变量进行缓存;
33.当所述程序烧写结束后,将配置后的所述u-boot的环境变量还原为所述缓存的所述初始环境变量,并重启嵌入式设备。
34.第二方面,本技术实施例提供了一种嵌入式设备的程序烧写装置,应用于服务端,装置包括:
35.链接建立模块,用于采用安全外壳协议与嵌入式设备建立远程链接;
36.环境变量设置模块,用于通过远程链接登录嵌入式设备,并查询和配置嵌入式设备中u-boot的环境变量,以及重启u-boot;
37.文件下载模块,用于控制嵌入式设备运行配置的环境变量,使嵌入式设备从服务端下载firmware固件到内存,并使嵌入式设备在内存中启动firmware固件;其中,firmware固件包括内核、设备树、ramdisk文件系统;
38.程序烧写模块,用于根据启动的firmware固件对嵌入式设备进行程序烧写。
39.第三方面,本技术实施例提供一种计算机存储介质,计算机存储介质存储有多条指令,指令适于由处理器加载并执行上述的方法步骤。
40.第四方面,本技术实施例提供一种终端,可包括:处理器和存储器;其中,存储器存储有计算机程序,计算机程序适于由处理器加载并执行上述的方法步骤。
41.本技术实施例提供的技术方案可以包括以下有益效果:
42.在本技术实施例中,嵌入式设备的程序烧写装置首先采用安全外壳协议与嵌入式设备建立远程链接,再通过远程链接登录嵌入式设备,并查询和配置嵌入式设备中u-boot的环境变量,以及重启u-boot,然后控制嵌入式设备运行配置的环境变量,以使嵌入式设备从服务端下载firmware固件到内存,并使嵌入式设备在内存中启动firmware固件,最后根据启动的firmware固件对嵌入式设备进行程序烧写。由于本技术通过服务端与嵌入式设备建立远程链接,服务端通过该链接重新设置嵌入式设备的u-boot环境变量,使得该设备下载firmware固件到内存在内存中运行,该固件中包括ramdisk文件系统,ramdisk系统只运行在内存中且不依赖闪存分区,从而在不浪费闪存分区的基础上,实现了远程对嵌入式设备进行程序烧写,进而提升了版本迭代效率。
43.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
44.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
45.图1是本技术实施例提供的一种嵌入式设备的程序烧写方法的流程示意图;
46.图2是本技术实施例提供的一种嵌入式设备的程序烧写过程的过程示意图;
47.图3是本技术实施例提供的一种嵌入式设备的程序烧写装置的结构示意图;
48.图4是本技术实施例提供的一种终端的结构示意图。
具体实施方式
49.以下描述和附图充分地示出本发明的具体实施方案,以使本领域的技术人员能够实践它们。
50.应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
51.下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
52.在本发明的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。此外,在本发明的描述中,除非另有说明,“多个”是指两个
或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
53.本技术提供了一种嵌入式设备的程序烧写方法、装置、存储介质及终端,以解决上述相关技术问题中存在的问题。本技术提供的技术方案中,由于本技术通过服务端与嵌入式设备建立远程链接,服务端通过该链接重新设置嵌入式设备的u-boot环境变量,使得该设备下载firmware固件到内存在内存中运行,该固件中包括ramdisk文件系统,ramdisk系统只运行在内存中且不依赖闪存分区,从而在不浪费闪存分区的基础上,实现了远程对嵌入式设备进行程序烧写,进而提升了版本迭代效率,下面采用示例性的实施例进行详细说明。
54.下面将结合附图1-附图2,对本技术实施例提供的嵌入式设备的程序烧写方法进行详细介绍。该方法可依赖于计算机程序实现,可运行于基于冯诺依曼体系的嵌入式设备的程序烧写装置上。该计算机程序可集成在应用中,也可作为独立的工具类应用运行。
55.请参见图1,为本技术实施例提供了一种嵌入式设备的程序烧写方法的流程示意图。如图1所示,本技术实施例的方法可以包括以下步骤:
56.s101,采用安全外壳协议与嵌入式设备建立远程链接;
57.其中,安全外壳协议简称ssh,是远程登录会话和其他网络服务提供安全性的协议。
58.通常,ssh提供两种级别的验证。第一种级别是基于口令的安全验证,即服务端通过嵌入式设备的账号和口令,就可以登录到嵌入式设备。二者交互时所有传输的数据都会被加密,从而保障了数据传输的安全。第二种是基于密钥的安全验证,需要依靠公钥和私钥。服务端连接嵌入式设备时,服务端会向嵌入式设备发出请求,嵌入式设备收到请求之后,先从自身保存的公钥表中获取服务端的公匙,然后把该公钥和请求中的公钥进行比较,如果两个一致,嵌入式设备就用公匙加密“质询”并把它发送给服务端,服务端收到“质询”之后就把私钥发送给嵌入式设备。
59.在一种可能的实现方式中,服务端采用ssh提供两种级别的验证方式与远程的嵌入式设备建立远程链接。
60.s102,通过远程链接登录嵌入式设备,并查询和配置嵌入式设备中u-boot的环境变量,以及重启u-boot;
61.在本技术实施例中,服务端与嵌入式设备建立链接后,首先通过远程链接登录嵌入式设备,然后将预设环境变量处理组件发送至嵌入式设备,最后控制所述嵌入式设备执行所述预设环境变量配置命令,得到配置后的u-boot的环境变量;其中,所述嵌入式设备采用预设环境变量处理组件执行所述预设环境变量配置命令。
62.具体的,预设环境变量处理组件包括环境变量查询工具和环境变量设置工具。在生成配置后的u-boot的环境变量时,首先控制嵌入式设备采用环境变量查询工具查询u-boot环境变量,得到u-boot的初始环境变量,然后控制嵌入式设备采用环境变量设置工具配置u-boot环境变量,以使初始环境变量修改为所述配置后的u-boot的环境变量。
63.具体的,环境变量查询工具为fw_setenv工具,环境变量设置工具为fw_printenv工具。
64.在一种可能的实现方式中,服务端通过ssh远程链接嵌入式设备,并通过ftp服务给设备端发送fw_setenv工具和fw_printenv工具,服务端通过远程ssh登录嵌入式设备并执行fw_printenv bootcmd,执行后可查询到嵌入式设备内u-boot的环境变量,并保存。最后服务端通过控制嵌入式设备执行环境变量设置代码将查到的u-boot的环境变量进行重置,以及重启u-boot。
65.例如,环境变量设置代码为fw_setenv bootcmd tftp${fdt_addr}${fdt_file}&&tftp${loadaddr}${image}&&tftp${initrd_addr}${ramdisk_file};then bootz${loadaddr}${initrd_addr}${fdt_addr};该命令功能是设置uboot的环境变量,fw_setenv是一个可以设置uboot环境变量的工具,后面的指令是将环境变量bootcmd的参数修改为“tftp${fdt_addr}${fdt_file}&&tftp${loadaddr}${image}&&tftp${initrd_addr}${ramdisk_file};then bootz${loadaddr}${initrd_addr}${fdt_addr}”参数的第一个分号之前是三条tftp命令,是让uboot重启之后使用tftp服务依次从本地电脑下载fdt文件内核文件和ramdisk文件到设备的内存中,“bootz${loadaddr}${initrd_addr}${fdt_addr}”命令,是让u-boot加载内存中刚刚下载的ftd、内核和ramdisk文件,进入ramdisk类型的文件系统。ramdiak文件系统好处是只运行在内存中,不依赖闪存,所以后续可以对闪存进行任何操作。
66.具体的,fw_setenv和fw_printenv是两个u-boot内自带的可以在文件系统环境中设置和查询u-boot的环境变量的工具。u-boot为是一个主要用于嵌入式系统的引导加载程序。由于u-boot的环境变量一般只能在u-boot启动后用串口修改,所以想要用网络链接设备并修改u-boot的环境变量就必须用到这两个工具,fw_setenv是设置,fw_printenv是查询。
67.s103,控制嵌入式设备运行配置的环境变量,使嵌入式设备从服务端下载firmware固件到内存,并使嵌入式设备在内存中启动firmware固件;
68.其中,firmware固件包括内核、设备树、ramdisk文件系统。
69.通常,ramdisk是文件系统的一种,相比于rootfs区别在于,ramdisk只运行在内存中,不依赖闪存,所以他的运行速度更快,而且可以在运行时对闪存进行任何操作。
70.在本技术实施例中,首先启动基于简单文件传送协议的文件传输工具,然后在文件传输工具中设置firmware固件所在路径,得到设置路径的文件传输工具,最后控制所述嵌入式设备运行配置后的u-boot的环境变量,以使嵌入式设备通过设置路径的文件传输工具从服务端下载内核、设备树、ramdisk到内存。
71.在一种可能的实现方式中,服务端打开基于简单文件传送协议tftp的文件传输工具,该工具中的路径指向firmware固件所在路径,嵌入式设备会在启动u-boot之后自动运行重新配置后的u-boot的环境变量,使得从服务端下载内核、设备树、ramdisk到内存里,然后直接从内存启动系统。服务端等待到系统重新启动后,重新启动后的系统用的使ramdisk,所以是一个单纯在内存中运行的系统,接下来可以对闪存进行任意操作。
72.具体的,tftp是tcp/ip协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务。由于u-boot中没有ftp服务,所以选用tftp服务作为文件传输方式。
73.s104,根据启动的firmware固件对嵌入式设备进行程序烧写。
74.在本技术实施例中,在进行程序烧写时,首先对嵌入式设备中启动后的firmware固件发送分区脚本,firmware固件执行接收的分区脚本对闪存进行分区操作,并对分区后的多个分区进行格式化操作,得到分区集合,然后对嵌入式设备中启动后的firmware固件发送程序烧写脚本,其次对嵌入式设备中启动后的firmware固件发送烧写程序包,最后firmware固件执行接收的程序烧写脚本,以使烧写程序包烧写至分区集合中各个分区。
75.具体的,在执行接收的程序烧写脚本,以使烧写程序包烧写至分区集合中各个分区时,首先根据程序烧写脚本中路径创建指令建立路径,然后将分区集合关联到路径上,得到关联分区的目标路径,最后通过程序烧写脚本中文件解压命令将烧写程序包解压至目标路径中。
76.进一步地,还需要将初始环境变量进行缓存,当所述程序烧写结束后,将配置后的所述u-boot的环境变量还原为所述缓存的所述初始环境变量,并重启嵌入式设备。
77.在一种可能的实现方式中,服务端发送分区指令,并使用ftp传输分区脚本到嵌入式设备,嵌入式设备接收分区脚本开始分区操作,和对分区的格式化操作,服务端通过ssh远程查询当前设备分区脚本运行状态,查询到分区脚本运行结束,即为分区结束。再进行对闪存的操作,上面提到的使用ramdisk作为文件系统就可以不依赖闪存,对闪存进行格式化分区等操作,这个是以往升级方案没有的。
78.进一步地,服务端对嵌入式设备发送烧写指令,并通过ftp传输烧写包到嵌入式设备,嵌入式设备开始根据服务端指令逐步将烧写包烧写进闪存的各个分区,烧写过程为:先创建路径,再将要烧写的分区mount到该路径中,最后使用解压命令将烧写包解压到该路径中。这一步就是普通的文件烧写过程,将下载的压缩包解压到相应的分区内。
79.进一步地,烧写过程中服务端通过ssh远程登录嵌入式设备查询当前烧写进度,烧写结束再次将保存的u-boot启动命令使用命令fw_setenv设置回去,最后重启设备,完成远程烧写。
80.具体的,文件传输协议(file transfer protocol,ftp)是用于在网络上进行文件传输的一套标准协议,它工作在osi模型的第七层,tcp模型的第四层,即应用层,使用tcp传输而不是udp,客户在和服务器建立连接前要经过一个“三次握手”的过程,保证客户与服务器之间的连接是可靠的,而且是面向连接,为数据传输提供可靠保证。由于文件系统内操作ftp更方便,所以在文件系统内选用ftp服务作为文件传输方式。闪存是一种嵌入式非易失性存储器系统,相当于电脑主机的固态硬盘,对他相应的操作和电脑主机一样,有分区和格式化等。
81.例如图2所示,图2是嵌入式设备的程序烧写过程的过程示意框图,包括服务端和嵌入式设备,服务端通过ssh远程链接嵌入式设备(以下称作客户端),并通过ftp服务给设备端发送fw_setenv和fw_printenv工具,服务端通过远程ssh登录执行fw_printenv bootcmd查询当前设备u-boot启动命令,并保存;服务端通过ssh远程登录设备并执行fw_setenv bootcmd tftp${fdt_addr}${fdt_file}&&tftp${loadaddr}${image}&&tftp${initrd_addr}${ramdisk_file};then bootz${loadaddr}${initrd_addr}${fdt_addr};然后重启设备;服务端开打tftp工具,路径指向firmware固件所在路径,客户端会在启动uboot之后自动运行刚才写入的tftp指令从服务器端下载内核、设备树、ramdisk到内存里,然后直接从内存启动系统;服务器端一直等待系统重新启动,重新启动后的系统用的使
ramdisk,所以是一个单纯在内存中运行的系统,接下来可以对闪存进行任意操作;服务器端发送分区指令,并使用ftp传输分区脚本到设备端,设备端接收分区脚本开始分区操作,和对分区的格式化操作,分区结束后告知服务器端;服务器端对设备端发送烧写指令,并通过ftp传输烧写包到设备端,设备端开始根据服务端指令逐步将烧写包烧写进闪存的各个分区;烧写过程中服务器端通过ssh远程登录客户端查询当前烧写进度,烧写结束再次将a步骤保存的uboot启动命令使用fw_setenv设置回去,最后重启设备,完成远程烧写。
82.在本技术实施例中,嵌入式设备的程序烧写装置首先采用安全外壳协议与嵌入式设备建立远程链接,再通过远程链接登录嵌入式设备,并查询和配置嵌入式设备中u-boot的环境变量,以及重启u-boot,然后控制嵌入式设备运行配置的环境变量,以使嵌入式设备从服务端下载firmware固件到内存,并使嵌入式设备在内存中启动firmware固件,最后根据启动的firmware固件对嵌入式设备进行程序烧写。由于本技术通过服务端与嵌入式设备建立远程链接,服务端通过该链接重新设置嵌入式设备的u-boot环境变量,使得该设备下载firmware固件到内存在内存中运行,该固件中包括ramdisk文件系统,ramdisk系统只运行在内存中且不依赖闪存分区,从而在不浪费闪存分区的基础上,实现了远程对嵌入式设备进行程序烧写,进而提升了版本迭代效率。
83.下述为本发明装置实施例,可以用于执行本发明方法实施例。对于本发明装置实施例中未披露的细节,请参照本发明方法实施例。
84.请参见图3,其示出了本发明一个示例性实施例提供的嵌入式设备的程序烧写装置的结构示意图,应用于服务端。该嵌入式设备的程序烧写装置可以通过软件、硬件或者两者的结合实现成为终端的全部或一部分。该装置1包括链接建立模块10、环境变量设置模块20、文件下载模块30、程序烧写模块40。
85.链接建立模块10,用于采用安全外壳协议与嵌入式设备建立远程链接;
86.环境变量设置模块20,用于通过远程链接登录嵌入式设备,并查询和配置嵌入式设备中u-boot的环境变量,以及重启u-boot;
87.文件下载模块30,用于控制嵌入式设备运行配置的环境变量,使嵌入式设备从服务端下载firmware固件到内存,并使嵌入式设备在内存中启动firmware固件;其中,firmware固件包括内核、设备树、ramdisk文件系统;
88.程序烧写模块40,用于根据启动的firmware固件对嵌入式设备进行程序烧写。
89.需要说明的是,上述实施例提供的嵌入式设备的程序烧写装置在执行嵌入式设备的程序烧写方法时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的嵌入式设备的程序烧写装置与嵌入式设备的程序烧写方法实施例属于同一构思,其体现实现过程详见方法实施例,这里不再赘述。
90.上述本技术实施例序号仅仅为了描述,不代表实施例的优劣。
91.在本技术实施例中,嵌入式设备的程序烧写装置首先采用安全外壳协议与嵌入式设备建立远程链接,再通过远程链接登录嵌入式设备,并查询和配置嵌入式设备中u-boot的环境变量,以及重启u-boot,然后控制嵌入式设备运行配置的环境变量,以使嵌入式设备从服务端下载firmware固件到内存,并使嵌入式设备在内存中启动firmware固件,最后根
据启动的firmware固件对嵌入式设备进行程序烧写。由于本技术通过服务端与嵌入式设备建立远程链接,服务端通过该链接重新设置嵌入式设备的u-boot环境变量,使得该设备下载firmware固件到内存在内存中运行,该固件中包括ramdisk文件系统,ramdisk系统只运行在内存中且不依赖闪存分区,从而在不浪费闪存分区的基础上,实现了远程对嵌入式设备进行程序烧写,进而提升了版本迭代效率。
92.本发明还提供一种计算机可读介质,其上存储有程序指令,该程序指令被处理器执行时实现上述各个方法实施例提供的嵌入式设备的程序烧写方法。
93.本发明还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各个方法实施例的嵌入式设备的程序烧写方法。
94.请参见图4,为本技术实施例提供了一种终端的结构示意图。如图4所示,终端1000可以包括:至少一个处理器1001,至少一个网络接口1004,用户接口1003,存储器1005,至少一个通信总线1002。
95.其中,通信总线1002用于实现这些组件之间的连接通信。
96.其中,用户接口1003可以包括显示屏(display)、摄像头(camera),可选用户接口1003还可以包括标准的有线接口、无线接口。
97.其中,网络接口1004可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。
98.其中,处理器1001可以包括一个或者多个处理核心。处理器1001利用各种借口和线路连接整个电子设备1000内的各个部分,通过运行或执行存储在存储器1005内的指令、程序、代码集或指令集,以及调用存储在存储器1005内的数据,执行电子设备1000的各种功能和处理数据。可选的,处理器1001可以采用数字信号处理(digital signal processing,dsp)、现场可编程门阵列(field-programmable gate array,fpga)、可编程逻辑阵列(programmable logic array,pla)中的至少一种硬件形式来实现。处理器1001可集成中央处理器(central processing unit,cpu)、图像处理器(graphics processing unit,gpu)和调制解调器等中的一种或几种的组合。其中,cpu主要处理操作系统、用户界面和应用程序等;gpu用于负责显示屏所需要显示的内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器1001中,单独通过一块芯片进行实现。
99.其中,存储器1005可以包括随机存储器(random access memory,ram),也可以包括只读存储器(read-only memory)。可选的,该存储器1005包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。存储器1005可用于存储指令、程序、代码、代码集或指令集。存储器1005可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现上述各个方法实施例的指令等;存储数据区可存储上面各个方法实施例中涉及到的数据等。存储器1005可选的还可以是至少一个位于远离前述处理器1001的存储装置。如图4所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及嵌入式设备的程序烧写应用程序。
100.在图4所示的终端1000中,用户接口1003主要用于为用户提供输入的接口,获取用户输入的数据;而处理器1001可以用于调用存储器1005中存储的嵌入式设备的程序烧写应用程序,并具体执行以下操作:
101.采用安全外壳协议与嵌入式设备建立远程链接;
102.通过远程链接登录嵌入式设备,并查询和配置嵌入式设备中u-boot的环境变量,以及重启u-boot;
103.控制嵌入式设备运行配置的环境变量,使嵌入式设备从服务端下载firmware固件到内存,并使嵌入式设备在内存中启动firmware固件;其中,firmware固件包括内核、设备树、ramdisk文件系统;
104.根据启动的firmware固件对嵌入式设备进行程序烧写。
105.在一个实施例中,处理器1001在执行查询和配置嵌入式设备中u-boot的环境变量时,具体执行以下操作:
106.将预设环境变量处理组件发送至嵌入式设备;
107.控制所述嵌入式设备执行所述预设环境变量配置命令,得到配置后的u-boot的环境变量;其中,所述嵌入式设备采用预设环境变量处理组件执行所述预设环境变量配置命令。
108.在一个实施例中,处理器1001在执行控制所述嵌入式设备执行所述预设环境变量配置命令,得到配置后的u-boot的环境变量;其中,所述嵌入式设备采用预设环境变量处理组件执行所述预设环境变量配置命令时,具体执行以下操作:
109.控制嵌入式设备采用环境变量查询工具查询u-boot环境变量,得到u-boot的初始环境变量;
110.控制嵌入式设备采用环境变量设置工具配置u-boot环境变量,以使初始环境变量修改为所述配置后的u-boot的环境变量。
111.在一个实施例中,处理器1001在执行控制嵌入式设备运行配置的环境变量,以使嵌入式设备从服务端下载内核、设备树、ramdisk到内存时,具体执行以下操作:
112.启动基于简单文件传送协议的文件传输工具;
113.在文件传输工具中设置firmware固件所在路径,得到设置路径的文件传输工具;
114.控制所述嵌入式设备运行配置后的u-boot的环境变量,以使嵌入式设备通过设置路径的文件传输工具从服务端下载内核、设备树、ramdisk到内存。
115.在一个实施例中,处理器1001在执行根据启动的firmware固件对嵌入式设备进行程序烧写时,具体执行以下操作:
116.对嵌入式设备中启动后的firmware固件发送分区脚本;
117.firmware固件执行接收的分区脚本对闪存进行分区操作,并对分区后的多个分区进行格式化操作,得到分区集合;
118.对嵌入式设备中启动后的firmware固件发送程序烧写脚本;
119.对嵌入式设备中启动后的firmware固件发送烧写程序包;
120.firmware固件执行接收的程序烧写脚本,以使烧写程序包烧写至分区集合中各个分区。
121.在一个实施例中,处理器1001在执行接收的程序烧写脚本,以使烧写程序包烧写至分区集合中各个分区时,具体执行以下操作:
122.根据程序烧写脚本中路径创建指令建立路径;
123.将分区集合关联到路径上,得到关联分区的目标路径;
124.通过程序烧写脚本中文件解压命令将烧写程序包解压至目标路径中。
125.在一个实施例中,处理器1001还执行以下操作:
126.将初始环境变量进行缓存;
127.当所述程序烧写结束后,将配置后的所述u-boot的环境变量还原为所述缓存的所述初始环境变量,并重启嵌入式设备。
128.在本技术实施例中,嵌入式设备的程序烧写装置首先采用安全外壳协议与嵌入式设备建立远程链接,再通过远程链接登录嵌入式设备,并查询和配置嵌入式设备中u-boot的环境变量,以及重启u-boot,然后控制嵌入式设备运行配置的环境变量,以使嵌入式设备从服务端下载firmware固件到内存,并使嵌入式设备在内存中启动firmware固件,最后根据启动的firmware固件对嵌入式设备进行程序烧写。由于本技术通过服务端与嵌入式设备建立远程链接,服务端通过该链接重新设置嵌入式设备的u-boot环境变量,使得该设备下载firmware固件到内存在内存中运行,该固件中包括ramdisk文件系统,ramdisk系统只运行在内存中且不依赖闪存分区,从而在不浪费闪存分区的基础上,实现了远程对嵌入式设备进行程序烧写,进而提升了版本迭代效率。
129.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,嵌入式设备的程序烧写的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,的存储介质可为磁碟、光盘、只读存储记忆体或随机存储记忆体等。
130.以上所揭露的仅为本技术较佳实施例而已,当然不能以此来限定本技术之权利范围,因此依本技术权利要求所作的等同变化,仍属本技术所涵盖的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1