CN111666082B - 一种外设固件加载方法、控制设备及计算机可读存储介质 - Google Patents

一种外设固件加载方法、控制设备及计算机可读存储介质 Download PDF

Info

Publication number
CN111666082B
CN111666082B CN202010509904.2A CN202010509904A CN111666082B CN 111666082 B CN111666082 B CN 111666082B CN 202010509904 A CN202010509904 A CN 202010509904A CN 111666082 B CN111666082 B CN 111666082B
Authority
CN
China
Prior art keywords
firmware
peripheral
peripheral firmware
information
loading
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010509904.2A
Other languages
English (en)
Other versions
CN111666082A (zh
Inventor
李�浩
邹仕洪
朱睿
李翔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Yuanxin Junsheng Technology Co.,Ltd.
Original Assignee
Beijing Yuanxin Science and Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Yuanxin Science and Technology Co Ltd filed Critical Beijing Yuanxin Science and Technology Co Ltd
Priority to CN202010509904.2A priority Critical patent/CN111666082B/zh
Publication of CN111666082A publication Critical patent/CN111666082A/zh
Application granted granted Critical
Publication of CN111666082B publication Critical patent/CN111666082B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/63Image based installation; Cloning; Build to order

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

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

Description

一种外设固件加载方法、控制设备及计算机可读存储介质
技术领域
本发明涉及一种固件加载方法,尤其是涉及一种外设固件加载方法、控制设备及计算机可读存储介质。
背景技术
手机某些外设需要有固件才能正常工作,这些固件需要在系统启动时,通过驱动下载到芯片中,这样芯片才能正常工作,在linux系统中,一般将固件放在文件系统中,等系统起来以后,驱动会在文件系统里面某些目录下根据文件名找对应的固件文件,如wifi,蓝牙等都需要一个固件,固件其实就是一段跑在外设芯片上的代码,用来和主控芯片通信完成对应芯片的功能。
现有的基于linux操作系统的外设固件加载方法包括以下步骤:先去文件系统指定的路径根据文件名查找自己的固件,然后打开文件,读取内容,然后写到芯片中去,一般的固件加载时在文件系统挂载之后,这时我们可以正常的读取系统文件了,就可以以文件的形式将固件打开,然后写到外设芯片中,但在此之前是无法读取固件的(因为在linux操作系统启动器和linux 内核启动阶段是没有文件系统的)。因此,在固件所在的分区挂载之前,驱动是无法加载固件的,而且有些驱动确实会在驱动初始化时加载固件,但这个时候文件系统还没有挂载,会导致固件加载失败。
发明内容
本发明所要解决的技术问题是提供一种使加载外设固件的过程不依赖文件系统,确保外设固件加载成功的基于linux操作系统的外设固件加载方法、控制设备及计算机可读存储介质。
本发明解决上述技术问题所采用的技术方案为:一种外设固件加载方法,包括以下步骤:
(1)将linux操作系统的硬盘在linux内核和文件系统之间建立系统固件分区;
(2)对手机进行刷机时,将linux操作系统相关的所有外设固件刷到硬盘的系统固件分区上,并获取系统固件分区里所有外设固件对应的起始地址;
(3)在linux操作系统启动时,将系统固件分区里所有外设固件对应的起始地址放到linux操作系统启动器对应的命令行参数里面;
(4)在linux操作系统启动后,根据命令行参数记录的所有外设固件对应的起始地址读取每个外设固件信息,然后从外设固件信息中解析出对应的外设固件数据,并读取外设固件数据下载到手机外设芯片里面,即完成基于linux操作系统的外设固件加载。
所述的外设固件信息为含有固件名字、固件起始地址和固件长度信息的一串字节,所述的外设固件数据是固件的内容。
步骤(4)中从外设固件信息中解析出对应的外设固件数据具体过程如下: 将每个外设固件信息等分成3段,前一段字节为固件名字,中间一段字节为固件起始地址,最后一段字节为固件长度,然后将每个外设固件信息按顺序存放,在读取外设固件信息的时候,按前中后的顺序,依次获取固件名字、固件起始地址和固件长度后,再获取下一个外设固件的固件名字、固件起始地址和固件长度,如此循环直至获取全部外设固件的固件名字、固件起始地址和固件长度。
一种外设固件加载的控制设备,包括:至少一个处理器和存储器;所述存储器存储计算机执行指令;所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如权利要求1所述的方法。
一种外设固件加载的计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1所述的方法。
所述的外部设备包括蓝牙和wifi、全球定位系统和调制解调器。
与现有技术相比,本发明的优点在于:本发明一种外设固件加载方法、控制设备及计算机可读存储介质,将linux外设的固件放到分区,并且根据分区地址读取固件,不依赖文件系统,使驱动在文件系统起来之前就可以加载外设的固件。因此,固件的加载过程提前到linux kernel启动阶段,即使没有文件系统,我们仍然可以加载固件,使加载固件的过程不依赖文件系统,确保外设固件加载成功。
附图说明
图1为本发明外设固件加载方法的流程示意图;
图2为本发明LINUX系统硬盘分区图。
具体实施方式
以下结合附图实施例对本发明作进一步详细描述。
实施例1
一种外设固件加载方法,如图1和图2所示,包括以下步骤:
(1)将linux操作系统的硬盘在linux内核和文件系统之间建立系统固件分区;
(2)对手机进行刷机时,将linux操作系统相关的所有外设固件刷到硬盘的系统固件分区上,并获取系统固件分区里所有外设固件对应的起始地址;
(3)在linux操作系统启动时,将系统固件分区里所有外设固件对应的起始地址放到linux操作系统启动器对应的命令行参数里面;
(4)在linux操作系统启动后,根据命令行参数记录的所有外设固件对应的起始地址读取每个外设固件信息,然后从外设固件信息中解析出对应的外设固件数据,并读取外设固件数据下载到手机外设芯片里面,即完成基于linux操作系统的外设固件加载。
在此具体实施例中,所述的外设固件信息为含有固件名字、固件起始地址和固件长度信息的一串字节,所述的外设固件数据是固件的内容(即运行在外部设备的程序);从外设固件信息中解析出对应的外设固件数据具体过程如下:将每个外设固件信息等分成3段,前一段字节为固件名字,中间一段字节为固件起始地址,最后一段字节为固件长度(如每个外设固件信息占24字节,分成3部分,前八个字节为固件名字,中间八个字节为固件起始地址,最后八个字节为固件长度),然后将每个外设固件信息按顺序存放,在读取外设固件信息的时候,按前中后的顺序,依次获取固件名字、固件起始地址和固件长度后,再获取下一个外设固件的固件名字、固件起始地址和固件长度,如此循环直至获取全部外设固件的固件名字、固件起始地址和固件长度。外部设备包括蓝牙和wifi、全球定位系统(gps)、sensor和调制解调器(modem)等。
实施例2
一种外设固件加载的控制设备,包括:至少一个处理器和存储器;存储器存储计算机执行指令;至少一个处理器执行存储器存储的计算机执行指令,使得至少一个处理器执行如实施例1所述的方法。
控制设备的具体执行过程可参见之前所述内容,其实现原理和技术效果类似,此处不再赘述。应理解,处理器可以是中央处理单元(英文: Central Processing Unit,简称:CPU),还可以是其他通用处理器、数字信号处理器(英文: Digital Signal Processor,简称:DSP)、专用集成电路(英文: Application Specific Integrated Circuit,简称:ASIC)等。通用处理器可以是微处理器或者其他常规的处理器。存储器存储的计算机指令,可以直接由硬件处理器执行完成,或者由处理器中的硬件及软件模块组合执行完成。存储器可能包括高速RAM存储器,也可能还包括非易失性存储NVM, 例如至少一个磁盘存储器。总线可以分为地址总线、数据总线、控制总线等。
实施例3
一种外设固件加载的计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被执行时,实现如前实施例1所述的外设固件加载的方法。上述计算机可读存储介质可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM)、电可擦除可编程只读存储器(EEPROM)、可擦除可编程只读存储器(EPROM)、可编程只读存储器(PROM)、只读存储器(ROM)、磁存储器、快闪存储器、磁盘或光盘等。可读存储介质可以是通用或专用的计算机或类似电子设备能够存取的任何可用介质。
计算机可读存储介质可以耦合至处理器,从而使处理器能够从上述介质中读取信息,且可以向上述介质写入信息。当然,上述介质也可以是处理器的组成部分。处理器和可读存储介质可以位于专用集成电路(Application Specific Integrated Circuits,简称:ASIC)中。 当然,处理器和可读存储介质也可以作为分立组件存在于电子设备中。
本申请技术方案如果以软件的形式实现并作为产品销售或使用时,可以存储在计算机可读取存储介质中。基于这样的理解,本申请的技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括计算机程序或者若干指令。该计算机软件产品使得计算机设备(可以是个人计算机、服务器、网络设备或者类似的电子设备)执行本申请所述方法的全部或部分步骤。前述的存储介质可以是U盘、 移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM, Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
上述说明并非对本发明的限制,本发明也并不限于上述举例。本技术领域的普通技术人员在本发明的实质范围内,做出的变化、改型、添加或替换,也应属于本发明的保护范围。

