CN102841796A - 固件烧录方法 - Google Patents

固件烧录方法 Download PDF

Info

Publication number
CN102841796A
CN102841796A CN2011101730703A CN201110173070A CN102841796A CN 102841796 A CN102841796 A CN 102841796A CN 2011101730703 A CN2011101730703 A CN 2011101730703A CN 201110173070 A CN201110173070 A CN 201110173070A CN 102841796 A CN102841796 A CN 102841796A
Authority
CN
China
Prior art keywords
kernel
burning
firmware
loading procedure
register
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.)
Granted
Application number
CN2011101730703A
Other languages
English (en)
Other versions
CN102841796B (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.)
Guangdong Gaohang Intellectual Property Operation Co ltd
Taizhou Zhigu Software Park Co ltd
Original Assignee
Hongfujin Precision Industry Shenzhen Co Ltd
Hon Hai Precision Industry 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 Hongfujin Precision Industry Shenzhen Co Ltd, Hon Hai Precision Industry Co Ltd filed Critical Hongfujin Precision Industry Shenzhen Co Ltd
Priority to CN201110173070.3A priority Critical patent/CN102841796B/zh
Priority claimed from CN201110173070.3A external-priority patent/CN102841796B/zh
Priority to TW100122774A priority patent/TW201301039A/zh
Priority to US13/449,296 priority patent/US8607227B2/en
Publication of CN102841796A publication Critical patent/CN102841796A/zh
Application granted granted Critical
Publication of CN102841796B publication Critical patent/CN102841796B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

一种固件烧录方法包括:制作伪开机文件,该文件包括固件中的启动引导程序、第一内核、第二内核、第一加载程序和第二加载程序、启动文件系统和应用程序;将启动引导程序、第一内核、第二内核、第一加载程序和第二加载程序烧录到Flash中;启动嵌入式设备,依次启动引导程序、第一内核和第一加载程序;当第一加载程序中存储的烧录脚本识别到存有启动文件系统和应用程序的存储装置时,下载该启动文件系统和应用程序的影像;验证该Flash中当前待写入数据的寄存器是否可读写;若能读写,则将启动文件系统和应用程序烧录到该寄存器中;或若不能读写,则跳到下一个寄存器进行烧录。利用本发明可避开硬烧录无法检查坏块的问题。

Description

