本发明涉及计算机技术领域,尤其涉及一种内核文件的加载方法、加载装置及加载系统。
背景技术:
在计算机的系统开发与调试过程中,常常需要对内核文件进行修改,一般在电脑上更改内核镜像,再加载到开发板上。
现有技术中,加载内核的方法主要包括两种:一种方法是采用网络传输方式下载内核镜像。这种方法需要开发板上设置有以太网接口,而有些开发板为了减小体积,并未设置以太网接口。另一种方法是每次更改内核镜像之后,将内核镜像打包编译生成固件,然后通过特定的固件烧写工具,把固件下载到存储介质上,例如下载到NAND存储器(NAND Flash)或者EMMC(Embedded Multi Media Card,嵌入式多媒体卡)等。这种方式步骤比较繁琐,效率较低。
技术实现要素:
有鉴于此,有必要提供一种内核文件的加载方法、加载装置及加载系统,能够节省电路板空间并提高加载效率。
本发明公开了一种内核文件的加载方法,其包括:
初始化预设的USB转网络驱动;
通过USB网络接收内核文件;
将所述内核文件存储于指定的存储地址。
作为一种实施方式,所述内核文件携带加载命令;
将所述内核文件存储于指定的存储地址之前,所述加载方法还包括:
解析所述加载命令,以获取所述指定的存储地址。
作为一种实施方式,所述初始化预设的USB转网络驱动,包括:
初始化USB设备控制器的硬件资源;
将所述USB设备控制器注册为USB网络设备,以调用所述硬件资源。
作为一种实施方式,所述内核文件包括内核镜像。
作为一种实施方式,所述内核文件包括扁平设备树文件。
本发明还公开了一种内核文件的加载装置,应用于开发板,其包括:
初始化模块,用于初始化预设的通用串行总线USB转网络驱动;
接收模块,用于通过USB网络接收内核文件;
存储模块,用于将所述内核文件存储于指定的存储地址。
作为一种实施方式,所述内核文件携带加载命令;
所述加载装置还包括解析模块,用于解析所述加载命令,以获取所述指定的存储地址。
作为一种实施方式,所述初始化模块,包括:
初始化单元,用于初始化USB设备控制器的硬件资源;
注册单元,用于将所述USB设备控制器注册为USB网络设备,以调用所述硬件资源。
作为一种实施方式,所述内核文件包括内核镜像。
作为一种实施方式,所述内核文件包括扁平设备树FDT文件。
本发明还公开了一种内核文件的加载系统,其包括开发板及终端设备,其中所述开发板包括如上述任一项应用于开发板的加载装置。
上述内核文件的加载方法、加载装置及加载系统,通过USB网络直接接收并存储内核文件,即可加载内核文件,无需将内核文件打包编译成固件,也无需通过特定的固件烧写工具下载固件,从而提高内核文件的加载效率。在硬件上,开发板配置USB接口即可,由于USB接口较一般的网络接口体积小,因此可节省电路板空间。
采用上述技术方案,还在开发板或者客户板没有以太网接口只有USB接口的开发环境中,实现了在Uboot中实现USB转网络的功能,通过在PC端采用NFS或者TFTP的USB网络传输方式,把内核镜像加载到开发板指定的DRAM地址上。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他实施例的附图。
图1为本发明一实施例的内核文件的加载方法的流程示意图;
图2为本发明另一实施例的内核文件的加载方法的流程示意图;
图3为本发明又一实施例的内核文件的加载方法的流程示意图;
图4为本发明一实施例的内核文件的加载装置的结构示意图;
图5为本发明一实施例的内核文件的加载系统的结构示意图;
图6为本发明一实施例的内核文件的加载系统中终端设备的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在本发明的描述中,需要理解的是,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
下面结合附图描述根据本发明实施例的内核文件的加载方法、加载装置及加载系统。例如,本发明一实施例的内核文件的加载方法包括以下步骤:初始化预设的通用串行总线USB转网络驱动;检测是否通过USB(Universal Serial Bus,通用串行总线)连接终端设备,是则建立USB网络;通过所述USB网络接收内核文件;将所述内核文件存储于指定的存储地址,例如将所述内核文件存储于指定的内存地址。
请参阅图1,其为本发明一实施例的内核文件的加载方法的流程示意图,所述内核文件的加载方法应用于开发板。如图1所示,所述内核文件的加载方法包括以下步骤:
S110,初始化预设的USB转网络驱动。例如,开发板初始化预设的USB转网络驱动;又如,在开发板Uboot中初始化预设的USB转网络驱动。
在本实施例中,开发板设置有USB接口及USB转网络驱动。其中,USB转网络驱动用于实现USB数据和网络数据之间的转换,例如将以太网数据转换为USB数据。例如,该USB接口包括A型USB插座和/或A型USB插头;例如,该USB接口包括B型USB插座和/或B型USB插头;例如,该USB接口包括Mini USB插座和/或Mini USB插头;例如,该USB接口包括Micro USB插座和/或Micro USB插头。在一较佳实施例中,为了减小占板面积,节省电路板空间,该USB接口设置为Micro USB插座或Micro USB插头。
作为一种实施方式,开发板上电之后,自动初始化预设的USB转网络驱动,这样,一旦通过USB连接终端设备,可快速建立USB网络,与终端设备进行网络通信。
作为另一种实施方式,在检测到USB连接终端设备之后,初始化预设的USB转网络驱动,以避免不必要的初始化过程,降低开发板的功耗。例如,开发板还设置有USB识别模块,用于识别外部USB设备,例如终端设备的USB设备。
S130,通过USB网络接收内核文件。
上述USB网络,例如:NFS(Network File System,网络文件系统)网络,或者TFTP(Trivial File Transfer Protocol,简单文件传输协议)网络。例如,对于NFS网络,终端设备作为NFS服务器,开发板作为NFS客户端,则开发板与终端设备之间通过NFS协议通信,开发板可接收终端设备基于NFS协议发送的内核文件。又如,对于TFTP网络,终端设备作为TFTP服务器,开发板作为TFTP客户端,则开发板与终端设备之间通过TFTP协议通信,开发板可接收终端设备基于TFTP协议发送的内核文件。
例如,检测是否通过USB连接开发板,是则通过USB网络向所述开发板发送内核文件,以使所述开发板加载所述内核文件;在一个实施例中,终端设备检测是否通过USB连接开发板,是则通过USB网络向所述开发板发送内核文件,以使所述开发板加载所述内核文件。
在本实施例中,终端设备为具有USB接口的用户终端,例如终端设备包括但不限于:台式计算机、笔记本电脑、平板电脑、掌上电脑等非便携式或便携式终端设备。
例如,终端设备检测是否通过USB连接线连接开发板;例如,终端设备检测是否通过USB接口直接连接开发板。例如,终端设备设置有USB识别模块及USB接口,通过USB识别模块检测USB接口是否连接到终端设备。例如,终端设备的USB接口包括A型USB插座和/或A型USB插头;例如,终端设备的USB接口包括B型USB插座和/或B型USB插头;例如,终端设备的USB接口包括Mini USB插座和/或Mini USB插头;例如,终端设备的USB接口包括Micro USB插座和/或Micro USB插头。
在一较佳实施例中,对于平板电脑、掌上电脑等便携性终端设备,为了减小体积,该USB接口设置为Micro USB插座和/或Micro USB插头。
作为一种实施方式,终端设备中预先设置有USB转网络驱动,当检测到通过USB连接开发板时,启动该USB转网络驱动,以建立USB网络,例如建立终端设备与开发板之间的USB网络。
在本实施例中,内核文件包括内核镜像;或者,内核文件包括除内核镜像文件之外的其他内核文件,例如FDT(Flattened Device Tree,扁平设备树)文件;或者,内核文件包括内核镜像及其他内核文件。
S150,将所述内核文件存储于指定的存储地址。
在本实施例中,指定的存储地址,例如指定的内存地址,例如指定的DRAM(Dynamic Random Access Memory,动态随机存取存储器)地址。
作为一种实施方式,根据加载命令将所述内核文件存储于指定的存储地址。例如,内核文件携带加载命令,通过解析该加载命令,获取指定的存储地址。例如,该加载命令为NFS命令或TFTP命令。
在一个实施例中,如图2所示,步骤S110具体包括:
S111,初始化USB设备控制器的硬件资源。其中,初始化USB设备控制器的硬件资源,用于实现USB设备控制器的驱动。
S113,将所述USB设备控制器注册为USB网络设备,以调用所述硬件资源。
例如,在开发板系统将所述USB设备控制器注册为USB网络设备,又如,在Uboot(Universal Bootloader,引导加载程序)将所述USB设备控制器注册为USB网络设备。USB设备控制器注册为USB网络设备,用于实现USB转网络驱动,使得USB设备控制器能调用已初始化的硬件资源,建立与终端设备间的USB网络。
在一个实施例中,终端设备具体根据预设命令通过所述USB网络向所述开发板发送内核文件。例如,该预设命令为用户输入的命令;又如,该预设命令为用户输入的NFS命令。
具体实施中,内核中包括配置表,配置表中包括内核的配置信息,例如内核文件的存储地址。在一个实施例中,终端设备在向开发板发送内核文件之前,还执行如下步骤:
S321,根据所述内核文件中的配置表,获取所述内核文件的存储地址;
S323,将所述存储地址封装入预设加载命令中。例如将该存储地址封装为该预设加载命令的参数。例如,该预设加载命令为NFS命令或TFTP命令。
相应地,步骤S330具体为:通过所述USB网络向所述开发板发送携带所述预设加载命令的内核文件。例如,将该预设加载命令与内核文件一起打包之后,通过USB网络发送,以便于开发板接收到内核文件之后,能自动根据该加载命令,快速获取上述存储地址并按照该存储地址存储该内核文件,而无需用户手动输入加载命令,从而加快开发板侧加载内核文件的速度。
上述内核文件的加载方法,通过USB网络直接接收并存储内核文件,即可加载内核文件,无需将内核文件打包编译成固件,也无需通过特定的固件烧写工具下载固件,从而提高内核文件的加载效率。在硬件上,开发板配置USB接口即可,由于USB接口较一般的网络接口体积小,因此可节省电路板空间。
图3是本发明又一实施例的内核文件的加载方法的流程示意图,该加载方法应用于开发板及终端设备。例如,如图3所示,该加载方法包括:
S310,开发板初始化预设的USB转网络驱动。
S320,终端设备检测到通过USB连接开发板。
S330,所述终端设备通过USB网络向所述开发板发送内核文件。例如发送内核镜像。
在一个实施例中,终端设备具体根据预设命令通过所述USB网络向所述开发板发送内核文件。例如,该预设命令为用户输入的命令;又如,该预设命令为用户输入的NFS命令。
具体实施中,内核中包括配置表,配置表中包括内核的配置信息,例如内核文件的存储地址。在一个实施例中,终端设备在向开发板发送内核文件之前,还执行如下步骤:根据所述内核文件中的配置表,获取所述内核文件的存储地址;将所述存储地址封装入预设加载命令中。例如将该存储地址封装为该预设加载命令的参数。例如,该预设加载命令为NFS命令或TFTP命令。
相应地,步骤S530具体为:通过所述USB网络向所述开发板发送携带所述预设加载命令的内核文件。例如,将该预设加载命令与内核文件一起打包之后,通过USB网络发送,以便于开发板接收到内核文件之后,能自动根据该加载命令,快速获取上述存储地址并按照该存储地址存储该内核文件,而无需用户手动输入加载命令,从而加快开发板侧加载内核文件的速度。
S340,所述开发板通过所述USB网络接收所述内核文件。例如接收内核镜像。
S350,所述开发板将所述内核文件存储于指定的存储地址。例如将该内核文件写到指定的DRAM地址。
上述内核文件的加载方法,开发板和终端设备之间通过USB网络收发内核文件,无需将内核文件打包编译成固件,也无需通过特定的固件烧写工具下载固件,从而提高内核文件的加载效率。在硬件上,开发板配置USB接口即可,由于USB接口较一般的网络接口体积小,因此可节省电路板空间。
请参阅图4,其为本发明一实施例的内核文件的加载装置的结构示意图。所述加载装置应用于开发板。例如,所述加载装置采用上述任一实施例所述内核文件的加载方法实现;如图4所示,所述加载装置400包括:
初始化模块410,用于初始化预设的通用串行总线USB转网络驱动。
接收模块430,用于通过USB网络接收内核文件。
存储模块450,用于将所述内核文件存储于指定的存储地址。
在一个实施例中,所述内核文件携带加载命令;所述加载装置还包括:
解析模块,用于解析所述加载命令,以获取所述指定的存储地址。
在一个实施例中,所述初始化模块410,包括:
初始化单元,用于初始化USB设备控制器的硬件资源;
注册单元,用于将所述USB设备控制器注册为USB网络设备,以调用所述硬件资源。
在一个实施例中,所述内核文件包括内核镜像。
上述内核文件的加载装置,通过USB网络直接接收并存储内核文件,即可加载内核文件,无需将内核文件打包编译成固件,也无需通过特定的固件烧写工具下载固件,从而提高内核文件的加载效率。在硬件上,开发板配置USB接口即可,由于USB接口较一般的网络接口体积小,因此可节省电路板空间。
本发明又一实施例是,一种内核文件的加载装置,其采用上述任一实施例所述内核文件的加载方法;例如,一种内核文件的加载装置,其采用上述任一实施例所述内核文件的加载方法实现;又如,一种内核文件的加载装置,其具有上述任一实施例所述内核文件的加载方法所对应的功能模块。
本发明实施例还提供了一种内核文件的加载系统,如图5所示,该加载系统500包括开发板510及终端设备530,其中开发板810包括图4所示实施例的内核文件的加载装置。例如,所述加载系统采用上述任一实施例所述内核文件的加载方法和/或加载装置实现。
在一个实施例中,如图6所示,终端设备530包括检测模块531及发送模块533,其中:
检测模块531,用于检测是否通过USB连接开发板;
发送模块533,用于在检测到通过USB连接开发板时,通过USB网络向所述开发板发送内核文件,以使所述开发板加载所述内核文件。
在一个实施例中,终端设备530还包括:
读取模块,用于读取内核文件;
获取模块,用于根据所述内核文件中的配置表,获取所述内核文件的存储地址;
封装模块,用于将所述存储地址封装入预设加载命令中;
所述发送模块533,具体用于通过USB网络向所述开发板发送携带所述预设加载命令的内核文件。
在一个实施例中,所述内核文件包括内核镜像。
在一个实施例中,所述内核文件包括FDT文件。
上述内核文件的加载系统,终端设备和开发板之间通过USB网络收发内核文件,即可加载内核文件,无需将内核文件打包编译成固件,也无需通过特定的固件烧写工具下载固件,从而提高内核文件的加载效率。在硬件上,开发板配置USB接口即可,由于USB接口较一般的网络接口体积小,因此可节省电路板空间。
采用上述技术方案,还在开发板或者客户板没有以太网接口只有USB接口的开发环境中,实现了在Uboot中实现USB转网络的功能,通过在PC端采用NFS或者TFTP的USB网络传输方式,把内核镜像加载到开发板指定的DRAM地址上。
应该说明的是,上述装置实施例中,所包括的各个模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能模块的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
另外,本领域普通技术人员可以理解实现上述各实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,相应的程序可以存储于可读取存储介质中,所述存储介质,如ROM/RAM、磁盘、光盘等。
上述各实施例的各技术特征相互组合所形成的可实现的内核文件的加载方法、加载装置及/或加载系统。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。