一种基于linux操作系统的外设固件加载方法、控制设备及计算机可读存储介质技术方案

技术编号:25636575 阅读:43 留言:0更新日期:2020-09-15 21:29
本发明专利技术公开了一种基于linux操作系统的外设固件加载方法、控制设备及计算机可读存储介质,特点是包括以下步骤:1)将硬盘在linux内核和文件系统之间建立系统固件分区;2)刷机时将所有外设固件刷到硬盘的系统固件分区上,并获取所有外设固件对应的起始地址;3)在linux操作系统启动时,将系统固件分区里所有外设固件对应的起始地址放到启动器对应的命令行参数里面;4)在linux操作系统启动后,根据命令行参数记录的外设固件对应的起始地址读取每个外设固件信息,然后从外设固件信息中解析出对应的外设固件数据,并读取外设固件数据下载到手机外设芯片里即可,优点是使加载外设固件的过程不依赖文件系统,确保加载成功。

【技术实现步骤摘要】
一种基于linux操作系统的外设固件加载方法、控制设备及计算机可读存储介质
本专利技术涉及一种固件加载方法,尤其是涉及一种基于linux操作系统的外设固件加载方法、控制设备及计算机可读存储介质。
技术介绍
手机某些外设需要有固件才能正常工作,这些固件需要在系统启动时,通过驱动下载到芯片中,这样芯片才能正常工作,在linux系统中,一般将固件放在文件系统中,等系统起来以后,驱动会在文件系统里面某些目录下根据文件名找对应的固件文件,如wifi,蓝牙等都需要一个固件,固件其实就是一段跑在外设芯片上的代码,用来和主控芯片通信完成对应芯片的功能。现有的基于linux操作系统的外设固件加载方法包括以下步骤:先去文件系统指定的路径根据文件名查找自己的固件,然后打开文件,读取内容,然后写到芯片中去,一般的固件加载时在文件系统挂载之后,这时我们可以正常的读取系统文件了,就可以以文件的形式将固件打开,然后写到外设芯片中,但在此之前是无法读取固件的(因为在linux操作系统启动器和linux内核启动阶段是没有文件系统的)。因此,在固件所在的分区挂载之前,驱动是无法加载固件的,而且有些驱动确实会在驱动初始化时加载固件,但这个时候文件系统还没有挂载,会导致固件加载失败。
技术实现思路
本专利技术所要解决的技术问题是提供一种使加载外设固件的过程不依赖文件系统,确保外设固件加载成功的基于linux操作系统的外设固件加载方法、控制设备及计算机可读存储介质。本专利技术解决上述技术问题所采用的技术方案为:一种基于linux操作系统的外设固件加载方法,包括以下步骤:(1)将linux操作系统的硬盘在linux内核和文件系统之间建立系统固件分区;(2)对手机进行刷机时,将linux操作系统相关的所有外设固件刷到硬盘的系统固件分区上,并获取系统固件分区里所有外设固件对应的起始地址;(3)在linux操作系统启动时,将系统固件分区里所有外设固件对应的起始地址放到linux操作系统启动器对应的命令行参数里面;(4)在linux操作系统启动后,根据命令行参数记录的所有外设固件对应的起始地址读取每个外设固件信息,然后从外设固件信息中解析出对应的外设固件数据,并读取外设固件数据下载到手机外设芯片里面,即完成基于linux操作系统的外设固件加载。所述的外设固件信息为含有固件名字、固件起始地址和固件长度信息的一串字节,所述的外设固件数据是固件的内容。步骤(4)中从外设固件信息中解析出对应的外设固件数据具体过程如下:将每个外设固件信息等分成3段,前一段字节为固件名字,中间一段字节为固件起始地址,最后一段字节为固件长度,然后将每个外设固件信息按顺序存放,在读取外设固件信息的时候,按前中后的顺序,依次获取固件名字、固件起始地址和固件长度后,再获取下一个外设固件的固件名字、固件起始地址和固件长度,如此循环直至获取全部外设固件的固件名字、固件起始地址和固件长度。一种基于linux操作系统的外设固件加载的控制设备,包括:至少一个处理器和存储器;所述存储器存储计算机执行指令;所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如权利要求1所述的方法。一种基于linux操作系统的外设固件加载的计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1所述的方法。所述的外部设备包括蓝牙和wifi、全球定位系统和调制解调器。与现有技术相比,本专利技术的优点在于:本专利技术一种基于linux操作系统的外设固件加载方法、控制设备及计算机可读存储介质,将linux外设的固件放到分区,并且根据分区地址读取固件,不依赖文件系统,使驱动在文件系统起来之前就可以加载外设的固件。因此,固件的加载过程提前到linuxkernel启动阶段,即使没有文件系统,我们仍然可以加载固件,使加载固件的过程不依赖文件系统,确保外设固件加载成功。附图说明图1为本专利技术基于linux操作系统的外设固件加载方法的流程示意图;图2为本专利技术LINUX系统硬盘分区图。具体实施方式以下结合附图实施例对本专利技术作进一步详细描述。实施例1一种基于linux操作系统的外设固件加载方法,如图1和图2所示,包括以下步骤:(1)将linux操作系统的硬盘在linux内核和文件系统之间建立系统固件分区;(2)对手机进行刷机时,将linux操作系统相关的所有外设固件刷到硬盘的系统固件分区上,并获取系统固件分区里所有外设固件对应的起始地址;(3)在linux操作系统启动时,将系统固件分区里所有外设固件对应的起始地址放到linux操作系统启动器对应的命令行参数里面;(4)在linux操作系统启动后,根据命令行参数记录的所有外设固件对应的起始地址读取每个外设固件信息,然后从外设固件信息中解析出对应的外设固件数据,并读取外设固件数据下载到手机外设芯片里面,即完成基于linux操作系统的外设固件加载。在此具体实施例中,所述的外设固件信息为含有固件名字、固件起始地址和固件长度信息的一串字节,所述的外设固件数据是固件的内容(即运行在外部设备的程序);从外设固件信息中解析出对应的外设固件数据具体过程如下:将每个外设固件信息等分成3段,前一段字节为固件名字,中间一段字节为固件起始地址,最后一段字节为固件长度(如每个外设固件信息占24字节,分成3部分,前八个字节为固件名字,中间八个字节为固件起始地址,最后八个字节为固件长度),然后将每个外设固件信息按顺序存放,在读取外设固件信息的时候,按前中后的顺序,依次获取固件名字、固件起始地址和固件长度后,再获取下一个外设固件的固件名字、固件起始地址和固件长度,如此循环直至获取全部外设固件的固件名字、固件起始地址和固件长度。外部设备包括蓝牙和wifi、全球定位系统(gps)、sensor和调制解调器(modem)等。实施例2一种基于linux操作系统的外设固件加载的控制设备,包括:至少一个处理器和存储器;存储器存储计算机执行指令;至少一个处理器执行存储器存储的计算机执行指令,使得至少一个处理器执行如实施例1所述的方法。控制设备的具体执行过程可参见之前所述内容,其实现原理和技术效果类似,此处不再赘述。应理解,处理器可以是中央处理单元(英文:CentralProcessingUnit,简称:CPU),还可以是其他通用处理器、数字信号处理器(英文:DigitalSignalProcessor,简称:DSP)、专用集成电路(英文:ApplicationSpecificIntegratedCircuit,简称:ASIC)等。通用处理器可以是微处理器或者其他常规的处理器。存储器存储的计算机指令,可以直接由硬件处理器执行完成,或者由处理器中的硬件及软件模块组合执行完成。存储器可能包括高速RAM存储器,也可能还包括非易失性存储NVM,例如至少一个磁本文档来自技高网...

