本发明涉及移动设备的操作系统引导加载技术领域,特别涉及一种用ubootcdrom启动wince的实现方法,应用于移动设备基于光驱和uboot引导程序。
背景技术:
uboot全称为universalbootloader,即通用bootloader,一种普遍用于嵌入式系统中的bootloader,是一个源码公开、功能强大的板级支持包。支持一些系列的arm体系,后续开发了对于wince系统的引导加载。uboot包含常见的外设驱动和不同的文件系统,但是没有直接的uboot下codrom驱动,需要开发uboot下codrom驱动。
wince是一款开放的、可升级的针对嵌入式设备的32位嵌入式操作系统,需要根据嵌入式硬件设备修改定制的特定嵌入式操作系统,不能通用。通常wince系统的引导加载程序为nboot和eboot组合的bootloader方式,较开放式的uboot而言不够简洁,而且uboot是基于gpl条款最完整的一个通用的bootloader。但是uboot对wince系统内核源文件的获取方式比较单一。
技术实现要素:
为了解决现有技术的问题,本发明提供了一种用ubootcdrom启动wince的实现方法,其能够增加uboot引导加载wince系统启动的方式,扩展uboot及wince系统的应用范围。同时减少wince系统对嵌入式平台硬件的依赖性,减轻嵌入式平台端的负载。
本发明所采用的技术方案如下:
一种用ubootcdrom启动wince的实现方法,包括以下步骤:
a、对存储器地址空间进行分区,分为用于存储uboot镜像、wince的eboot和内核镜像的区域;
b、在uboot中开发cdrom驱动程序和wince镜像识别程序;
c、在uboot中添加引导程序,包括及eboot镜像和wince镜像的引导程序;
d、根据步骤a中,内存划分的分区大小,修改wince内核的bsp源码中定义存储器分区的文件loader.h,以及修改makefile和config文件,重新编译bsp源码,生成新的eboot和wince内核镜像文件,此时镜像中eboot和nk的跳转地址与步骤a的内存分区有相应的对应关系;
e、将新生成的eboot和内核镜像文件刻录到光盘中。
步骤b具体方法是:在uboot中通过增加fs.h、fs.c文件相关iso-9660文件系统函数,在fs文件夹下增加具体iso-9660驱动文件、配置uboot各配置编译文件,同时在isoload命令之后,开发wince镜像识别程序。
实现方法还包括步骤f:上电启动后uboot内cdrom驱动会识别cdrom连接,cdrom驱动中的isoload命令启动cdrom光驱,以从光盘中读取指定文件名,然后通过wince镜像识别程序,并校验识别eboot镜像文件和wince系统内核镜像,将按照配置文件config.bib的配置参数,通过用nandwrite命令写入步骤a划分内存的相应地址位置,调用eboot启动命令,启动eboot,完成wince的ubootcdrom启动。
本发明提供的技术方案带来的有益效果是:
增加了uboot支持的外设驱动,也增加wince系统的启动加载方式即uboot的cdrom启动,减少了wince系统对于原生nboot与eboot结合引导加载方式的依赖,增强了wince系统的可移植性。uboot引导的通用性,克服wince操作系统对特定硬件平台的依赖性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明的一种用ubootcdrom启动wince的实现方法的方法框图;
图2为本发明的一种用ubootcdrom启动wince的实现方法的内存分区框图;
图3为本发明的一种用ubootcdrom启动wince的实现方法的方法流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
实施例一
本实施例的一种用ubootcdrom启动wince的实现方法:
1)利用flash分区技术,按存储器地址空间根据不同平台的wince系统的大小进行分区如图2,分为用于存储uboot镜像、eboot镜像和wince内核镜像的各区域,并保存各分区地址。
2)在uboot中通过增加fs.h、fs.c等文件相关iso-9660文件系统函数,在fs文件夹下增加具体iso-9660驱动文件、配置uboot各配置编译文件。同时在isoload命令之后,增加eboot和wince镜像校验识别程序。
3)在uboot中添加引导程序,包括eboot镜像和wince镜像的引导程序。
4)按照步骤1)中,内存划分的block分区大小,修改wince内核的bsp源码中定义存储器分区的文件loader.h,以及修改makefile和config文件,重新编译bsp源码,以使镜像运行地址与内存分区正确对应。生成新的eboot和内核镜像文件nk.nb0。
5)将新生成的eboot和内核镜像文件存储到外部媒介cdrom中。
6)以上修改过的uboot重新编译后,存储到相应的内存分区中,上电启动后uboot内cdrom驱动会识别cdrom连接,并校验识别eboot镜像文件和wince系统内核镜像,将按照配置文件config.bib的配置参数,通过用nandwrite命令写到内存的相应地址位置,调用启动命令,启动eboot,完成wince的cdrom启动。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。