WinCE Boot方式及 Bootloader架构概述
2008-11-18 22:15
295 查看
Bootloader的概念就是一个用于引导的loader,在系统上电的时候最先被运行,然后对硬件平台做最基本的初始化,最后把操作系统加载起来。不同的嵌入式操作系统都有自己的Bootloader,但是本质功能都是一样的。
在WinCE中用的最多的就是EBOOT,是一个基于网络的Bootloader,而且可以根据需要带有命令行菜单功能,网络调试功能以及文件系统的相关功能。在这里我只谈ARM平台的引导,因为其他架构的CPU我没用过,就不吹牛了。一般基于不同的硬件设计,会有不同的引导方式:
NORFlash Boot[/b]:[/b]
一般ARM处理器的片选0都会接有NORFlash,这样在ARM上电以后,会从0地址开始执行程序,也就是从NORFlash的0地址开始执行。所以把EBOOT烧到NORFlash的0地址开始的地方,这样在上电以后,EBOOT开始执行,可以在NORFlash里面执行,也可以自拷贝到SDRAM中执行。最后加载WinCE image并运行。
NANDFlash Boot with EBOOT[/b]:[/b]
由于NORFlash容量小,价格贵,现在很多ARM处理器支持NandFlash引导。不同厂家的处理器对Nandflash的引导略有区别,具体要看datasheet。但是本质就是先从Nandflash中读出一个小的Loader来运行,这个Loader再从Nandflash中加载EBOOT到SDRAM中运行,最后EBOOT加载WinCE image,就是NK.bin。
NANDFlash Boot without EBOOT[/b]:[/b]
如果在NandFlash引导的时候不需要EBOOT,也可以不用EBOOT。这样就是系统启动后从Nandflash中加载一个小的Loader,小的Loader对硬件系统作基本的初始化,然后直接加载WinCE image,一般应该是NK.nb0,然后运行。
这里来说一下NK.bin与NK.nb0,两个不同的WinCE image。
[/b]
NK.nb0[/b]:[/b]就是一个可以直接运行的WinCE映像文件,直接拷贝到SDRAM中就可以运行。
NK.bin[/b]:[/b]被称为Windows CE binary image data format文件格式,是一种包含了多个独立纪录(Section)的二进制文件。在加载的时候,需要分别加载,不同的Section加载到不同的地方。所以NK.bin需要Bootloader进行解释性加载。但是他的Size会比NK.nb0小。可以使用viewbin命令查询NK.bin中的纪录信息。
viewbin –rec nk.bin[/b]
前面已经讲过了一般系统会使用到的引导方式,下面介绍一下EBOOT。在WinCE中EBOOT一个作用可以加载WinCE image,还可以通过网络配合Platform Builder下载WinCE image进行调试。在开发一个新的BSP的时候,首先会基于一个相似的平台的BSP进行克隆,然后要做的就是要开发和调试EBOOT了,EBOOT的架构如图:
BLCOMMON[/b]:[/b]相当于EBOOT的一个基本框架,主要完成bootloader相关内存的分配,解析NK.bin文件并进行效验,初始化平台,通过网络下载image等功能。
OEM Code[/b]:[/b]主要是基于硬件平台,为BLCOMMON提供相应的接口函数,帮助完成相应的功能。
Eboot[/b]:[/b]一个小的网络协议栈,为网络下载image提供DHCP,TFTP,UDP等网络服务功能。
Network Driver[/b]:[/b]硬件平台的网络驱动部分,支持上层的网络功能。
Bootpart[/b]:[/b]为Flash设备提供分区功能,bootloader可以创建一个BinFS分区和一个文件系统分区。还可以用它来创建一个引导分区用来存放引导参数。
Flash Memory[/b]:[/b]硬件平台的Flash驱动
在WinCE中用的最多的就是EBOOT,是一个基于网络的Bootloader,而且可以根据需要带有命令行菜单功能,网络调试功能以及文件系统的相关功能。在这里我只谈ARM平台的引导,因为其他架构的CPU我没用过,就不吹牛了。一般基于不同的硬件设计,会有不同的引导方式:
NORFlash Boot[/b]:[/b]
一般ARM处理器的片选0都会接有NORFlash,这样在ARM上电以后,会从0地址开始执行程序,也就是从NORFlash的0地址开始执行。所以把EBOOT烧到NORFlash的0地址开始的地方,这样在上电以后,EBOOT开始执行,可以在NORFlash里面执行,也可以自拷贝到SDRAM中执行。最后加载WinCE image并运行。
NANDFlash Boot with EBOOT[/b]:[/b]
由于NORFlash容量小,价格贵,现在很多ARM处理器支持NandFlash引导。不同厂家的处理器对Nandflash的引导略有区别,具体要看datasheet。但是本质就是先从Nandflash中读出一个小的Loader来运行,这个Loader再从Nandflash中加载EBOOT到SDRAM中运行,最后EBOOT加载WinCE image,就是NK.bin。
NANDFlash Boot without EBOOT[/b]:[/b]
如果在NandFlash引导的时候不需要EBOOT,也可以不用EBOOT。这样就是系统启动后从Nandflash中加载一个小的Loader,小的Loader对硬件系统作基本的初始化,然后直接加载WinCE image,一般应该是NK.nb0,然后运行。
这里来说一下NK.bin与NK.nb0,两个不同的WinCE image。
[/b]
NK.nb0[/b]:[/b]就是一个可以直接运行的WinCE映像文件,直接拷贝到SDRAM中就可以运行。
NK.bin[/b]:[/b]被称为Windows CE binary image data format文件格式,是一种包含了多个独立纪录(Section)的二进制文件。在加载的时候,需要分别加载,不同的Section加载到不同的地方。所以NK.bin需要Bootloader进行解释性加载。但是他的Size会比NK.nb0小。可以使用viewbin命令查询NK.bin中的纪录信息。
viewbin –rec nk.bin[/b]
前面已经讲过了一般系统会使用到的引导方式,下面介绍一下EBOOT。在WinCE中EBOOT一个作用可以加载WinCE image,还可以通过网络配合Platform Builder下载WinCE image进行调试。在开发一个新的BSP的时候,首先会基于一个相似的平台的BSP进行克隆,然后要做的就是要开发和调试EBOOT了,EBOOT的架构如图:
BLCOMMON[/b]:[/b]相当于EBOOT的一个基本框架,主要完成bootloader相关内存的分配,解析NK.bin文件并进行效验,初始化平台,通过网络下载image等功能。
OEM Code[/b]:[/b]主要是基于硬件平台,为BLCOMMON提供相应的接口函数,帮助完成相应的功能。
Eboot[/b]:[/b]一个小的网络协议栈,为网络下载image提供DHCP,TFTP,UDP等网络服务功能。
Network Driver[/b]:[/b]硬件平台的网络驱动部分,支持上层的网络功能。
Bootpart[/b]:[/b]为Flash设备提供分区功能,bootloader可以创建一个BinFS分区和一个文件系统分区。还可以用它来创建一个引导分区用来存放引导参数。
Flash Memory[/b]:[/b]硬件平台的Flash驱动
相关文章推荐
- WinCE Boot方式及 Bootloader架构概述
- WinCE Boot方式及 Bootloader架构概述
- WinCE Boot方式及 Bootloader架构概述
- WinCE Boot方式及 Bootloader架构概述
- WinCE Boot方式及 Bootloader架构概述
- WinCE Boot方式及 Bootloader架构概述
- WinCE Boot方式及 Bootloader架构概述
- [黑莓开发之路][00][BlackBerry平台架构概述][07][网络连接及传输方式]
- [Search Engine] 搜索引擎分类和基础架构概述
- 软件系统体系结构---C/S B/S P2P架构(概述)
- RESTful 架构风格概述
- 新版linux系统设备架构中关于电源管理方式的变更
- Davinci软件架构——概述
- 大型互联网架构概述
- 老李推荐:第1章3节《MonkeyRunner源码剖析》概述:架构
- 分布式系统架构的基本原则和实践概述
- 架构设计:生产者/消费者模式[0]:概述
- ROM型启动方式概述
- 服务器和站点架构对象模型概述的Sharepoint
- 架构必备:Rate limiting 的作用和常见方式