一种基于TF启动卡进行flash镜像自动烧写的方法
【专利摘要】本发明涉及flash的烧写【技术领域】,具体涉及基于TF启动卡进行flash镜像自动烧写的方法。本发明在嵌入式Linux系统中,制作TF启动卡,设备采用TF启动卡启动,当设备启动时,系统先运行TF启动卡P2分区中的系统内核,并挂载P3分区中的根文件系统,然后将P1分区挂载到根文件系统下,利用集成在P3分区中的flash操控工具,将P1分区中的系统内核和根文件系统自动烧写到flash对应的分区上,可以进行批量烧写,并大大简化烧写过程,提高烧写效率。
【专利说明】—种基于TF启动卡进行flash镜像自动烧写的方法
【技术领域】
[0001]本发明涉及flash的烧写【技术领域】,具体涉及基于TF启动卡进行flash镜像自动烧写的方法。
【背景技术】
[0002]Flash在嵌入式系统中的应用越来越广泛,因为flash具有高容量、高稳定性和快速的读写的优点,所以flash已经成为主流的介质,但是由于嵌入式的设计已经介入了Iinux和WINCE量大操作系统,使这个文件变得庞大起来,所以将文件烧写到flash中就遇到了烧写瓶颈。以往flash的烧写,都是第一步用JTAG烧写bootloader,使最小系统加载bootloader后初始化各通信口后(如串口,网卡等),再由串口下载Iinux的内核,从而建立文件系统,然后通过网卡下载Iinux应用程序实现。而JTAG和串口由于是串行输入,同时也受到本身相关芯片速率的影响(MAX232芯片的速度比起flash的读写,速度慢多了),虽然bootloader+linux内核文件只有应用程序内容的1/8,但是造成烧写总时间却是应用程序时间8倍之多的局面,使整个烧写flash的时间无比漫长,而在bootloader没有烧写之前,串口和网口是不能与电脑主机通信的,而在没有烧写Iinux内核的前提下,网口虽然是可以与主机通信,但是由于未通过文件系统的排列,而使整个系统的引导文件未存在指定的位置上,造成不能启动Iinux情况出现。如果使用多个串口与电脑通信的方法,表面上是一个不错的选择,但是一台电脑只有2个串口,如果将一串口扩展成多个串口,可能造成下位机对上位机的反馈信号错误(可能一台下位机已经好了,但是还有一台没有写完,反馈给上位机却是烧写好的),所以此方法也行不通。
[0003]而在嵌入式Linux系统中,flash的分区是在内核启动阶段即已完成,这要求烧写不同flash分区配置的系统时,上位机软件必须进行不同配置,每个分区的配置都需要调测人员通过连接串口和网口进行软件下载后,再烧写程序,这就需要反复插拔串口线、网线和开关电源,导致程序烧写过程中自动化程度不高。特别是在批量烧写的时候,如果采用人工手动烧写的方法,不仅耗费大量的人力物力,而且配置繁琐,烧写效率极低。
【发明内容】
[0004]为了解决上述技术问题,本发明通过可从TF卡启动系统的CPU上,利用TF启动卡启动系统后进行flash镜像的烧写,且通过TF卡上的启动系统可利用目标文件对自身进行更新的办法,实现无需人为进行重新制作TF启动卡即可对不同配置的flash目标系统进行烧写的目的。
[0005]为了达到上述目的,本发明提供了一种基于TF启动卡进行flash镜像自动烧写的方法,包括以下步骤:
步骤1:制作TF启动卡,将TF卡格式化成Pl分区、P2分区和P3分区,在Pl分区中存放需要烧写到flash中的目标文件,该目标文件包括系统内核镜像(含引导程序)文件和根文件系统压缩包,在P2中预装TF卡系统内核镜像(含引导程序)二进制数据流,在P3分区中预装TF卡系统的根文件系统;
步骤2:CPU上电进入倒计时状态,待CPU触发进入TF卡启动模式,CPU从TF启动卡P2分区加载弓I导程序和系统内核镜像,并启动系统内核;
步骤3:系统内核识别flash,并按P2分区的TF卡系统内核镜像二进制数据流中的配置对flash进行分区;
步骤4:系统内核程序启动完成,CPU从TF启动卡P3分区挂载根文件系统;
步骤5 =CPU将TF启动卡Pl分区挂载到根文件系统;
步骤6 =CPU判断TF启动卡Pl分区的系统内核镜像(含引导程序)文件与当前运行的系统内核是否一致,该当前运行的系统内核即TF卡P2分区中的系统内核镜像(含引导程序),若是,则执行步骤8,否则,执行步骤7 ;
步骤7:使用TF启动卡Pl分区的系统内核镜像(含引导程序)文件升级TF启动卡P2分区中的系统内核,执行步骤9 ;
步骤8:利用Iinux当前的根文件系统(即TF启动卡的P3分区)下的mtd工具、ubifs操控工具,将TF启动卡Pl分区的系统内核镜像文件和根文件系统压缩包分别烧录到flash的分区中,自动烧写成功;
步骤9:重启CPU系统,返回执行步骤2。
[0006]进一步的,所述步骤I具体包括:
步骤11:将TF卡格式化成Pl分区、P2分区和P3分区,Pl分区为32MB,P2分区为32MB,P3分区为剩余空间,
步骤12:将Pl分区格式化成FAT格式,以兼容windows系统对Pl分区中文件操作;步骤13:将TF卡系统内核镜像(含引导程序)以二进制数据流复制到P2分区中,TF卡系统内核镜像(含引导程序)包括打包了的bootloader和系统内核的镜像文件linux_ivt.sb,
步骤14:将P3分区格式化成ext2格式,然后将TF卡系统的根文件系统压缩包压缩到P3分区中,
步骤15:将目标文件复制到Pl分区下,该目标文件包括系统内核镜像(含引导程序)文件和根文件系统压缩包,完成TF启动卡制作。
[0007]进一步的,所述步骤2之前还包括步骤20:CPU上电后,进入倒计时状态,判断CPU是否为TF启动卡启动?如果是,则CPU触发进入TF卡启动模式,即执行步骤1,否则,CPU进入flash启动模式。
[0008]更进一步的,所述flash启动模式包括以下步骤:
步骤Sll =CPU判断硬件配置是否从flash启动,若是,则执行步骤S12,否则执行步骤
S13 ;
步骤S12:从flash的相应分区中加载系统内核和根文件系统,并运行系统,完成启
动;
步骤S13:不运行任何系统,完成启动。
[0009]本发明通过采用上述技术方案,与现有技术相比,具有如下优点:
1、本发明在嵌入式Linux系统中,制作TF启动卡,CPU采用TF启动卡启动,当CPU启动时,系统先运行TF启动卡P2分区中的系统内核,并挂载P3分区中的根文件系统,然后将Pl分区挂载到根文件系统下,利用集成在P3分区中的mtd工具、UbifS工具等flash操控工具,将Pl分区中的系统内核和根文件系统自动烧写到flash对应的分区上,可以进行批量烧写,并大大简化烧写过程,提高烧写效率。
[0010]2、在烧写过程中,利用TF启动卡启动系统后进行flash镜像的烧写,且通过TF卡上的启动系统可利用目标文件对自身进行更新的办法,无需对上位机进行不同配置,无需对每个flash分区进行串口和网口进行软件下载后再烧写程序,不需要反复插拔串口线、网线和开关电源,使得flash程序烧写过程中自动化完成,实现无需人为进行重新制作TF启动卡即可对不同配置的flash目标系统进行烧写的目的。
【专利附图】
【附图说明】
[0011]图1为本发明实施例的流程图;
图2为本发明实施例的TF启动卡的分区示意图;
图3为本发明实施例的在PC上制作TF启动卡的流程图;
图4为本发明实施例的CPU启动流程框图。
【具体实施方式】
[0012]现结合附图和【具体实施方式】对本发明进一步说明。
[0013]作为一个具体的实施例,本发明以1.MX28 CPU为例进行说明,该1.MX28 CPU的运行系统是Iinux系统,参考图1所示,本发明的一种基于TF启动卡进行flash镜像自动烧写的方法,
步骤1:制作TF启动卡,将TF卡格式化成Pl分区、P2分区和P3分区,具体的TF启动卡的分区示意图参考图2所示,在Pl分区中存放需要烧写到flash中的目标文件,该目标文件包括系统内核镜像(含引导程序)文件和根文件系统压缩包,在P2中预装TF卡系统内核镜像(含引导程序)二进制数据流,在P3分区中预装TF卡系统的根文件系统,
具体地,参考图和图3所示,进一步的,所述步骤I具体包括:
步骤11:该TF启动卡制作是通过Iinux下编写一个shell脚本程序实现,将TF卡格式化成Pl分区、P2分区和P3分区,Pl分区为32MB,P2分区为32MB,P3分区为剩余空间,步骤12:将Pl分区格式化成FAT格式,以兼容windows系统对Pl分区中文件操作;步骤13:将TF卡系统内核镜像(含引导程序)以二进制数据流复制到P2分区中,TF卡系统内核镜像(含引导程序)包括1.MX28打包了的bootloader和系统内核的镜像文件linux_ivt.sb,
步骤14:将P3分区格式化成ext2格式,然后将TF卡系统的根文件系统压缩包压缩到P3分区中,
步骤15:将目标文件和根文件系统压缩包复制到Pl分区下,该目标文件包括系统内核镜像(含引导程序)文件,完成TF启动卡制作。
[0014]步骤2:CPU上电进入倒计时状态,待CPU触发进入TF卡启动模式,CPU从TF启动卡P2分区加载引导程序和系统内核镜像,并启动系统内核;
步骤3:系统内核识别flash,并按P2分区的TF卡系统内核镜像二进制数据流中的配置对flash进行分区; 步骤4:系统内核程序启动完成,CPU从TF启动卡P3分区挂载根文件系统;
步骤5:CPU将TF启动卡Pl分区挂载到根文件系统,具体地,将TF启动卡Pl分区以fat格式挂载至丨J /tmp/target_div目录;
步骤6 =CPU判断TF启动卡Pl分区的系统内核镜像(含引导程序)文件与当前运行的系统内核(即TF卡P2分区中的系统内核镜像(含引导程序))是否一致,若是,则执行步骤8,否则,执行步骤7;
步骤7:使用TF启动卡Pl分区的系统内核镜像(含引导程序)文件升级TF启动卡P2分区中的系统内核,执行步骤9 ;
步骤8:利用Iinux系统下的mtd工具、ubifs操控工具,将TF启动卡Pl分区的系统内核镜像文件和根文件系统压缩包分别烧录到flash的分区中,自动烧写成功。
[0015]步骤9:重启CPU系统,返回执行步骤2。
[0016]为了更好地说明本发明的方案,本发明提供了 CPU上电启动的程序运行流程,该流程中的TF卡启动模式,则为上述的基于TF启动卡进行flash镜像自动烧写的方法,需要说明的是,本方法中的TF启动卡制作流程,还可以在CPU上电启动之前完成。
[0017]参考图4所示,所述步骤2之前还包括步骤20: CPU上电后,进入倒计时状态,判断CPU是否为TF启动卡启动?如果是,则CPU触发进入TF卡启动模式,该模式则为本发明的基于TF启动卡进行flash镜像自动烧写的方法进行启动,即参考图1所示的流程图,包括步骤I至步骤9,上述已经说明详细,这里不再重复说明;否则,当CPU不是TF启动卡启动,CPU进入flash启动模式,flash启动模式为CPU的Iinux系统的正常运行启动程序流程,所述flash启动模式包括以下步骤:
Sll:CPU判断硬件配置是否从flash启动,若是,则执行步骤S12,否则执行步骤S13 ; 步骤S12:从flash的相应分区中加载系统内核和根文件系统,并运行系统,完成启
动;
步骤S13:不运行任何系统,完成启动。
[0018]尽管结合优选实施方案具体展示和介绍了本发明,但所属领域的技术人员应该明白,在不脱离所附权利要求书所限定的本发明的精神和范围内,在形式上和细节上可以对本发明做出各种变化,均为本发明的保护范围。
【权利要求】
1.一种基于TF启动卡进行flash镜像自动烧写的方法,其特征在于,包括: 步骤1:制作TF启动卡,将TF卡格式化成Pl分区、P2分区和P3分区,在Pl分区中存放需要烧写到flash中的目标文件,该目标文件包括系统内核镜像(含引导程序)文件和根文件系统压缩包,在P2中预装TF卡系统内核镜像(含引导程序)二进制数据流,在P3分区中预装TF卡系统的根文件系统; 步骤2:CPU上电进入倒计时状态,待CPU触发进入TF卡启动模式,CPU从TF启动卡P2分区加载引导程序和系统内核镜像,并启动系统内核; 步骤3:系统内核识别flash,并按P2分区的TF卡系统内核镜像二进制数据流中的配置对flash进行分区; 步骤4:系统内核程序启动完成,CPU从TF启动卡P3分区挂载根文件系统; 步骤5 =CPU将TF启动卡Pl分区挂载到根文件系统; 步骤6 =CPU判断TF启动卡Pl分区的系统内核镜像(含引导程序)文件与当前运行的系统内核是否一致,若是,则执行步骤8,否则,执行步骤7 ; 步骤7:使用TF启动卡Pl分区的系统内核镜像(含引导程序)文件升级TF启动卡P2分区中的系统内核,执行步骤9 ; 步骤8:利用Iinux系统下的mtd工具、ubifs操控工具,将TF启动卡Pl分区的系统内核镜像文件和根文件系统压缩包分别 烧录到flash的分区中,自动烧写成功; 步骤9:重启CPU系统,返回执行步骤2。
2.根据权利要求1所述的一种基于TF启动卡进行flash镜像自动烧写的方法,其特征在于:所述步骤I具体包括: 步骤11:将TF卡格式化成Pl分区、P2分区和P3分区,Pl分区为32MB,P2分区为32MB,P3分区为剩余空间, 步骤12:将Pl分区格式化成FAT格式,以兼容windows系统对Pl分区中文件操作;步骤13:将TF卡系统内核镜像(含引导程序)以二进制数据流复制到P2分区中,TF卡系统内核镜像(含引导程序)包括打包了的bootloader和系统内核的镜像文件linux_ivt.sb, 步骤14:将P3分区格式化成ext2格式,然后将TF卡系统的根文件系统压缩包压缩到P3分区中, 步骤15:将目标文件和根文件系统压缩包复制到Pl分区下,该目标文件包括系统内核镜像(含引导程序)文件,完成TF启动卡制作。
3.根据权利要求1所述的一种基于TF启动卡进行flash镜像自动烧写的方法,其特征在于:所述步骤2之前还包括步骤20:CPU上电后,进入倒计时状态,判断CPU是否为TF启动卡启动?如果是,则CPU触发进入TF卡启动模式,否则,CPU进入flash启动模式。
4.根据权利要求3所述的一种基于TF启动卡进行flash镜像自动烧写的方法,其特征在于:所述flash启动模式包括以下步骤: 步骤Sll =CPU判断硬件配置是否从flash启动,若是,则执行步骤S12,否则执行步骤S13 ; 步骤S12:从flash的相应分区中加载系统内核和根文件系统,并运行系统,完成启动;步骤S13:不运 行任何系统,完成启动。
【文档编号】G06F9/445GK103677915SQ201310669141
【公开日】2014年3月26日 申请日期:2013年12月11日 优先权日:2013年12月11日
【发明者】郑福弟, 任赋, 黄杭星, 林德辉, 唐磊, 许宁 申请人:厦门雅迅网络股份有限公司