固件烧录方法
技术领域
本发明涉及一种固件烧录方法。
背景技术
在产线测试嵌入式设备之前,往往需要烧录固件以更新闪存(Flash)作为出货时所需要的出厂设定。现在产线的方式是先通过一种烧录模式(即写入模式,如X-Modem)手动将嵌入式设备中的原始固件烧录到主板的闪存中,再通过软件提取已经烧录到主板上的固件影像,包括启动引导程序(Bootloader)、内核(kernel)、加载程序(initramfs)、启动文件系统(rootfs)。这种通过硬件烧录的方法把烧录固件所需要的Bootloader,kernel,init ramfs,rootfs四个文件直接烧录在主板的Nand Flash上,就是所谓的硬烧录。
由于Flash容量比较大(rootfs包含的内容比较多),所以厂商允许Flash里可以有坏块的存在,硬烧录时遇到坏块就会跳到下一个位置继续烧录。由于每片Flash里的坏块可能不在同一个位置,从母板里提取出来的固件影像本身可能有坏块,当烧录子板时因为遇到坏块也会跳过,因此,母片中的坏块所跳转的位置可能会刚好落到子板的坏块中。虽然烧录器可以继续跳过坏块,但是在已经烧录完成的Flash中,里面的跳转是仍然存在的,这样在启动嵌入式设备时可能会因为错误无法启动,造成固件无法成功地烧录到Flash中,而且这个失败是无法避免的,只能再次通过X-Modem方式直接手动烧录原始固件,如此会严重影响产线生产测试嵌入式设备的速度。
发明内容
鉴于以上内容,有必要提供一种固件烧录方法,可以自动烧录固件,且避开硬烧录无法检查坏块的问题。
所述固件烧录方法包括:制作伪开机文件,该伪开机文件包括固件中的启动引导程序、第一内核、第二内核、第一加载程序和第二加载程序,及测试嵌入式设备的启动文件系统和应用程序;将该伪开机文件中的启动引导程序、第一内核、第二内核、第一加载程序和第二加载程序烧录到嵌入式设备的Flash中;启动嵌入式设备,依次启动引导程序、第一内核和第一加载程序;通过第一加载程序中存储的烧录脚本找到所述启动文件系统和应用程序对应的影像;利用Flash工具验证该Flash中当前待写入数据的寄存器是否可读写;若该寄存器可以进行数据读写,则将启动文件系统和应用程序烧录到该寄存器中;或若该寄存器不可以进行数据读写,则跳过该寄存器到下一个寄存器进行烧录。
相较于现有技术,本发明提供的固件烧录系统及方法,通过制作一个伪开机文件,把烧录固件的软件隐藏在该伪开机文件中来烧录固件,如此可避开硬烧录无法检查坏块的问题。
附图说明
图1是本发明较佳实施例中固件烧录方法的运行环境示意图。
图2是本发明较佳实施例中的伪开机文件。
图3是本发明固件烧录方法较佳实施例的作业流程图。
主要元件符号说明
母板 1
子板 2
固件 10
USB 20
存储器 22
Flash 24
Flash工具 26
寄存器 240
伪开机文件 100
bootloader B1
kernel1 B2
kernel2 B3
initrd1 B4
initrd2 B5
rootfs B6
App data B7
如下具体实施方式将结合上述附图进一步说明本发明。
具体实施方式
参阅图1所示,是本发明较佳实施例中固件烧录方法的运行环境示意图。该图中示意出了一个母板1和一个子板2,本实施例中,该母板1和子板2为嵌入式设备中的电路板,其结构和功能完全相同。通过将母板1中的固件10烧录到子板2中,以作为嵌入式设备出货时所需要的出厂设定。
其中,子板2包括USB20、存储器22、Flash24和Flash工具26。该Flash24可以为Nand Flash,其包含一个或多个寄存器240(图中仅示意出一个),用于存储烧录的数据。
为了将母板1中的固件10成功地烧录到子板2中时,且减少手动烧录,提高嵌入式设备的生产、测试速度,本实施例需要提前制作一个伪开机文件100,该伪开机文件100可以用于隐藏所烧录的固件10中的应用程序,从而避开硬烧录无法检查坏块的问题。
本实施例中,该伪开机文件100由七个部分组成。如图2所示,该伪开机文件100具体包括:第一部分启动引导程序B1(以下统称为“bootloader B1”)、第二部分第一内核B2(以下统称为“kernel1 B2”)、第三部分第二内核B3(以下统称为“kernel2 B3”)、第四部分第一加载程序B4(以下统称为“initrd1 B4“)、第五部分第二加载程序B5(以下统称为“initrd2 B5”)、第六部分启动文件系统B6(以下统称为“rootfs B6”)和第七部分应用程序对应的数据B7(以下统称为“APP dataB7”)。其中,bootloader B1、kernel1 B2、kernel2 B3、initrd1 B4和initrd2 B5存在所述存储器22中,rootfs B6和APP data B7存在USB20中。本实施例中,所述存储器22可以为随机访问存储器(Random access memory,RAM)。
其中,伪开机文件100的前五部分内容与固件10中的内容大致相同,仅是对第四部分(即initrd1 B4)和第五部分(即initrd2 B5)做了少许修改。通过将伪开机文件100中的内容烧录到子板2的Flash24中,就可以完成固件10的烧录。
当bootloader B1、kernel1 B2、kernel2 B3、initrd1 B4和initrd2 B5被成功地烧录到Flash24中后,启动嵌入式设备,该嵌入式设备依次启动bootloader B1、kernel1 B2和initrd1 B4,该initrd1 B4中存储有烧录脚本,该烧录脚本中记载了嵌入式设备能支援的USB20。在启动initrd1 B4后,该嵌入式设备会通过initrd1 B4的烧录脚本识别该USB20,挂载该USB20,并从中获取rootfs B6和APP data B7对应的影像,通过Flash工具26验证Flash24中当前待写入数据的寄存器240是否能读写数据,如果该寄存器240能进行数据读写,则将rootfs B6和APP data B7烧录到该寄存器240中,如果该寄存器240不能进行数据读写,那么该Flash工具26跳过该寄存器240到下一个寄存器240进行烧录,直到烧录完成,由此可避免将烧录的固件10写入坏块的情况发生。
参阅图3所示,是本发明固件烧录方法较佳实施例的作业流程图。
步骤S100,制作伪开机文件100,将该伪开机文件100中的bootloader B1、kernel1 B2、kernel2 B3、initrd1 B4和initrd2 B5存在存储器22中,将rootfs B6和APP data B7存入USB20中。
第一步,制作bootloader B1;
第二步,制作kernel1 B2,该kernel1 B2为嵌入式设备第一次运行时的kernel,其中包含一些简单的服务支持,以支持烧录固件10;
第三步,制作kernel2 B3,该kernel2 B3为嵌入式设备正式运行时的Kernel;
第四步,制作initrd1 B4,该initrd1 B4为烧录固件10时运行于RAM中的init ramfs,其中存有烧录脚本,该烧录脚本中包含USB20的服务支持;
第五步,制作initrd2 B5,该initrd2 B5为嵌入式设备正式运行时运行于RAM中的init ramfs;
第六步,制作rootfs B6,该rootfs B6为文件系统;
第七步,制作APP data B7,该APP data B7为测试嵌入式设备的程序。
步骤S102,将伪开机文件100中的bootloader B1、kernel1 B2、kernel2 B3、initrd1 B4和initrd2 B5烧录到子板2的Flash24中。该烧录为硬烧录。
步骤S104,启动嵌入式设备,并依次启动bootloader B1、kernel1 B2和initrd1 B4。
步骤S106,当initrd1 B4中存储的烧录脚本识别到存有rootfs B6和APP data B7的存储装置如USB20时,从该USB20中下载rootfs B6和APP data B7对应的影像。具体而言,当用户将USB20插入嵌入式设备的USB插口时,该嵌入式设备可从initrd1 B4的烧录脚本识别到该USB20,从而打开该USB20中的文件,即rootfs B6和APP data B7对应的影像,其中,rootfs B6和APP data B7用于生产时测试所述嵌入式设备。
步骤S108,该Flash工具26验证当前待写入数据的寄存器240是否可读写。
若该寄存器240可以进行数据读写,则于步骤S110,将rootfs B6和APP data B7烧录到该寄存器240中。
若该寄存器240不可以进行数据读写,则于步骤S112,跳过该寄存器240到下一个寄存器进行烧录,直到烧录完成。
最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。