【技术保护点】
1.一种基于linux操作系统的外设固件加载方法,其特征在于包括以下步骤:/n(1)将linux操作系统的硬盘在linux内核和文件系统之间建立系统固件分区;/n(2)对手机进行刷机时,将linux操作系统相关的所有外设固件刷到硬盘的系统固件分区上,并获取系统固件分区里所有外设固件对应的起始地址;/n(3)在linux操作系统启动时,将系统固件分区里所有外设固件对应的起始地址放到linux操作系统启动器对应的命令行参数里面;/n(4)在linux操作系统启动后,根据命令行参数记录的所有外设固件对应的起始地址读取每个外设固件信息,然后从外设固件信息中解析出对应的外设固件数据,并读取外设固件数据下载到手机外设芯片里面,即完成基于linux操作系统的外设固件加载。/n

【技术特征摘要】
1.一种基于linux操作系统的外设固件加载方法,其特征在于包括以下步骤:
(1)将linux操作系统的硬盘在linux内核和文件系统之间建立系统固件分区;
(2)对手机进行刷机时,将linux操作系统相关的所有外设固件刷到硬盘的系统固件分区上,并获取系统固件分区里所有外设固件对应的起始地址;
(3)在linux操作系统启动时,将系统固件分区里所有外设固件对应的起始地址放到linux操作系统启动器对应的命令行参数里面;
(4)在linux操作系统启动后,根据命令行参数记录的所有外设固件对应的起始地址读取每个外设固件信息,然后从外设固件信息中解析出对应的外设固件数据,并读取外设固件数据下载到手机外设芯片里面,即完成基于linux操作系统的外设固件加载。


2.根据权利要求1所述的一种基于linux操作系统的外设固件加载方法,其特征在于:所述的外设固件信息为含有固件名字、固件起始地址和固件长度信息的一串字节,所述的外设固件数据是固件的内容。


3.根据权利要求2所述的一种基于linux操作系统的外设固件加载方法,其特征在于:步骤(4)中从外设固件信息中解析出对应的外设固件...

【专利技术属性】
技术研发人员:李浩邹仕洪朱睿李翔
申请(专利权)人:北京元心科技有限公司
类型:发明
国别省市:北京;11

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

1