CN102819442B - 一种嵌入式设备程序烧写的方法及*** - Google Patents
一种嵌入式设备程序烧写的方法及*** Download PDFInfo
- Publication number
- CN102819442B CN102819442B CN201210268472.6A CN201210268472A CN102819442B CN 102819442 B CN102819442 B CN 102819442B CN 201210268472 A CN201210268472 A CN 201210268472A CN 102819442 B CN102819442 B CN 102819442B
- Authority
- CN
- China
- Prior art keywords
- programming
- card
- file
- embedded device
- boot loader
- 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.)
- Expired - Fee Related
Links
Landscapes
- Test And Diagnosis Of Digital Computers (AREA)
- Testing Of Individual Semiconductor Devices (AREA)
Abstract
本发明涉及一种嵌入式设备程序烧写的方法,包括:将待烧写程序文件分为引导装载程序Boot Loader和存储在SD卡中的其余烧写文件;增改BootLoader开源代码,将增改后的Boot Loader通过烧录器烧写入嵌入式设备;运行Boot Loader程序,利用SD卡中的文件将其余烧写文件烧写入嵌入式设备的FLASH中。本发明还提供了一种嵌入式设备程序烧写的***,包括Boot Loader模块(1)和烧写模块(2)。本发明的优点在于:烧录器只需烧录Boot Loader,较少了坏区的影响;通过SD卡可完成对所有待烧写程序的烧写;烧写过程中通过声音和显示提示,实现了人机交互。
Description
技术领域
本发明涉及嵌入式软件技术领域,更具体地说,涉及一种嵌入式设备程序烧写的方法及***。
背景技术
嵌入式***广泛应用于电子设备中,如手机、掌上电脑、机电设备等,从软件角度看通常嵌入式***分为:
引导程序:包括固化在固件中的引导代码即Boot代码和引导装载程序即BootLoader两大部分,其中Boot代码为可选;
内核:用于管理***给的进程、内存、设备驱动程序、文件等,决定着***的性能和稳定性;
文件***:包括根文件***和建立于FLASH内存设备之上的文件***;
用户应用程序:特定于用户的应用程序。
而嵌入式***的程序烧写时必不可少的步骤,即将二进制程序文件写入存储设备中,这些文件往往包括上述引导程序、内核、根文件***及应用程序等。常见的烧写方法通过烧录器将Boot Loader、内核以及根文件***等一起烧写入Flash中,这种方法的缺点是如果烧写区域存在坏区将会导致烧写失败。
发明内容
本发明要解决的技术问题在于,针对现有技术中当烧写区域存在坏区将会导致烧写失败,提供一种嵌入式设备程序烧写的方法及***。
本发明解决其技术问题所采用的技术方案如下:
构造了一种嵌入式设备程序烧写的方法,包括:
A1)将待烧写程序文件分为引导装载程序即Boot Loader和存储在SD卡中的其余烧写文件;
A2)增改Boot Loader开源代码,将增改后的Boot Loader通过烧录器烧写入嵌入式设备;所述Boot Loader源代码增改的内容包括对SD卡数据读写的支持及对fat32文件***的解析;所述开源代码包括VIVI。
A3)运行Boot Loader程序,启动***;
A4)判断SD卡中是否存在待烧写文件,如果存在,利用SD卡中的文件将其余烧写文件烧写入嵌入式设备的FLASH中,否则,返回步骤A3);所述其余烧写文件包括内核映像文件、根文件***映像文件、根文件***包、应用程序包及烧写工具,则所述步骤A4)进一步包括:
B1)启动烧写工具,将内核和根文件***映像文件从SD卡拷贝到内存中运行;
B2)通过内核、根文件***和烧写工具将所有文件烧写入嵌入式设备的FLASH中。
A5)烧写完成后,移除SD卡,重启***。
本发明所述的嵌入式设备程序烧写的方法,步骤A3)和A4)之间还包括:判断当前***中是否存在SD卡,如果存在,则挂载SD卡,获取SD卡中的文件列表,并进入步骤A4),否则,返回步骤A3)。
本发明所述的嵌入式设备程序烧写的方法适用于基于ARM9及以上平台的嵌入式设备,在烧写过程中,基于不同的嵌入式设备可通过声音或显示提示。
本发明还提供了一种嵌入式设备程序烧写的***,包括Boot Loader模块和烧写模块,所述Boot Loader模块用于判断当前***是否存在外接SD卡,以及当存在SD卡时初始化SD卡及读取SD卡中的文件,当SD卡中的文件存在烧写工具时,启动烧写工具;所述烧写模块用于在烧写工具启动后,将内核、根文件***及应用程序等烧写入嵌入式设备的FLASH中。
实施本发明的嵌入式设备程序烧写的方法及***,具有以下有益效果:烧录器只需烧录Boot Loader,较少了坏区的影响;通过SD卡可完成对所有待烧写程序的烧写;烧写过程中通过声音和显示提示,实现了人机交互。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1是本发明中嵌入式设备程序烧写的方法的流程图;
图2是本发明中嵌入式设备程序烧写的***的结构示意框图。
图3是本发明实施例中嵌入式设备程序烧写的***的Boot Loader模块的工作原理图;
图4是本发明实施例中嵌入式设备程序烧写的***的烧写模块的工作原理图。
具体实施方式
为了对本发明的技术特征、目的和效果有更加清楚的理解,现对照附图详细说明本发明的具体实施方式。
请参阅图1,是本发明嵌入式设备程序烧写的方法的流程图,该方法具体包括以下步骤:构造了一种嵌入式设备的程序烧写的方法,包括:
步骤11:将待烧写程序文件分为Boot Loader和存储在SD卡中的其余烧写文件;
步骤12:增改Boot Loader开源代码,将增改后的Boot Loader通过烧录器烧写入嵌入式设备;
在本实施例中,Boot Loader使用开源代码VIVI,增改的内容包括:对SD卡数据读写的支持,兼容标准SD卡和SDHC卡,及对fat32文件***的解析。由于Boot Loader文件较小,当使用烧录器进行烧写时,因出现坏区导致烧写失败的可能性极小。
步骤13:运行Boot Loader程序,正常启动***;
步骤14:判断当前***中是否存在SD卡,如果存在,则挂载SD卡,获取SD卡中的文件列表,并进入下述步骤,否则返回步骤103;
其中,在步骤14中,当检测出的当前***中存在SD卡时,首先初始化SD卡,鉴别SD卡的类型,按地址读取SD卡中的数据,标准SD卡为字节地址,SDHC卡为块地址,而对fat32文件***的解析,首先参照fat32文件***的格式,通过文件名,查找到文件数据的首地址,作为参数传递到SD卡读写模块,并获取文件占用的簇数,来确定文件是否读完。然后通过mount命令将SD卡挂载到文件***中,来进行下述步骤。
步骤15:判断SD卡中是否存在待烧写文件,如果不存在,返回步骤13,如果存在,利用SD卡中的其余烧写文件将待烧写文件烧写入嵌入式设备中;
其中,所述其余烧写文件包括内核映像文件、根文件***映像文件、根文件***包、应用程序包及烧写工具,则所述步骤15)进一步包括:
步骤151:启动烧写工具,将内核和根文件***映像文件从SD卡拷贝到内存中运行;
步骤152:通过内核、根文件***和烧写工具将所有文件烧写入嵌入式设备的FLASH中。对于内核,可以通过内核mtd提供的接口直接写入内核分区,对于跟文件***可将根文件***分区挂载到文件***中,然后将文件包解压;对于应用程序,可以通过复制、删除命令操作实现。
步骤16:烧写完成后,移除SD卡,重启***。
基于上述步骤,通过SD卡完成了对所有待烧写文件包括内核、根文件***、应用程序的烧写,而无需通过烧录器对这些待烧写文件进行烧写,因而避免了因坏区而导致的烧写失败。本发明实施例中所述的嵌入式设备的程序烧写的方法适用于基于ARM9及以上平台的嵌入式设备,在烧写过程中,基于不同的嵌入式设备可通过声音或显示提示,从而实现了人机交互,在烧写过程中出现异常可及时停止烧写,大大提高了烧写质量和效率。
本发明实施例中还公开了一种嵌入式设备程序烧写的***,如图2所示,包括BootLoader模块1和烧写模块2,其中Boot Loader模块1位于嵌入式***中,烧写模块2位于SD卡中。
请参阅图3所示,为Boot Loader模块1的工作原理图。Boot Loader模块1存在于嵌入式***中,模块的内容极为烧录入嵌入式设备中的Boot Loader,主要用于判断当前***是否存在外接SD卡,以及当存在SD卡时初始化SD卡及读取SD卡中的文件,当SD卡中的文件中存在其余烧写文件时,将SD卡中的内核和根文件***映像文件拷贝到内存中运行,并启动其余烧写文件中的烧写工具,以进行烧写。
请参阅图4所示,为烧写模块2的工作原理图。所述烧写模块用于在烧写工具启动后,将内核、根文件***及应用程序等烧写入嵌入式设备的FLASH中,其中内核通过内核mtd提供的接口直接写入内核分区,根文件***分区挂载到文件***中,然后将文件包解压以写入文件***,而对于应用程序,可通过烧写工具利用复制、删除等命令进行烧写,同时在烧写过程中通过显示或声音提示烧写进程,以实现人机交互。
以上所述,对于本领域的普通技术人员来说,可以根据本发明的技术方案和技术构思做出其他各种相应的改变和变形,而所有这些改变和变形都应属于本发明的权利要求的保护范围。
Claims (5)
1.一种嵌入式设备程序烧写的方法,其特征在于,包括:
A1)将待烧写程序文件分为引导装载程序Boot Loader和存储在SD卡中的其余烧写文件;
A2)增改Boot Loader开源代码,将增改后的Boot Loader通过烧录器烧写入嵌入式设备;
A3)运行Boot Loader程序,启动***;
A4)判断SD卡中是否存在待烧写文件,如果存在,利用SD卡中的文件将其余烧写文件烧写入嵌入式设备的FLASH中,否则,返回步骤A3);
A5)烧写完成后,移除SD卡,重启***;
步骤A2)中,所述Boot Loader源代码增改的内容包括对SD卡数据读写的支持及对fat32文件***的解析;所述开源代码包括VIVI;
所述其余烧写文件包括内核映像文件、根文件***映像文件、根文件***包、应用程序包及烧写工具,则所述步骤A4)进一步包括:
B1)启动烧写工具,将内核和根文件***映像文件从SD卡拷贝到内存中运行;
B2)通过内核、根文件***和烧写工具将所有文件烧写入嵌入式设备的FLASH中。
2.根据权利要求1所述的嵌入式设备程序烧写的方法,其特征在于,步骤A3)和A4)之间还包括:判断当前***中是否存在SD卡,如果存在,则挂载SD卡,获取SD卡中的文件列表,并进入步骤A4),否则,返回步骤A3)。
3.根据权利要求1-2中任一项所述的嵌入式设备程序烧写的方法,其特征在于,所述程序烧写的方法适用于基于ARM9及以上平台的嵌入式设备。
4.根据权利要求3所述的嵌入式设备程序烧写的方法,其特征在于,所述程序烧写的方法在烧写过程中基于不同的嵌入式设备通过声音或显示提示。
5.一种嵌入式设备程序烧写的***,其特征在于,包括Boot Loader模块(1)和烧写模块(2),所述Boot Loader模块(1)用于判断当前***是否存在外接SD卡,以及当存在SD卡时初始化SD卡及读取SD卡中的文件,所述烧写模块(2)用于其余烧写文件烧写入嵌入式设备的FLASH中;所述BootLoader模块(1)还用于当SD卡中的文件存在其余烧写文件时,将内核和根文件***映像文件拷贝到内存中运行,以及启动烧写工具;所述烧写模块(2)还用于在烧写过程中通过声音或显示提示烧写进度。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210268472.6A CN102819442B (zh) | 2012-07-31 | 2012-07-31 | 一种嵌入式设备程序烧写的方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210268472.6A CN102819442B (zh) | 2012-07-31 | 2012-07-31 | 一种嵌入式设备程序烧写的方法及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102819442A CN102819442A (zh) | 2012-12-12 |
CN102819442B true CN102819442B (zh) | 2018-06-26 |
Family
ID=47303567
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210268472.6A Expired - Fee Related CN102819442B (zh) | 2012-07-31 | 2012-07-31 | 一种嵌入式设备程序烧写的方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102819442B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103914303A (zh) * | 2014-04-10 | 2014-07-09 | 福建伊时代信息科技股份有限公司 | 一种进度条呈现方法及其装置 |
CN104317622B (zh) * | 2014-10-30 | 2018-05-29 | 深圳市捷顺科技实业股份有限公司 | 一种嵌入式设备程序烧录处理方法和*** |
CN104965725B (zh) * | 2015-01-16 | 2018-06-08 | 北京中电兴发科技有限公司 | 一种基于sd卡的嵌入式设备全自动固件烧写方法 |
CN105590072A (zh) * | 2015-12-18 | 2016-05-18 | 上海华测导航技术股份有限公司 | 一种实现嵌入式***自动烧录的方法 |
CN105653330A (zh) * | 2015-12-30 | 2016-06-08 | 国家电网公司 | 一种基于SD卡的NorFlash烧写***和方法 |
CN105677429A (zh) * | 2016-01-14 | 2016-06-15 | 北京天诚盛业科技有限公司 | 程序烧写方法、处理器和电子电路 |
CN108228281A (zh) * | 2018-02-07 | 2018-06-29 | 深圳怡化电脑股份有限公司 | 一种软件烧写方法及装置、嵌入式设备 |
CN108334453B (zh) * | 2018-02-28 | 2021-07-20 | 深圳创维数字技术有限公司 | 一种文件调试方法、装置、终端设备及存储介质 |
CN108563452A (zh) * | 2018-03-09 | 2018-09-21 | 南昌市科陆智能电网科技有限公司 | 一种嵌入式单片机自动化在线烧写程序的方法及*** |
CN109542466A (zh) * | 2018-11-15 | 2019-03-29 | 上海乐野网络科技有限公司 | 一种基于sd卡快速烧写固件的方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101216773A (zh) * | 2008-01-09 | 2008-07-09 | 深圳国人通信有限公司 | 一种嵌入式Linux***固件下载方法和装置 |
CN101334737A (zh) * | 2008-07-31 | 2008-12-31 | 深圳市同洲电子股份有限公司 | 一种嵌入式设备的启动或复位方法 |
CN102063317A (zh) * | 2010-12-22 | 2011-05-18 | Tcl集团股份有限公司 | 一种嵌入式设备重新烧写应用程序的方法及*** |
-
2012
- 2012-07-31 CN CN201210268472.6A patent/CN102819442B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101216773A (zh) * | 2008-01-09 | 2008-07-09 | 深圳国人通信有限公司 | 一种嵌入式Linux***固件下载方法和装置 |
CN101334737A (zh) * | 2008-07-31 | 2008-12-31 | 深圳市同洲电子股份有限公司 | 一种嵌入式设备的启动或复位方法 |
CN102063317A (zh) * | 2010-12-22 | 2011-05-18 | Tcl集团股份有限公司 | 一种嵌入式设备重新烧写应用程序的方法及*** |
Also Published As
Publication number | Publication date |
---|---|
CN102819442A (zh) | 2012-12-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102819442B (zh) | 一种嵌入式设备程序烧写的方法及*** | |
TWI515735B (zh) | 資料抹除方法、記憶體控制電路單元及記憶體儲存裝置 | |
CN104200843A (zh) | 闪存烧入器、烧入***及烧入方法 | |
CN100454257C (zh) | 嵌入式*** | |
CN102543193B (zh) | 一种闪存烧录方法、烧录设备及烧录*** | |
CN104317622A (zh) | 一种嵌入式设备程序烧录处理方法和*** | |
CN101271396A (zh) | 电子装置及其在线更新固件的方法 | |
CN105590072A (zh) | 一种实现嵌入式***自动烧录的方法 | |
CN101923473B (zh) | 嵌入式电子装置及更新其固件的方法 | |
CN106951289A (zh) | 一种在线升级方法、dsp控制器及升级*** | |
CN105468544B (zh) | 实现防掉电文件***的方法、装置以及防掉电文件*** | |
CN105760191A (zh) | 嵌入式***设备程序烧写量产方法 | |
CN102663471B (zh) | 基于emmc芯片的移动终端安全信息存储方法及*** | |
CN106569839A (zh) | 电路板及其固件烧录方法 | |
TW201250695A (en) | Memory erasing method, memory controller and memory storage apparatus | |
CN102841802A (zh) | 移动终端的软件升级方法 | |
CN103430178A (zh) | 数据更新方法及装置和产品 | |
US20140365710A1 (en) | Data storage apparatus and management method thereof | |
US20100153622A1 (en) | Data Access Controller and Data Accessing Method | |
CN101581959B (zh) | 多核芯片中复位单个核的方法和设备 | |
CN102207905A (zh) | ***恢复方法、存储媒体控制器及存储*** | |
CN103778032A (zh) | 一种类Unix操作***备份的方法及装置 | |
CN102629212A (zh) | 一种基于j-link间接烧写程序到nandflash的方法 | |
CN110688141A (zh) | 固件更新方法 | |
CN103389941A (zh) | 存储器格式化方法、存储器控制器及存储器存储装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20180626 Termination date: 20200731 |
|
CF01 | Termination of patent right due to non-payment of annual fee |