Claims (5)

1.一种固件烧录方法,其特征在于,该方法包括:
制作伪开机文件,该伪开机文件包括固件中的启动引导程序、第一内核、第二内核、第一加载程序和第二加载程序,及测试嵌入式设备的启动文件系统和应用程序;
将该伪开机文件中的启动引导程序、第一内核、第二内核、第一加载程序和第二加载程序烧录到嵌入式设备的Flash中;
启动嵌入式设备,依次启动引导程序、第一内核和第一加载程序;
当所述第一加载程序中存储的烧录脚本识别到存有所述启动文件系统和应用程序的存储装置时,从该存储装置中下载该启动文件系统和应用程序对应的影像;
利用Flash工具验证Flash中当前待写入数据的寄存器是否可读写;
若该寄存器能进行数据读写,则将启动文件系统和应用程序烧录到该寄存器中;或
若该寄存器不能进行数据读写,则跳过该寄存器到下一个寄存器进行烧录。
2.如权利要求1所述的固件烧录方法,其特征在于,所述制作伪开机文件的步骤包括:
制作启动引导程序;
制作第一内核,该第一内核为嵌入式设备第一次运行时的内核,其中包含支持烧录固件的服务支持;
制作第二内核,该第二内核为嵌入式设备正式运行时的内核;
制作第一加载程序,该第一加载程序为烧录固件时运行于随机存取存储器中的init ramfs,其中存有烧录脚本;
制作第二加载程序,该第二加载程序为嵌入式设备正式运行时运行于随机存取存储器中的init ramfs;
制作启动文件系统;及
制作应用程序。
3.如权利要求1所述的固件烧录方法,其特征在于,在所述制作伪开机文件之后,该方法还包括:
将所述启动引导程序、第一内核、第二内核、第一加载程序和第二加载程序存于嵌入式设备的随机存取存储器中。
4.如权利要求1所述的固件烧录方法,其特征在于,在所述制作伪开机文件之后,该方法还包括:
将所述启动文件系统和应用程序存于所述存储装置中,该存储装置为USB。
5.如权利要求1所述的固件烧录方法,其特征在于,所述Flash为Nand Flash。
CN201110173070.3A 2011-06-24 2011-06-24 固件烧录方法 Active CN102841796B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201110173070.3A CN102841796B (zh) 2011-06-24 固件烧录方法
TW100122774A TW201301039A (zh) 2011-06-24 2011-06-29 韌體燒錄方法
US13/449,296 US8607227B2 (en) 2011-06-24 2012-04-17 Electronic device and method for burning firmware to embedded device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110173070.3A CN102841796B (zh) 2011-06-24 固件烧录方法