Claims (6)

1.一种外设固件加载方法,其特征在于包括以下步骤:
(1)将linux操作系统的硬盘在linux内核和文件系统之间建立系统固件分区;
(2)对手机进行刷机时,将linux操作系统相关的所有外设固件刷到硬盘的系统固件分区上,并获取系统固件分区里所有外设固件对应的起始地址;
(3)在linux操作系统启动时,将系统固件分区里所有外设固件对应的起始地址放到linux操作系统启动器对应的命令行参数里面;
(4)在linux操作系统启动后,根据命令行参数记录的所有外设固件对应的起始地址读取每个外设固件信息,然后从外设固件信息中解析出对应的外设固件数据,并读取外设固件数据下载到手机外设芯片里面,即完成基于linux操作系统的外设固件加载。
2.根据权利要求1所述的一种外设固件加载方法,其特征在于:所述的外设固件信息为含有固件名字、固件起始地址和固件长度信息的一串字节,所述的外设固件数据是固件的内容。
3.根据权利要求2所述的一种外设固件加载方法,其特征在于:步骤(4)中从外设固件信息中解析出对应的外设固件数据具体过程如下: 将每个外设固件信息等分成3段,前一段字节为固件名字,中间一段字节为固件起始地址,最后一段字节为固件长度,然后将每个外设固件信息按顺序存放,在读取外设固件信息的时候,按前中后的顺序,依次获取固件名字、固件起始地址和固件长度后,再获取下一个外设固件的固件名字、固件起始地址和固件长度,如此循环直至获取全部外设固件的固件名字、固件起始地址和固件长度。
4.根据权利要求1-3中任一项所述的一种外设固件加载方法,其特征在于:所述的外设包括蓝牙和wifi、全球定位系统和调制解调器。
5.一种根据权利要求1所述的外设固件加载的控制设备,其特征在于,包括:至少一个处理器和存储器;所述存储器存储计算机执行指令;所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如权利要求1所述的方法。
6.一种根据权利要求1所述的外设固件加载的计算机可读存储介质,其特征在于:所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1所述的方法。
CN202010509904.2A 2020-06-05 2020-06-05 一种外设固件加载方法、控制设备及计算机可读存储介质 Active CN111666082B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010509904.2A CN111666082B (zh) 2020-06-05 2020-06-05 一种外设固件加载方法、控制设备及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010509904.2A CN111666082B (zh) 2020-06-05 2020-06-05 一种外设固件加载方法、控制设备及计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN111666082A CN111666082A (zh) 2020-09-15
CN111666082B true CN111666082B (zh) 2021-01-12

