固件烧录方法

文档序号:6427047阅读:2775来源:国知局
专利名称:固件烧录方法
技术领域
本发明涉及一种固件烧录方法。
背景技术
在产线测试嵌入式设备之前,往往需要烧录固件以更新闪存(Flash)作为出货时所需要的出厂设定。现在产线的方式是先通过一种烧录模式(即写入模式,如Χ-Modem)手动将嵌入式设备中的原始固件烧录到主板的闪存中,再通过软件提取已经烧录到主板上的固件影像,包括启动引导程序(Bootloader)、内核(kernel)、加载程序(initramfs)、启动文件系统(rootfs)。这种通过硬件烧录的方法把烧录固件所需要的Bootloader, kernel,init ramfs, rootfs四个文件直接烧录在主板的Nand Flash上,就是所谓的硬烧录。 由于Flash容量比较大(rootfs包含的内容比较多),所以厂商允许Flash里可以有坏块的存在,硬烧录时遇到坏块就会跳到下一个位置继续烧录。由于每片Flash里的坏块可能不在同一个位置,从母板里提取出来的固件影像本身可能有坏块,当烧录子板时因为遇到坏块也会跳过,因此,母片中的坏块所跳转的位置可能会刚好落到子板的坏块中。虽然烧录器可以继续跳过坏块,但是在已经烧录完成的Flash中,里面的跳转是仍然存在的,这样在启动嵌入式设备时可能会因为错误无法启动,造成固件无法成功地烧录到Flash中,而且这个失败是无法避免的,只能再次通过X-Modem方式直接手动烧录原始固件,如此会严重影响产线生产测试嵌入式设备的速度。

发明内容
鉴于以上内容,有必要提供一种固件烧录方法,可以自动烧录固件,且避开硬烧录无法检查坏块的问题。所述固件烧录方法包括制作伪开机文件,该伪开机文件包括固件中的启动引导程序、第一内核、第二内核、第一加载程序和第二加载程序,及测试嵌入式设备的启动文件系统和应用程序;将该伪开机文件中的启动引导程序、第一内核、第二内核、第一加载程序和第二加载程序烧录到嵌入式设备的Flash中;启动嵌入式设备,依次启动引导程序、第一内核和第一加载程序;通过第一加载程序中存储的烧录脚本找到所述启动文件系统和应用程序对应的影像;利用Flash工具验证该Flash中当前待写入数据的寄存器是否可读写;若该寄存器可以进行数据读写,则将启动文件系统和应用程序烧录到该寄存器中;或若该寄存器不可以进行数据读写,则跳过该寄存器到下一个寄存器进行烧录。相较于现有技术,本发明提供的固件烧录系统及方法,通过制作一个伪开机文件,把烧录固件的软件隐藏在该伪开机文件中来烧录固件,如此可避开硬烧录无法检查坏块的问题。


图I是本发明较佳实施例中固件烧录方法的运行环境示意图。
图2是本发明较佳实施例中的伪开机文件。图3是本发明固件烧录方法较佳实施例的作业流程图。主要元件符号说明_
权利要求
1.一种固件烧录方法,其特征在于,该方法包括 制作伪开机文件,该伪开机文件包括固件中的启动引导程序、第一内核、第二内核、第一加载程序和第二加载程序,及测试嵌入式设备的启动文件系统和应用程序; 将该伪开机文件中的启动引导程序、第一内核、第二内核、第一加载程序和第二加载程序烧录到嵌入式设备的Flash中; 启动嵌入式设备,依次启动引导程序、第一内核和第一加载程序; 当所述第一加载程序中存储的烧录脚本识别到存有所述启动文件系统和应用程序的存储装置时,从该存储装置中下载该启动文件系统和应用程序对应的影像; 利用Flash工具验证Flash中当前待写入数据的寄存器是否可读写; 若该寄存器能进行数据读写,则将启动文件系统和应用程序烧录到该寄存器中;或 若该寄存器不能进行数据读写,则跳过该寄存器到下一个寄存器进行烧录。
2.如权利要求I所述的固件烧录方法,其特征在于,所述制作伪开机文件的步骤包括 制作启动引导程序; 制作第一内核,该第一内核为嵌入式设备第一次运行时的内核,其中包含支持烧录固件的服务支持; 制作第二内核,该第二内核为嵌入式设备正式运行时的内核; 制作第一加载程序,该第一加载程序为烧录固件时运行于随机存取存储器中的initramfs,其中存有烧录脚本; 制作第二加载程序,该第二加载程序为嵌入式设备正式运行时运行于随机存取存储器中的 init ramfs ; 制作启动文件系统;及 制作应用程序。
3.如权利要求I所述的固件烧录方法,其特征在于,在所述制作伪开机文件之后,该方法还包括 将所述启动引导程序、第一内核、第二内核、第一加载程序和第二加载程序存于嵌入式设备的随机存取存储器中。
4.如权利要求I所述的固件烧录方法,其特征在于,在所述制作伪开机文件之后,该方法还包括 将所述启动文件系统和应用程序存于所述存储装置中,该存储装置为USB。
5.如权利要求I所述的固件烧录方法,其特征在于,所述Flash为NandFlash。
全文摘要
一种固件烧录方法包括制作伪开机文件,该文件包括固件中的启动引导程序、第一内核、第二内核、第一加载程序和第二加载程序、启动文件系统和应用程序;将启动引导程序、第一内核、第二内核、第一加载程序和第二加载程序烧录到Flash中;启动嵌入式设备,依次启动引导程序、第一内核和第一加载程序;当第一加载程序中存储的烧录脚本识别到存有启动文件系统和应用程序的存储装置时,下载该启动文件系统和应用程序的影像;验证该Flash中当前待写入数据的寄存器是否可读写;若能读写,则将启动文件系统和应用程序烧录到该寄存器中;或若不能读写,则跳到下一个寄存器进行烧录。利用本发明可避开硬烧录无法检查坏块的问题。
文档编号G06F9/445GK102841796SQ201110173070
公开日2012年12月26日 申请日期2011年6月24日 优先权日2011年6月24日
发明者林玉龙, 董华, 谭杰君, 张俊 申请人:鸿富锦精密工业(深圳)有限公司, 鸿海精密工业股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1