Publications (2)

Publication Number Publication Date
CN102841796A true CN102841796A (zh) 2012-12-26
CN102841796B CN102841796B (zh) 2016-11-30

Family

ID=

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103838585A (zh) * 2012-11-20 2014-06-04 广州市暨华医疗器械有限公司 基于sd卡实现arm9嵌入式系统自动烧录的方法
CN108153637A (zh) * 2016-12-05 2018-06-12 武汉比亚迪汽车有限公司 检测eeprom读写功能的方法及装置
CN114443582A (zh) * 2021-12-22 2022-05-06 科东(广州)软件科技有限公司 一种操作系统上文件系统挂载方法、装置、设备及介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070094489A1 (en) * 2005-10-21 2007-04-26 Sony Corporation Embedded system that boots from USB flash drive
US20090150598A1 (en) * 2007-12-10 2009-06-11 Electronics And Telecommunications Research Institute Apparatus and method of mirroring firmware and data of embedded system
CN101739262A (zh) * 2008-11-11 2010-06-16 英业达股份有限公司 固件更新方法及应用其的电子装置
TW201102924A (en) * 2009-07-03 2011-01-16 Inventec Appliances Corp Embedded electronic device and method for updating firmware thereof
CN101957765A (zh) * 2010-09-02 2011-01-26 北京中星微电子有限公司 一种实现设备固件更新的方法及系统、设备

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070094489A1 (en) * 2005-10-21 2007-04-26 Sony Corporation Embedded system that boots from USB flash drive
US20090150598A1 (en) * 2007-12-10 2009-06-11 Electronics And Telecommunications Research Institute Apparatus and method of mirroring firmware and data of embedded system
CN101739262A (zh) * 2008-11-11 2010-06-16 英业达股份有限公司 固件更新方法及应用其的电子装置
TW201102924A (en) * 2009-07-03 2011-01-16 Inventec Appliances Corp Embedded electronic device and method for updating firmware thereof
CN101957765A (zh) * 2010-09-02 2011-01-26 北京中星微电子有限公司 一种实现设备固件更新的方法及系统、设备

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103838585A (zh) * 2012-11-20 2014-06-04 广州市暨华医疗器械有限公司 基于sd卡实现arm9嵌入式系统自动烧录的方法
CN108153637A (zh) * 2016-12-05 2018-06-12 武汉比亚迪汽车有限公司 检测eeprom读写功能的方法及装置
CN108153637B (zh) * 2016-12-05 2021-07-09 武汉比亚迪汽车有限公司 检测eeprom读写功能的方法及装置
CN114443582A (zh) * 2021-12-22 2022-05-06 科东(广州)软件科技有限公司 一种操作系统上文件系统挂载方法、装置、设备及介质
CN114443582B (zh) * 2021-12-22 2022-11-29 科东(广州)软件科技有限公司 一种操作系统上文件系统挂载方法、装置、设备及介质