Family

ID=72386869

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010509904.2A Active CN111666082B (zh) 2020-06-05 2020-06-05 一种外设固件加载方法、控制设备及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN111666082B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114443582B (zh) * 2021-12-22 2022-11-29 科东(广州)软件科技有限公司 一种操作系统上文件系统挂载方法、装置、设备及介质
CN114995893B (zh) * 2022-08-01 2022-11-01 摩尔线程智能科技(北京)有限责任公司 固件的管理方法、闪存、主机及存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101763279A (zh) * 2010-01-15 2010-06-30 上海维宏电子科技有限公司 一种BootLoader架构设计方法
WO2013070295A1 (en) * 2011-11-11 2013-05-16 Wyse Technology Inc. Robust firmware update with recovery logic
CN104317618A (zh) * 2014-10-24 2015-01-28 福州瑞芯微电子有限公司 一种固件分区处理方法和装置
CN106020861A (zh) * 2016-05-05 2016-10-12 惠州Tcl移动通信有限公司 一种智能手表的fota升级方法及系统
CN109901847A (zh) * 2019-01-22 2019-06-18 珠海亿智电子科技有限公司 一种基于存储卡的量产系统固件量产方法
CN109960523A (zh) * 2017-12-22 2019-07-02 浙江宇视科技有限公司 一种嵌入式设备的固件升级方法及装置
CN110471674A (zh) * 2019-08-21 2019-11-19 上海无线电设备研究所 基于c6455芯片的嵌入式dsp程序的远程升级方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7302547B2 (en) * 2004-09-30 2007-11-27 Hewlett-Packard Development Company, L.P. Method and system for supporting virtual mappings for shared firmware
CN102567042B (zh) * 2010-12-14 2015-04-15 国际商业机器公司 利用引导块重定位来管理多个软件镜像的方法和系统
CN102662749B (zh) * 2012-03-23 2018-02-13 天津中兴智联科技有限公司 一种双Boot切换的实现方法及装置
US10061651B2 (en) * 2015-06-12 2018-08-28 Dell Products, Lp System and method for hosting multiple recovery operating systems in memory
CN107402751A (zh) * 2017-05-23 2017-11-28 博为科技有限公司 一种基于Linux系统NAND FLASH母片烧录镜像实现方法
CN107346403B (zh) * 2017-07-13 2020-08-28 北京元心科技有限公司 外接存储器的操作方法、装置和智能终端

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101763279A (zh) * 2010-01-15 2010-06-30 上海维宏电子科技有限公司 一种BootLoader架构设计方法
WO2013070295A1 (en) * 2011-11-11 2013-05-16 Wyse Technology Inc. Robust firmware update with recovery logic
CN104317618A (zh) * 2014-10-24 2015-01-28 福州瑞芯微电子有限公司 一种固件分区处理方法和装置
CN106020861A (zh) * 2016-05-05 2016-10-12 惠州Tcl移动通信有限公司 一种智能手表的fota升级方法及系统
CN109960523A (zh) * 2017-12-22 2019-07-02 浙江宇视科技有限公司 一种嵌入式设备的固件升级方法及装置
CN109901847A (zh) * 2019-01-22 2019-06-18 珠海亿智电子科技有限公司 一种基于存储卡的量产系统固件量产方法
CN110471674A (zh) * 2019-08-21 2019-11-19 上海无线电设备研究所 基于c6455芯片的嵌入式dsp程序的远程升级方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"如何将elf(二进制)固件编译进内核";昨天的渴望;《https://blog.csdn.net/weijinhua_123/article/details/61035679》;20170310;第1-2页 *

