一种基于sd卡的嵌入式设备全自动固件烧写方法

文档序号:9249125阅读:662来源:国知局
一种基于sd卡的嵌入式设备全自动固件烧写方法
【技术领域】
[0001]本发明涉及嵌入式设备的固件烧写领域,尤其涉及一种基于SD卡的嵌入式设备全自动固件烧写方法。
【背景技术】
[0002]现今嵌入式设备作为电子产品的主控芯片广泛应用于电子领域,而任何一种嵌入式设备,都需要烧写uboot,内核,文件系统等固件程序,经上电后才能正常启动。
[0003]对现有嵌入式设备进行固件烧写的方法通常有两种,一种方法为使用无线通讯方式进行固件烧写,这种方式需要嵌入式设备支持无线设备驱动文件,因而需要消耗嵌入式设备大量存储空间,并且由于无线通讯相关驱动的通用性较差,不利于嵌入式设备的批量生产。
[0004]另一种方法为使用有线通信的方式将固件写入嵌入式设备,即通过具有通用性的JTAG、串口、USB、SD卡等介质进行烧写,这种方式每次烧写均需要建立嵌入式设备与电脑的物理连接,并且要在电脑上安装相关的驱动、烧写软件或烧写命令,因此,操作复杂、工作量大,自动化程度低。在烧写过程始终需要保持与固件烧写设备的物理连接,由于固件烧写耗时较长而造成了严重的资源占用。因此,对于工业化大批量生产而言,这种方法工作量大并且成本较高,而效率却十分低下。

【发明内容】

[0005]本发明所要解决的技术问题在于,提供一种基于SD卡的嵌入式设备全自动固件烧写方法,达到只通过一张SD卡就可以实现嵌入式ARM设备的固件全自动烧写的目的,从而简化了烧写操作步骤,显著提高了生产效率。
[0006]本发明是这样实现的,一种基于SD卡的嵌入式设备全自动固件烧写方法,所述方法包括下述步骤:
[0007]S1、定制具有全自动烧写功能的引导加载器;
[0008]S2、将引导加载器和待烧写固件统一存入电脑;
[0009]S3、将SD卡插入电脑,为SD卡定制磁盘分区;
[0010]S4、将上述引导加载器和待烧写固件写入SD卡相应分区,制作出具有固件自动烧写功能的SD卡;
[0011]S5、将SD卡插入嵌入式设备,引导加载器自行启动,将所有待烧写固件写入嵌入式设备;
[0012]S6、引导加载器控制嵌入式设备提示固件烧写完成。
[0013]所述步骤SI定制引导加载器具体包括:
[0014]I)、获取引导加载器原始文件;
[0015]2)、为引导加载器添加闪存坏块检测与跳过处理功能;
[0016]3)、为引导加载器增加初始化设置与固件自动烧写功能;
[0017]4)、为引导加载器增加烧写完毕自动提示功能;
[0018]5)、生成可执行的引导加载器文件。
[0019]所述步骤2)中坏块检测与跳过处理方法具体为:擦除闪存中的每一个块,如果擦除失败,则判定该块为一个坏块,记录闪存中所有的坏块,在烧写固件程序时,直接跳过坏块进行烧写。
[0020]所述步骤S3定制磁盘分区方法具体为:
[0021]I)、删除SD卡已有分区;
[0022]2)、新建两个分区 sdbl、sdb2 ;
[0023]3)、将sdbl格式化为vfat文件系统,作为引导加载器和待烧写固件的存储区。
[0024]S3、S4为制作具有支持嵌入式设备全自动固件烧写功能的SD卡的步骤,制作过程可以使用自动处理脚本统一完成,自动处理脚本根据不同型号嵌入式设备烧写不同固件。
[0025]所述步骤S6中引导加载器控制嵌入式设备通过指示灯一直闪烁来提示固件烧写完成。引导加载器设置死循环,当烧写完成后,由该死循环向嵌入式设备1 口不间断地输出控制命令,使嵌入式设备上的指示灯一直闪烁。
[0026]实施本发明,具有如下有益效果:
[0027]本发明提供了一种基于SD卡的嵌入式设备全自动固件烧写方法。通过定制具有全自动烧写功能的引导加载器,并将加载器与待烧写固件写入SD卡,从而制作出具备全自动固件烧写的SD卡,通过将SD卡插入嵌入式设备即可实现全自动烧写。本发明通过制作具有全自动固件烧写功能的SD卡使得嵌入式设备固件烧写不再需要连接电脑,降低了固件烧写成本,使得烧写可以随时随地进行,而SD卡的制作和嵌入式设备固件烧写均为自动化过程,因而极大地提升了工作效率,节约了人力成本。此外,在制作SD卡过程中,为SD卡定制了磁盘分区从而加快磁盘读写速度;在固件烧写过程中,进行了坏块检测与跳过处理,避免了对坏块进行操作而耽误固件烧写时间;并对嵌入式设备进行了初始化设置从而不必通过串口重新配置环境变量即可启动嵌入式设备,本方法在实现细节上显著地提升了固件烧写效率。
【附图说明】
[0028]图1是基于SD卡的嵌入式设备全自动固件烧写方法流程图;
[0029]图2是定制具有全自动烧写功能的引导加载器的流程图。
【具体实施方式】
[0030]为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述。
[0031]本发明实施例提供了一种基于SD卡的嵌入式设备全自动固件烧写方法,如图1所示,所述方法包括下述步骤:
[0032]S1、定制具有全自动烧写功能的引导加载器;
[0033]S2、将引导加载器和待烧写固件统一存入电脑;
[0034]S3、将SD卡插入电脑,为SD卡定制磁盘分区;
[0035]S4、将上述引导加载器和待烧写固件写入SD卡相应分区,制作出具有固件自动烧写功能的SD卡;
[0036]S5、将SD卡插入嵌入式设备,引导加载器自行启动,将所有待烧写固件写入监控摄像机;
[0037]S6、引导加载器控制监控摄像机提示固件烧写完成。
[0038]所述步骤SI定制引导加载器具体如图2所示,包括:
[0039]I)、获取 uboot 源码;
[0040]2)、为uboot添加nand flash或spi flash坏块检测与跳过处理功能;
[0041]3)、为uboot增加初始化设置与固件自动烧写功能;
[0042]4)、为uboot增加烧写完毕自动提示功能;
[0043]5)、生成可执行的引导加载器文件u-boot-sd.bin。
[0044]所述步骤2)中坏块检测与跳过处理方法具体为:使用nand era se擦除nandflash中的每一个块,如果返回成功则表示该块是好的,如果返回失败,则表示该块为一个坏块,则在该块的oob区域标记该块为坏块,并且在表示块好坏的数组中设置该块的值为1,烧写固件程序时,由于其值为1,可以直接跳过这个坏块;若应用于spi flash JJMEnanderase 换成 sf erase,把 nand write 换成 sf write 艮P可。
[0045]所述步骤3)初始化设置中需要配置正确的bootargs,bootcmd,ipadder,e
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1