Also Published As

Publication number Publication date
US8607227B2 (en) 2013-12-10
TW201301039A (zh) 2013-01-01
US20120331280A1 (en) 2012-12-27

Similar Documents

Publication Publication Date Title
TW201301039A (zh) 韌體燒錄方法
CN102629206B (zh) 一种嵌入式系统软件升级方法及系统
CN105094927B (zh) 一种设备固件升级方法和装置
US20070226400A1 (en) Information processing apparatus and method of using otp memory
CN105760200A (zh) 终端设备及其系统升级方法
CN101526907B (zh) 避免电子产品开机错误的闪存管理方法
CN102662715B (zh) 一种嵌入式操作系统启动方法
CN105930239A (zh) 一种计算机pxe测试方法
CN102075710B (zh) 一种电视机的启动运行方法及电视机
CN115510804A (zh) 全芯片管脚复用自动化验证方法、装置、设备及存储介质
CN100361075C (zh) 应用自动编译框架来快速开发嵌入式系统的方法及装置
CN105025364A (zh) 一种智能电视ota延迟升级的方法
CN107807870B (zh) 一种存储服务器主板掉电保护功能的测试方法和系统
US20150089486A1 (en) Method of Firmware Upgrade
CN103530142A (zh) 一种基于存储设备的Android系统升级方法和系统
CN102572591A (zh) 一种高级安全数字电视机顶盒生产方法及装置
US20100289902A1 (en) Testing system and method for video chip
US7490321B2 (en) Method for updating firmware via determining program code
CN117093247A (zh) 嵌入式设备的固件升级方法、装置、芯片和计算设备
CN115951920A (zh) 移动设备升级方法、装置、存储单元和移动设备
CN102722380A (zh) 移动通信终端的升级方法
CN102841796B (zh) 固件烧录方法
US7120772B2 (en) Micro-system for burn-in system program from a plug-able subsystem into main memory and method thereof
CN111611000B (zh) 一种高可靠的固件空中升级方法及系统
CN102883220B (zh) 一种机顶盒启动方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20160601

Address after: 518000 Guangdong Province, Shenzhen New District of Longhua City, Dalang street, Hua Sheng Lu Yong Jingxuan commercial building 1608

Applicant after: Jinyang Shenzhen sea Network Intelligent Technology Co.,Ltd.

Address before: 518109 Guangdong city of Shenzhen province Baoan District Longhua Town Industrial Zone tabulaeformis tenth East Ring Road No. 2 two

Applicant before: HONG FU JIN PRECISION INDUSTRY (SHENZHEN) Co.,Ltd.

Applicant before: HON HAI PRECISION INDUSTRY Co.,Ltd.

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20161008

Address after: 225599 Cao village, Jiangyan Town, Jiangyan District, Jiangsu, Taizhou

Applicant after: Taizhou Zhigu Software Park Co.,Ltd.

Address before: Tianhe District Tong East Road Guangzhou city Guangdong province 510665 B-101 No. 5, room B-118

Applicant before: GUANGDONG GAOHANG INTELLECTUAL PROPERTY OPERATION Co.,Ltd.

Effective date of registration: 20161008

Address after: Tianhe District Tong East Road Guangzhou city Guangdong province 510665 B-101 No. 5, room B-118

Applicant after: GUANGDONG GAOHANG INTELLECTUAL PROPERTY OPERATION Co.,Ltd.

Address before: 518000 Guangdong Province, Shenzhen New District of Longhua City, Dalang street, Hua Sheng Lu Yong Jingxuan commercial building 1608

Applicant before: Jinyang Shenzhen sea Network Intelligent Technology Co.,Ltd.

C14 Grant of patent or utility model
GR01 Patent grant