Also Published As

Publication number Publication date
CN111666082A (zh) 2020-09-15

Similar Documents

Publication Publication Date Title
CN109634645B (zh) 固件升级方法及终端
US7543137B2 (en) Information processing device and information processing method
CN111666082B (zh) 一种外设固件加载方法、控制设备及计算机可读存储介质
US20110004871A1 (en) Embedded electronic device and firmware updating method thereof
US20190065394A1 (en) Method for accessing flash memory module and associated flash memory controller and electronic device
US11593091B2 (en) Method and apparatus for upgrading firmware of transfer device on mobile carrier, and non-transitory storage medium
CN109710286B (zh) 系统升级方法、装置、设备和存储介质
CN112540725A (zh) 非易失性数据存储方法、嵌入式系统以及存储介质
CN110377276B (zh) 源代码文件管理方法及设备
US20230315213A1 (en) Program download method for intelligent terminal and intelligent terminal
US7490321B2 (en) Method for updating firmware via determining program code
CN112965661A (zh) 数据存储方法、装置、设备及存储介质
CN117093247A (zh) 嵌入式设备的固件升级方法、装置、芯片和计算设备
CN111694580B (zh) 存储设备升级及初始化的方法、装置、电子设备
US7389391B2 (en) Memory disposition methods and systems
US8225028B2 (en) Memory devices and methods for programming flash memory utilizing spare blocks
CN108228095B (zh) 一种基于Flash进行实时信息记录的方法
CN110399143A (zh) 终端设备的刷机方法、装置、计算机存储介质和系统
CN113867823A (zh) 车载终端配置参数的设置方法、装置及电子设备
CN110018968B (zh) 一种数据读取方法、电子设备及计算机存储介质
JPH09259046A (ja) フラッシュメモリへのデータ格納方法及びフラッシュメモリからのデータ読み込み方法
JP2004310268A (ja) フラッシュメモリ内蔵の半導体装置、フラッシュメモリの制御方法およびそのプログラム
CN110618824B (zh) 一种软件升级方法、装置、介质和设备
CN114816862B (zh) 数据恢复方法和装置、计算设备和可读存储介质
CN109976678B (zh) 存储方法及设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20210122

Address after: 100080 room 401-3, 4th floor, building 1, yard 1, Danling street, Haidian District, Beijing

Patentee after: Beijing Yuanxin Junsheng Technology Co.,Ltd.

Address before: 100089 401-06, 4th floor, 2 Haidian East 3rd Street, Haidian District, Beijing

Patentee before: BEIJING YUANXIN SCIENCE & TECHNOLOGY Co.,Ltd.

EE01 Entry into force of recordation of patent licensing contract
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20200915

Assignee: Yuanxin Information Technology Group Co.,Ltd.

Assignor: Beijing Yuanxin Junsheng Technology Co.,Ltd.

Contract record no.: X2021110000017

Denomination of invention: The invention relates to a peripheral firmware loading method, a control device and a computer readable storage medium

Granted publication date: 20210112

License type: Common License

Record date: 20210531