CN104965725A - 一种基于sd卡的嵌入式设备全自动固件烧写方法 - Google Patents
一种基于sd卡的嵌入式设备全自动固件烧写方法 Download PDFInfo
- Publication number
- CN104965725A CN104965725A CN201510024496.0A CN201510024496A CN104965725A CN 104965725 A CN104965725 A CN 104965725A CN 201510024496 A CN201510024496 A CN 201510024496A CN 104965725 A CN104965725 A CN 104965725A
- Authority
- CN
- China
- Prior art keywords
- programming
- firmware
- card
- automatic
- embedded device
- 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
Links
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开一种基于SD卡的嵌入式设备全自动固件烧写方法,所述方法包括:定制具有全自动烧写功能的引导加载器;由电脑将引导加载器和待烧写固件进行统一存储;将SD卡插入电脑,为SD卡定制磁盘分区;将引导加载器和待烧写固件写入SD卡相应分区,制作出具有固件自动烧写功能的SD卡;将SD卡插入嵌入式设备,引导加载器自行启动,将所有待烧写固件写入嵌入式设备;固件烧写结束,引导加载器控制嵌入式设备指示灯闪烁,提示固件烧写完成。本发明只通过一张SD卡就可以实现了嵌入式ARM设备的固件全自动烧写,从而简化了烧写方法,显著提高了生产效率,降低了烧写成本。
Description
技术领域
本发明涉及嵌入式设备的固件烧写领域,尤其涉及一种基于SD卡的嵌入式设备全自动固件烧写方法。
背景技术
现今嵌入式设备作为电子产品的主控芯片广泛应用于电子领域,而任何一种嵌入式设备,都需要烧写uboot,内核,文件系统等固件程序,经上电后才能正常启动。
对现有嵌入式设备进行固件烧写的方法通常有两种,一种方法为使用无线通讯方式进行固件烧写,这种方式需要嵌入式设备支持无线设备驱动文件,因而需要消耗嵌入式设备大量存储空间,并且由于无线通讯相关驱动的通用性较差,不利于嵌入式设备的批量生产。
另一种方法为使用有线通信的方式将固件写入嵌入式设备,即通过具有通用性的JTAG、串口、USB、SD卡等介质进行烧写,这种方式每次烧写均需要建立嵌入式设备与电脑的物理连接,并且要在电脑上安装相关的驱动、烧写软件或烧写命令,因此,操作复杂、工作量大,自动化程度低。在烧写过程始终需要保持与固件烧写设备的物理连接,由于固件烧写耗时较长而造成了严重的资源占用。因此,对于工业化大批量生产而言,这种方法工作量大并且成本较高,而效率却十分低下。
发明内容
本发明所要解决的技术问题在于,提供一种基于SD卡的嵌入式设备全自动固件烧写方法,达到只通过一张SD卡就可以实现嵌入式ARM设备的固件全自动烧写的目的,从而简化了烧写操作步骤,显著提高了生产效率。
本发明是这样实现的,一种基于SD卡的嵌入式设备全自动固件烧写方法,所述方法包括下述步骤:
S1、定制具有全自动烧写功能的引导加载器;
S2、将引导加载器和待烧写固件统一存入电脑;
S3、将SD卡插入电脑,为SD卡定制磁盘分区;
S4、将上述引导加载器和待烧写固件写入SD卡相应分区,制作出具有固件自动烧写功能的SD卡;
S5、将SD卡插入嵌入式设备,引导加载器自行启动,将所有待烧写固件写入嵌入式设备;
S6、引导加载器控制嵌入式设备提示固件烧写完成。
所述步骤S1定制引导加载器具体包括:
1)、获取引导加载器原始文件;
2)、为引导加载器添加闪存坏块检测与跳过处理功能;
3)、为引导加载器增加初始化设置与固件自动烧写功能;
4)、为引导加载器增加烧写完毕自动提示功能;
5)、生成可执行的引导加载器文件。
所述步骤2)中坏块检测与跳过处理方法具体为:擦除闪存中的每一个块,如果擦除失败,则判定该块为一个坏块,记录闪存中所有的坏块,在烧写固件程序时,直接跳过坏块进行烧写。
所述步骤S3定制磁盘分区方法具体为:
1)、删除SD卡已有分区;
2)、新建两个分区sdb1、sdb2;
3)、将sdb1格式化为vfat文件系统,作为引导加载器和待烧写固件的存储区。
S3、S4为制作具有支持嵌入式设备全自动固件烧写功能的SD卡的步骤,制作过程可以使用自动处理脚本统一完成,自动处理脚本根据不同型号嵌入式设备烧写不同固件。
所述步骤S6中引导加载器控制嵌入式设备通过指示灯一直闪烁来提示固件烧写完成。引导加载器设置死循环,当烧写完成后,由该死循环向嵌入式设备IO口不间断地输出控制命令,使嵌入式设备上的指示灯一直闪烁。
实施本发明,具有如下有益效果:
本发明提供了一种基于SD卡的嵌入式设备全自动固件烧写方法。通过定制具有全自动烧写功能的引导加载器,并将加载器与待烧写固件写入SD卡,从而制作出具备全自动固件烧写的SD卡,通过将SD卡插入嵌入式设备即可实现全自动烧写。本发明通过制作具有全自动固件烧写功能的SD卡使得嵌入式设备固件烧写不再需要连接电脑,降低了固件烧写成本,使得烧写可以随时随地进行,而SD卡的制作和嵌入式设备固件烧写均为自动化过程,因而极大地提升了工作效率,节约了人力成本。此外,在制作SD卡过程中,为SD卡定制了磁盘分区从而加快磁盘读写速度;在固件烧写过程中,进行了坏块检测与跳过处理,避免了对坏块进行操作而耽误固件烧写时间;并对嵌入式设备进行了初始化设置从而不必通过串口重新配置环境变量即可启动嵌入式设备,本方法在实现细节上显著地提升了固件烧写效率。
附图说明
图1是基于SD卡的嵌入式设备全自动固件烧写方法流程图;
图2是定制具有全自动烧写功能的引导加载器的流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述。
本发明实施例提供了一种基于SD卡的嵌入式设备全自动固件烧写方法,如图1所示,所述方法包括下述步骤:
S1、定制具有全自动烧写功能的引导加载器;
S2、将引导加载器和待烧写固件统一存入电脑;
S3、将SD卡插入电脑,为SD卡定制磁盘分区;
S4、将上述引导加载器和待烧写固件写入SD卡相应分区,制作出具有固件自动烧写功能的SD卡;
S5、将SD卡插入嵌入式设备,引导加载器自行启动,将所有待烧写固件写入监控摄像机;
S6、引导加载器控制监控摄像机提示固件烧写完成。
所述步骤S1定制引导加载器具体如图2所示,包括:
1)、获取uboot源码;
2)、为uboot添加nand flash或spi flash坏块检测与跳过处理功能;
3)、为uboot增加初始化设置与固件自动烧写功能;
4)、为uboot增加烧写完毕自动提示功能;
5)、生成可执行的引导加载器文件u-boot-sd.bin。
所述步骤2)中坏块检测与跳过处理方法具体为:使用nand erase擦除nand flash中的每一个块,如果返回成功则表示该块是好的,如果返回失败,则表示该块为一个坏块,则在该块的oob区域标记该块为坏块,并且在表示块好坏的数组中设置该块的值为1,烧写固件程序时,由于其值为1,可以直接跳过这个坏块;若应用于spi flash,则把nand erase换成sf erase,把nand write换成sf write即可。
所述步骤3)初始化设置中需要配置正确的bootargs,bootcmd,ipadder,ethaddr等环境变量参数,这样烧写完固件后,就不必要通过串口重新配置环境变量,监控摄像机便能够成功启动,从而加快生产速度。
为uboot增加自动烧写命令,其主要实现方法具体为:在uboot的文件main.c中的main_loop()中增加一个全自动烧写函数,函数会自动调用相关命令完成相关固件的烧写,比如烧写文件系统filesys的命令为
fatload mmc 0 0x81000000 filesys;
nand erase 0x260000 0xBF0000;
nand write 0x81000000 0x260000 0xBF0000;
所述步骤4)烧写完毕自动提示功能,实现方法具体为:在上述全自动烧写函数中增加一个让IO口输出0和1的代码,这样接在IO口上的LED灯就会亮灭,同时为了烧写完成后一直闪烁,所以设置一个死循环。
所述步骤5),编译uboot生成sd卡全自动烧写程序u-boot-sd.bin。
所述步骤S3定制磁盘分区方法具体为:
1)、删除SD卡已有分区;
2)、新建两个分区sdb1、sdb2;
3)、将sdb1格式化为vfat文件系统,作为引导加载器和待烧写固件的存储区。
步骤S3中的子步骤1)和步骤2)实现方法具体为:利用ubuntu中的一个fdisk格式化命令,利用该命令中的d,可以删除之前的所有的分区,然后点击w保存后,将sd卡从ubuntu中退出,然后再次将sd卡移进ubuntu中,使用2次n命令,这样便会将sd卡分成2个分区/dev/sdb1和/dev/sdb2。通过磁盘分区,嵌入式设备可以有目的的针对磁盘某个分区进行读写操作,相较于对一个SD卡所有空间进行操作,磁盘分区可以显著提升固件烧写效率。
步骤S3中的子步骤3)实现方法具体为:使用mkfs.vfat命令将/dev/sdb1格式化为vfat文件系统,通过ubuntu中提供的格式化命令mkfs.vfat,将/dev/sdb1分区中所有的空间格式化成vfat格式分区,然后使用cp命令将S2中统一存储的待烧写固件uboot、kernel、filesys,连同sd卡烧写程序u-boot-sd.bin写入sd中。
S3、S4为制作具有支持监控摄像机全自动固件烧写功能的SD卡的步骤,制作过程可以使用自动处理脚本统一完成,自动处理脚本有待烧写文件的固件名,因而可以通过修改固件名,为不同型号的监控摄像机,烧写不同的固件。
所述步骤S6中引导加载器控制监控摄像机通过指示灯一直闪烁来提示固件烧写完成。引导加载器设置死循环,当烧写完成后,由该死循环向监控摄像机IO口不间断地输出控制命令,使监控摄像机上的指示灯一直闪烁。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
Claims (9)
1.一种基于SD卡的嵌入式设备全自动固件烧写方法,其特征在于,包括如下步骤:
S1、定制具有全自动烧写功能的引导加载器;
S2、将引导加载器和待烧写固件统一存入电脑;
S3、将SD卡插入电脑,为SD卡定制磁盘分区;
S4、将上述引导加载器和待烧写固件写入SD卡的相应分区,制作出具有固件自动烧写功能的SD卡;
S5、将SD卡插入嵌入式设备,引导加载器自行启动,将所有待烧写固件写入嵌入式设备;
S6、引导加载器控制嵌入式设备提示固件烧写完成。
2.根据权利要求1所述的一种基于SD卡的嵌入式设备全自动固件烧写方法,其特征在于,S3定制磁盘分区方法为:
1)、删除SD卡已有分区;
2)、新建两个分区sdb1、sdb2;
3)、将sdb1格式化为vfat文件系统,作为引导加载器和待烧写固件的存储区。
3.根据权利要求1或2所述的一种基于SD卡的嵌入式设备全自动固件烧写方法,其特征在于,使用自动处理脚本统一完成S3、S4。
4.根据权利要求3中所述的一种基于SD卡的嵌入式设备全自动固件烧写方法,其特征在于,自动处理脚本根据不同型号嵌入式设备烧写不同固件。
5.根据权利要求1或2所述的一种基于SD卡的嵌入式设备全自动固件烧写方法,其特征在于,S1包括如下步骤:
1)、获取引导加载器原始文件;
2)、为引导加载器添加闪存坏块检测与跳过处理功能;
3)、为引导加载器增加初始化设置与固件自动烧写功能;
4)、为引导加载器增加烧写完毕自动提示功能;
5)、生成可执行的引导加载器文件。
6.根据权利要求5所述的一种基于SD卡的嵌入式设备全自动固件烧写方法,其特征在于,2)中坏块检测与跳过处理方法为:
擦除闪存中的每一个块,如果擦除失败,则判定该块为一个坏块,记录闪存中所有的坏块,在烧写固件程序时,直接跳过坏块进行烧写。
7.根据权利要求1-6中任意一项所述的一种基于SD卡的嵌入式设备全自动固件烧写方法,其特征在于,S5中将SD卡插入嵌入式设备,引导加载器自行启动,完成下述动作:
擦除闪存中的每一个块,如果擦除失败,则判定该块为一个坏块,记录闪存中所有的坏块;初始化嵌入式设备默认的环境变量,并将固件烧写至嵌入式设备中,在烧写固件程序时,直接跳过坏块进行烧写。
8.根据权利要求1-7中任意一项所述的一种基于SD卡的嵌入式设备全自动固件烧写方法,其特征在于,S6中引导加载器控制嵌入式设备通过指示灯一直闪烁来提示固件烧写完成,
引导加载器设置死循环,当烧写完成后,由该死循环向嵌入式设备IO口不间断地输出控制命令,使嵌入式设备上的指示灯一直闪烁。
9.根据权利要求1-8中任意一项所述的一种基于SD卡的嵌入式设备全自动固件烧写方法,其特征在于,S2中所述待烧写固件为uboot、kernel和filesys。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510024496.0A CN104965725B (zh) | 2015-01-16 | 2015-01-16 | 一种基于sd卡的嵌入式设备全自动固件烧写方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510024496.0A CN104965725B (zh) | 2015-01-16 | 2015-01-16 | 一种基于sd卡的嵌入式设备全自动固件烧写方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104965725A true CN104965725A (zh) | 2015-10-07 |
CN104965725B CN104965725B (zh) | 2018-06-08 |
Family
ID=54219760
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510024496.0A Active CN104965725B (zh) | 2015-01-16 | 2015-01-16 | 一种基于sd卡的嵌入式设备全自动固件烧写方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104965725B (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105630559A (zh) * | 2015-12-25 | 2016-06-01 | 广州视源电子科技股份有限公司 | 板卡固件烧录方法及其系统 |
CN105653330A (zh) * | 2015-12-30 | 2016-06-08 | 国家电网公司 | 一种基于SD卡的NorFlash烧写系统和方法 |
CN105760191A (zh) * | 2016-02-02 | 2016-07-13 | 西安诺瓦电子科技有限公司 | 嵌入式系统设备程序烧写量产方法 |
CN106168906A (zh) * | 2016-06-23 | 2016-11-30 | 广州信位通讯科技有限公司 | 一种网络摄像机的固件升级方法 |
CN107491698A (zh) * | 2016-06-12 | 2017-12-19 | 联想(上海)信息技术有限公司 | Hdd加密固件更新方法、装置及电子设备 |
CN109542466A (zh) * | 2018-11-15 | 2019-03-29 | 上海乐野网络科技有限公司 | 一种基于sd卡快速烧写固件的方法 |
CN110187899A (zh) * | 2019-06-04 | 2019-08-30 | 深圳云里物里科技股份有限公司 | 一种固件烧写方法、装置及其相关设备 |
CN112764767A (zh) * | 2019-10-21 | 2021-05-07 | 深圳君正时代集成电路有限公司 | 一种实现卡启和卡烧录nand的方法 |
CN112799698A (zh) * | 2021-01-14 | 2021-05-14 | 陕西建工安装集团(河南)有限公司 | 一种U-boot下基于SD卡自动升级方法 |
CN113821230A (zh) * | 2020-06-18 | 2021-12-21 | 神州龙芯智能科技有限公司 | 一种嵌入式系统的系统固件更新方式设计 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102629206A (zh) * | 2012-02-29 | 2012-08-08 | 深圳市赛格导航科技股份有限公司 | 一种嵌入式系统软件升级方法及系统 |
CN102819442A (zh) * | 2012-07-31 | 2012-12-12 | 深圳市赛格导航科技股份有限公司 | 一种嵌入式设备程序烧写的方法及系统 |
CN103838585A (zh) * | 2012-11-20 | 2014-06-04 | 广州市暨华医疗器械有限公司 | 基于sd卡实现arm9嵌入式系统自动烧录的方法 |
-
2015
- 2015-01-16 CN CN201510024496.0A patent/CN104965725B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102629206A (zh) * | 2012-02-29 | 2012-08-08 | 深圳市赛格导航科技股份有限公司 | 一种嵌入式系统软件升级方法及系统 |
CN102819442A (zh) * | 2012-07-31 | 2012-12-12 | 深圳市赛格导航科技股份有限公司 | 一种嵌入式设备程序烧写的方法及系统 |
CN103838585A (zh) * | 2012-11-20 | 2014-06-04 | 广州市暨华医疗器械有限公司 | 基于sd卡实现arm9嵌入式系统自动烧录的方法 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105630559A (zh) * | 2015-12-25 | 2016-06-01 | 广州视源电子科技股份有限公司 | 板卡固件烧录方法及其系统 |
CN105630559B (zh) * | 2015-12-25 | 2018-12-28 | 广州视源电子科技股份有限公司 | 板卡固件烧录方法及其系统 |
CN105653330A (zh) * | 2015-12-30 | 2016-06-08 | 国家电网公司 | 一种基于SD卡的NorFlash烧写系统和方法 |
CN105760191A (zh) * | 2016-02-02 | 2016-07-13 | 西安诺瓦电子科技有限公司 | 嵌入式系统设备程序烧写量产方法 |
CN107491698A (zh) * | 2016-06-12 | 2017-12-19 | 联想(上海)信息技术有限公司 | Hdd加密固件更新方法、装置及电子设备 |
CN106168906A (zh) * | 2016-06-23 | 2016-11-30 | 广州信位通讯科技有限公司 | 一种网络摄像机的固件升级方法 |
CN109542466A (zh) * | 2018-11-15 | 2019-03-29 | 上海乐野网络科技有限公司 | 一种基于sd卡快速烧写固件的方法 |
CN110187899A (zh) * | 2019-06-04 | 2019-08-30 | 深圳云里物里科技股份有限公司 | 一种固件烧写方法、装置及其相关设备 |
CN112764767A (zh) * | 2019-10-21 | 2021-05-07 | 深圳君正时代集成电路有限公司 | 一种实现卡启和卡烧录nand的方法 |
CN113821230A (zh) * | 2020-06-18 | 2021-12-21 | 神州龙芯智能科技有限公司 | 一种嵌入式系统的系统固件更新方式设计 |
CN112799698A (zh) * | 2021-01-14 | 2021-05-14 | 陕西建工安装集团(河南)有限公司 | 一种U-boot下基于SD卡自动升级方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104965725B (zh) | 2018-06-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104965725A (zh) | 一种基于sd卡的嵌入式设备全自动固件烧写方法 | |
CN105590072A (zh) | 一种实现嵌入式系统自动烧录的方法 | |
CN103677915B (zh) | 一种基于TF启动卡进行flash镜像自动烧写的方法 | |
CN105373404A (zh) | 软件镜像烧录方法及设备 | |
CN102955723B (zh) | 一种硬件自动测试方法及系统 | |
CN102053850A (zh) | 一种在线升级fpga逻辑的方法 | |
CN103970557B (zh) | 存储设备启动系统的方法及存储设备 | |
CN105760191A (zh) | 嵌入式系统设备程序烧写量产方法 | |
CN105824678A (zh) | 一种操作系统安装方法及装置 | |
CN107690630B (zh) | 计算设备中的桥配置 | |
CN105653330A (zh) | 一种基于SD卡的NorFlash烧写系统和方法 | |
CN103324503A (zh) | 一种数据烧录系统及方法 | |
TW200636471A (en) | Method of parallel programmable memory and the system thereof | |
CN102662749A (zh) | 一种双Boot切换的实现方法及装置 | |
KR20110076432A (ko) | Can 통신을 이용한 다중 프로그램 업데이트 시스템 및 방법 | |
CN109460240A (zh) | 一种固件烧写组件及固件烧写方法、系统和存储介质 | |
CN106303707A (zh) | 一种版本烧录方法、系统及终端 | |
CN112000351A (zh) | Bmc固件的更新方法、更新装置、更新设备及存储介质 | |
CN103744712A (zh) | 一种应用程序的更新方法及装置 | |
CN106168906A (zh) | 一种网络摄像机的固件升级方法 | |
CN105354071A (zh) | 一种嵌入式软件兼容硬件的方法 | |
CN102520961A (zh) | 片外在线可编程的soc系统及其控制方法 | |
CN104050006A (zh) | 一种fpga的更新系统及其更新方法 | |
CN106681755B (zh) | 产品id配置方法以及嵌入式设备的程序加载方法 | |
CN110825409A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |