CN103677915B - 一种基于TF启动卡进行flash镜像自动烧写的方法 - Google Patents
一种基于TF启动卡进行flash镜像自动烧写的方法 Download PDFInfo
- Publication number
- CN103677915B CN103677915B CN201310669141.8A CN201310669141A CN103677915B CN 103677915 B CN103677915 B CN 103677915B CN 201310669141 A CN201310669141 A CN 201310669141A CN 103677915 B CN103677915 B CN 103677915B
- Authority
- CN
- China
- Prior art keywords
- card
- subregions
- flash
- cpu
- system kernel
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 20
- 230000004913 activation Effects 0.000 claims description 6
- 230000000903 blocking effect Effects 0.000 claims description 3
- 238000005192 partition Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013515 script Methods 0.000 description 1
Landscapes
- Stored Programmes (AREA)
Abstract
本发明涉及flash的烧写技术领域,具体涉及基于TF启动卡进行flash镜像自动烧写的方法。本发明在嵌入式Linux系统中,制作TF启动卡,设备采用TF启动卡启动,当设备启动时,系统先运行TF启动卡P2分区中的系统内核,并挂载P3分区中的根文件系统,然后将P1分区挂载到根文件系统下,利用集成在P3分区中的flash操控工具,将P1分区中的系统内核和根文件系统自动烧写到flash对应的分区上,可以进行批量烧写,并大大简化烧写过程,提高烧写效率。
Description
技术领域
本发明涉及flash的烧写技术领域,具体涉及基于TF启动卡进行flash镜像自动烧写的方法。
背景技术
Flash在嵌入式系统中的应用越来越广泛,因为flash具有高容量、高稳定性和快速的读写的优点,所以flash已经成为主流的介质,但是由于嵌入式的设计已经介入了linux和WINCE量大操作系统,使这个文件变得庞大起来,所以将文件烧写到flash中就遇到了烧写瓶颈。以往flash的烧写,都是第一步用JTAG烧写bootloader,使最小系统加载bootloader后初始化各通信口后(如串口,网卡等),再由串口下载linux的内核,从而建立文件系统,然后通过网卡下载linux应用程序实现。而JTAG和串口由于是串行输入,同时也受到本身相关芯片速率的影响(MAX232芯片的速度比起flash的读写,速度慢多了),虽然bootloader+linux内核文件只有应用程序内容的1/8,但是造成烧写总时间却是应用程序时间8倍之多的局面,使整个烧写flash的时间无比漫长,而在bootloader没有烧写之前,串口和网口是不能与电脑主机通信的,而在没有烧写linux内核的前提下,网口虽然是可以与主机通信,但是由于未通过文件系统的排列,而使整个系统的引导文件未存在指定的位置上,造成不能启动linux情况出现。如果使用多个串口与电脑通信的方法,表面上是一个不错的选择,但是一台电脑只有2个串口,如果将一串口扩展成多个串口,可能造成下位机对上位机的反馈信号错误(可能一台下位机已经好了,但是还有一台没有写完,反馈给上位机却是烧写好的),所以此方法也行不通。
而在嵌入式Linux系统中,flash的分区是在内核启动阶段即已完成,这要求烧写不同flash分区配置的系统时,上位机软件必须进行不同配置,每个分区的配置都需要调测人员通过连接串口和网口进行软件下载后,再烧写程序,这就需要反复插拔串口线、网线和开关电源,导致程序烧写过程中自动化程度不高。特别是在批量烧写的时候,如果采用人工手动烧写的方法,不仅耗费大量的人力物力,而且配置繁琐,烧写效率极低。
发明内容
为了解决上述技术问题,本发明通过可从TF卡启动系统的CPU上,利用TF启动卡启动系统后进行flash镜像的烧写,且通过TF卡上的启动系统可利用目标文件对自身进行更新的办法,实现无需人为进行重新制作TF启动卡即可对不同配置的flash目标系统进行烧写的目的。
为了达到上述目的,本发明提供了一种基于TF启动卡进行flash镜像自动烧写的方法,包括以下步骤:
步骤1:制作TF启动卡,将TF卡格式化成P1分区、P2分区和P3分区,在P1分区中存放需要烧写到flash中的目标文件,该目标文件包括系统内核镜像(含引导程序)文件和根文件系统压缩包,在P2中预装TF卡系统内核镜像(含引导程序)二进制数据流,在P3分区中预装TF卡系统的根文件系统;
步骤2:CPU上电进入倒计时状态,待CPU触发进入TF卡启动模式,CPU从TF启动卡P2分区加载引导程序和系统内核镜像,并启动系统内核;
步骤3:系统内核识别flash,并按P2分区的TF卡系统内核镜像二进制数据流中的配置对flash进行分区;
步骤4:系统内核程序启动完成,CPU从TF启动卡P3分区挂载根文件系统;
步骤5:CPU将TF启动卡P1分区挂载到根文件系统;
步骤6:CPU判断TF启动卡P1分区的系统内核镜像(含引导程序)文件与当前运行的系统内核是否一致,该当前运行的系统内核即TF卡P2分区中的系统内核镜像(含引导程序),若是,则执行步骤8,否则,执行步骤7;
步骤7:使用TF启动卡P1分区的系统内核镜像(含引导程序)文件升级TF启动卡P2分区中的系统内核,执行步骤9;
步骤8:利用linux当前的根文件系统(即TF启动卡的P3分区)下的mtd工具、ubifs操控工具,将TF启动卡P1分区的系统内核镜像文件和根文件系统压缩包分别烧录到flash的分区中,自动烧写成功;
步骤9:重启CPU系统,返回执行步骤2。
进一步的,所述步骤1具体包括:
步骤11:将TF卡格式化成P1分区、P2分区和P3分区,P1分区为32MB,P2分区为32MB,P3分区为剩余空间,
步骤12:将P1分区格式化成FAT格式,以兼容windows系统对P1分区中文件操作;
步骤13:将TF卡系统内核镜像(含引导程序)以二进制数据流复制到P2分区中,TF卡系统内核镜像(含引导程序)包括打包了的bootloader和系统内核的镜像文件linux_ivt.sb,
步骤14:将P3分区格式化成ext2格式,然后将TF卡系统的根文件系统压缩包压缩到P3分区中,
步骤15:将目标文件复制到P1分区下,该目标文件包括系统内核镜像(含引导程序)文件和根文件系统压缩包,完成TF启动卡制作。
进一步的,所述步骤2之前还包括步骤20:CPU上电后,进入倒计时状态,判断CPU是否为TF启动卡启动?如果是,则CPU触发进入TF卡启动模式,即执行步骤1,否则,CPU进入flash启动模式。
更进一步的,所述flash启动模式包括以下步骤:
步骤S11:CPU判断硬件配置是否从flash启动,若是,则执行步骤S12,否则执行步骤S13;
步骤S12:从flash的相应分区中加载系统内核和根文件系统,并运行系统,完成启动;
步骤S13:不运行任何系统,完成启动。
本发明通过采用上述技术方案,与现有技术相比,具有如下优点:
1、本发明在嵌入式Linux系统中,制作TF启动卡,CPU采用TF启动卡启动,当CPU启动时,系统先运行TF启动卡P2分区中的系统内核,并挂载P3分区中的根文件系统,然后将P1分区挂载到根文件系统下,利用集成在P3分区中的mtd工具、ubifs工具等flash操控工具,将P1分区中的系统内核和根文件系统自动烧写到flash对应的分区上,可以进行批量烧写,并大大简化烧写过程,提高烧写效率。
2、在烧写过程中,利用TF启动卡启动系统后进行flash镜像的烧写,且通过TF卡上的启动系统可利用目标文件对自身进行更新的办法,无需对上位机进行不同配置,无需对每个flash分区进行串口和网口进行软件下载后再烧写程序,不需要反复插拔串口线、网线和开关电源,使得flash程序烧写过程中自动化完成,实现无需人为进行重新制作TF启动卡即可对不同配置的flash目标系统进行烧写的目的。
附图说明
图1为本发明实施例的流程图;
图2为本发明实施例的TF启动卡的分区示意图;
图3为本发明实施例的在PC上制作TF启动卡的流程图;
图4为本发明实施例的CPU启动流程框图。
具体实施方式
现结合附图和具体实施方式对本发明进一步说明。
作为一个具体的实施例,本发明以I.MX28 CPU为例进行说明,该I.MX28 CPU的运行系统是linux系统,参考图1所示,本发明的一种基于TF启动卡进行flash镜像自动烧写的方法,
步骤1:制作TF启动卡,将TF卡格式化成P1分区、P2分区和P3分区,具体的TF启动卡的分区示意图参考图2所示,在P1分区中存放需要烧写到flash中的目标文件,该目标文件包括系统内核镜像(含引导程序)文件和根文件系统压缩包,在P2中预装TF卡系统内核镜像(含引导程序)二进制数据流,在P3分区中预装TF卡系统的根文件系统,
具体地,参考图和图3所示,进一步的,所述步骤1具体包括:
步骤11:该TF启动卡制作是通过linux下编写一个shell脚本程序实现,将TF卡格式化成P1分区、P2分区和P3分区,P1分区为32MB,P2分区为32MB, P3分区为剩余空间,
步骤12:将P1分区格式化成FAT格式,以兼容windows系统对P1分区中文件操作;
步骤13:将TF卡系统内核镜像(含引导程序)以二进制数据流复制到P2分区中,TF卡系统内核镜像(含引导程序)包括i.MX28打包了的bootloader和系统内核的镜像文件linux_ivt.sb,
步骤14:将P3分区格式化成ext2格式,然后将TF卡系统的根文件系统压缩包压缩到P3分区中,
步骤15:将目标文件和根文件系统压缩包复制到P1分区下,该目标文件包括系统内核镜像(含引导程序)文件,完成TF启动卡制作。
步骤2:CPU上电进入倒计时状态,待CPU触发进入TF卡启动模式,CPU从TF启动卡P2分区加载引导程序和系统内核镜像,并启动系统内核;
步骤3:系统内核识别flash,并按P2分区的TF卡系统内核镜像二进制数据流中的配置对flash进行分区;
步骤4:系统内核程序启动完成,CPU从TF启动卡P3分区挂载根文件系统;
步骤5:CPU将TF启动卡P1分区挂载到根文件系统,具体地,将TF启动卡P1分区以fat格式挂载到/tmp/target_div目录;
步骤6:CPU判断TF启动卡P1分区的系统内核镜像(含引导程序)文件与当前运行的系统内核(即TF卡P2分区中的系统内核镜像(含引导程序))是否一致,若是,则执行步骤8,否则,执行步骤7;
步骤7:使用TF启动卡P1分区的系统内核镜像(含引导程序)文件升级TF启动卡P2分区中的系统内核,执行步骤9;
步骤8:利用linux系统下的mtd工具、ubifs操控工具,将TF启动卡P1分区的系统内核镜像文件和根文件系统压缩包分别烧录到flash的分区中,自动烧写成功。
步骤9:重启CPU系统,返回执行步骤2。
为了更好地说明本发明的方案,本发明提供了CPU上电启动的程序运行流程,该流程中的TF卡启动模式,则为上述的基于TF启动卡进行flash镜像自动烧写的方法,需要说明的是,本方法中的TF启动卡制作流程,还可以在CPU上电启动之前完成。
参考图4所示,所述步骤2之前还包括步骤20: CPU上电后,进入倒计时状态,判断CPU是否为TF启动卡启动?如果是,则CPU触发进入TF卡启动模式,该模式则为本发明的基于TF启动卡进行flash镜像自动烧写的方法进行启动,即参考图1所示的流程图,包括步骤1至步骤9,上述已经说明详细,这里不再重复说明;否则,当CPU不是TF启动卡启动,CPU进入flash启动模式,flash启动模式为CPU的linux系统的正常运行启动程序流程,所述flash启动模式包括以下步骤:
S11:CPU判断硬件配置是否从flash启动,若是,则执行步骤S12,否则执行步骤S13;
步骤S12:从flash的相应分区中加载系统内核和根文件系统,并运行系统,完成启动;
步骤S13:不运行任何系统,完成启动。
尽管结合优选实施方案具体展示和介绍了本发明,但所属领域的技术人员应该明白,在不脱离所附权利要求书所限定的本发明的精神和范围内,在形式上和细节上可以对本发明做出各种变化,均为本发明的保护范围。
Claims (4)
1.一种基于TF启动卡进行flash镜像自动烧写的方法,其特征在于,包括:
步骤1:制作TF启动卡,将TF卡格式化成P1分区、P2分区和P3分区,在P1分区中存放需要烧写到flash中的目标文件,该目标文件包括含引导程序的系统内核镜像文件和根文件系统压缩包,在P2中预装TF卡含引导程序的系统内核镜像二进制数据流,在P3分区中预装TF卡系统的根文件系统;
步骤2:CPU上电进入倒计时状态,待CPU触发进入TF卡启动模式,CPU从TF启动卡P2分区加载引导程序和系统内核镜像,并启动系统内核;
步骤3:系统内核识别flash,并按P2分区的TF卡系统内核镜像二进制数据流中的配置对flash进行分区;
步骤4:系统内核程序启动完成,CPU从TF启动卡P3分区挂载根文件系统;
步骤5:CPU将TF启动卡P1分区挂载到根文件系统;
步骤6:CPU判断TF启动卡P1分区的含引导程序的系统内核镜像文件与当前运行的系统内核是否一致,若是,则执行步骤8,否则,执行步骤7;
步骤7:使用TF启动卡P1分区的含引导程序的系统内核镜像文件升级TF启动卡P2分区中的系统内核,执行步骤9;
步骤8:利用linux系统下的mtd工具、ubifs操控工具,将TF启动卡P1分区的系统内核镜像文件和根文件系统压缩包分别烧录到flash的分区中,自动烧写成功;
步骤9:重启CPU系统,返回执行步骤2。
2.根据权利要求1所述的一种基于TF启动卡进行flash镜像自动烧写的方法,其特征在于:所述步骤1具体包括:
步骤11:将TF卡格式化成P1分区、P2分区和P3分区,P1分区为32MB,P2分区为32MB,P3分区为剩余空间,
步骤12:将P1分区格式化成FAT格式,以兼容windows系统对P1分区中文件操作;
步骤13:将TF卡含引导程序的系统内核镜像以二进制数据流复制到P2分区中,TF卡含引导程序的系统内核镜像包括打包了的bootloader和系统内核的镜像文件linux_ivt.sb,
步骤14:将P3分区格式化成ext2格式,然后将TF卡系统的根文件系统压缩包压缩到P3分区中,
步骤15:将目标文件和根文件系统压缩包复制到P1分区下,该目标文件包括含引导程序的系统内核镜像文件,完成TF启动卡制作。
3.根据权利要求1所述的一种基于TF启动卡进行flash镜像自动烧写的方法,其特征在于:所述步骤2之前还包括步骤20:CPU上电后,进入倒计时状态,判断CPU是否为TF启动卡启动,如果是,则CPU触发进入TF卡启动模式,否则,CPU进入flash启动模式。
4.根据权利要求3所述的一种基于TF启动卡进行flash镜像自动烧写的方法,其特征在于:所述flash启动模式包括以下步骤:
步骤S11:CPU判断硬件配置是否从flash启动,若是,则执行步骤S12,否则执行步骤S13;
步骤S12:从flash的相应分区中加载系统内核和根文件系统,并运行系统,完成启动;
步骤S13:不运行任何系统,完成启动。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310669141.8A CN103677915B (zh) | 2013-12-11 | 2013-12-11 | 一种基于TF启动卡进行flash镜像自动烧写的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310669141.8A CN103677915B (zh) | 2013-12-11 | 2013-12-11 | 一种基于TF启动卡进行flash镜像自动烧写的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103677915A CN103677915A (zh) | 2014-03-26 |
CN103677915B true CN103677915B (zh) | 2018-08-07 |
Family
ID=50315572
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310669141.8A Active CN103677915B (zh) | 2013-12-11 | 2013-12-11 | 一种基于TF启动卡进行flash镜像自动烧写的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103677915B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104598284A (zh) * | 2015-02-05 | 2015-05-06 | 深圳市成为信息技术有限公司 | 启动嵌入式设备的方法 |
CN106303707A (zh) * | 2015-05-28 | 2017-01-04 | 深圳市中兴微电子技术有限公司 | 一种版本烧录方法、系统及终端 |
CN106325905A (zh) * | 2015-06-30 | 2017-01-11 | 深圳市中兴微电子技术有限公司 | 一种闪存烧写方法、单板、上位机及系统 |
CN106708831B (zh) * | 2015-07-31 | 2020-12-01 | 炬芯科技股份有限公司 | 一种fat镜像文件处理的方法及装置 |
CN105760191A (zh) * | 2016-02-02 | 2016-07-13 | 西安诺瓦电子科技有限公司 | 嵌入式系统设备程序烧写量产方法 |
CN112912841A (zh) * | 2018-12-03 | 2021-06-04 | 北京比特大陆科技有限公司 | 硬件升级方法、装置、设备和存储介质 |
CN112764767A (zh) * | 2019-10-21 | 2021-05-07 | 深圳君正时代集成电路有限公司 | 一种实现卡启和卡烧录nand的方法 |
CN111158710B (zh) * | 2019-12-30 | 2023-08-25 | 杭州迪普科技股份有限公司 | 程序烧写方法、装置及网络设备 |
CN112083944A (zh) * | 2020-09-11 | 2020-12-15 | 深圳爱克莱特科技股份有限公司 | Linux设备的系统升级装置及方法 |
CN113448636A (zh) * | 2021-06-29 | 2021-09-28 | 上海盈核云计算技术有限公司 | 一种开源操作系统的启动方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101504612A (zh) * | 2009-02-12 | 2009-08-12 | 山东超越数控电子有限公司 | 一种刷新windows ce 5.0操作系统的方法 |
CN101763279A (zh) * | 2010-01-15 | 2010-06-30 | 上海维宏电子科技有限公司 | 一种BootLoader架构设计方法 |
CN102238265A (zh) * | 2010-04-22 | 2011-11-09 | 康佳集团股份有限公司 | 一种手机及实现双系统手机的方法 |
CN102646067A (zh) * | 2012-02-27 | 2012-08-22 | 深圳市共进电子股份有限公司 | 一种嵌入式软件的测试方法 |
-
2013
- 2013-12-11 CN CN201310669141.8A patent/CN103677915B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101504612A (zh) * | 2009-02-12 | 2009-08-12 | 山东超越数控电子有限公司 | 一种刷新windows ce 5.0操作系统的方法 |
CN101763279A (zh) * | 2010-01-15 | 2010-06-30 | 上海维宏电子科技有限公司 | 一种BootLoader架构设计方法 |
CN102238265A (zh) * | 2010-04-22 | 2011-11-09 | 康佳集团股份有限公司 | 一种手机及实现双系统手机的方法 |
CN102646067A (zh) * | 2012-02-27 | 2012-08-22 | 深圳市共进电子股份有限公司 | 一种嵌入式软件的测试方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103677915A (zh) | 2014-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103677915B (zh) | 一种基于TF启动卡进行flash镜像自动烧写的方法 | |
CN103777972B (zh) | 基于现场可编程门阵列的系统、配置方法以及升级方法 | |
CN102053831B (zh) | 一种Linux操作系统的定制方法及系统 | |
CN103853586B (zh) | 一种在uefi层实现无线网卡驱动的方法 | |
CN101763279A (zh) | 一种BootLoader架构设计方法 | |
CN104965725B (zh) | 一种基于sd卡的嵌入式设备全自动固件烧写方法 | |
CN101226477A (zh) | 一种适合移动应用的Linux操作系统的实现方法 | |
CN104866324B (zh) | 一种便携操作系统构建方法及便携存储器 | |
CN105760191A (zh) | 嵌入式系统设备程序烧写量产方法 | |
CN101216773A (zh) | 一种嵌入式Linux系统固件下载方法和装置 | |
CN105653330A (zh) | 一种基于SD卡的NorFlash烧写系统和方法 | |
CN103914324A (zh) | 一种自动烧写嵌入式设备固件的方法及其系统 | |
WO2018090528A1 (zh) | 一种镜像包制作、应用运行方法及系统 | |
CN105824678A (zh) | 一种操作系统安装方法及装置 | |
CN102937909A (zh) | 一种部署和更新Linux系统的方法 | |
CN103677943A (zh) | 一种缝纫机控制器软件升级方法 | |
CN106970778B (zh) | 一种基于fpga的嵌入式设备的在线配置方法及系统 | |
CN111813432B (zh) | 一种fpga配置升级方法和fpga平台 | |
CN110187909A (zh) | 一种基于安卓系统的单片机固件升级方法 | |
CN1776619A (zh) | 一种基于启动装载程序实现嵌入式系统运行的方法 | |
CN115408013A (zh) | Zynq UltraScale+MPSoC平台的固件和文件自动烧写方法 | |
CN101334737A (zh) | 一种嵌入式设备的启动或复位方法 | |
CN109117167A (zh) | 一种基于zynq芯片的启动软件更新方法 | |
CN105677429A (zh) | 程序烧写方法、处理器和电子电路 | |
CN114816491A (zh) | 用于多系统移动终端的系统升级方法、装置及终端 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address |
Address after: 361000 Fujian Province Xiamen Torch High tech Zone Software Park Innovation Building C Zone 303-E Patentee after: Xiamen Yaxun Zhilian Technology Co.,Ltd. Country or region after: China Address before: No.46 guanri Road, phase II, software park, Xiamen City, Fujian Province, 361000 Patentee before: XIAMEN YAXON NETWORK Co.,Ltd. Country or region before: China |
|
CP03 | Change of name, title or address |