WinCE Boot方式及Bootloader架构概述

Bootloader的概念就是一个用于引导的loader,在系统上电的时候最先被运行,然后对硬件平台做最基本的初始化,最后把操作系统加载起来。不同的嵌入式操作系统都有自己的Bootloader,但是本质功能都是一样的。

在WinCE中用的最多的就是EBOOT,是一个基于网络的Bootloader,而且可以根据需要带有命令行菜单功能,网络调试功能以及文件系统的相关功能。在这里我只谈ARM平台的引导,因为其他架构的CPU我没用过,就不吹牛了。一般基于不同的硬件设计,会有不同的引导方式:

NORFlash Boot:

一般ARM处理器的片选0都会接有NORFlash,这样在ARM上电以后,会从0地址开始执行程序,也就是从NORFlash的0地址开始执行。所以把EBOOT烧到NORFlash的0地址开始的地方,这样在上电以后,EBOOT开始执行,可以在NORFlash里面执行,也可以自拷贝到SDRAM中执行。最后加载WinCE image并运行。

NANDFlash Boot with EBOOT:

由于NORFlash容量小,价格贵,现在很多ARM处理器支持NandFlash引导。不同厂家的处理器对Nandflash的引导略有区别,具体要看datasheet。但是本质就是先从Nandflash中读出一个小的Loader来运行,这个Loader再从Nandflash中加载EBOOT到SDRAM中运行,最后EBOOT加载WinCE image,就是NK.bin。

NANDFlash Boot without EBOOT:

如果在NandFlash引导的时候不需要EBOOT,也可以不用EBOOT。这样就是系统启动后从Nandflash中加载一个小的Loader,小的Loader对硬件系统作基本的初始化,然后直接加载WinCE image,一般应该是NK.nb0,然后运行。

这里来说一下NK.bin与NK.nb0,两个不同的WinCE image。

NK.nb0:就是一个可以直接运行的WinCE映像文件,直接拷贝到SDRAM中就可以运行。

NK.bin:被称为Windows CE binary image data format文件格式,是一种包含了多个独立纪录(Section)的二进制文件。在加载的时候,需要分别加载,不同的Section加载到不同的地方。所以NK.bin需要Bootloader进行解释性加载。但是他的Size会比NK.nb0小。可以使用viewbin命令查询NK.bin中的纪录信息。

viewbin –rec nk.bin 

前面已经讲过了一般系统会使用到的引导方式,下面介绍一下EBOOT。在WinCE中EBOOT一个作用可以加载WinCE image,还可以通过网络配合Platform Builder下载WinCE image进行调试。在开发一个新的BSP的时候,首先会基于一个相似的平台的BSP进行克隆,然后要做的就是要开发和调试EBOOT了,EBOOT的架构如图:


BLCOMMON:相当于EBOOT的一个基本框架,主要完成bootloader相关内存的分配,解析NK.bin文件并进行效验,初始化平台,通过网络下载image等功能。

OEM Code:主要是基于硬件平台,为BLCOMMON提供相应的接口函数,帮助完成相应的功能。

Eboot:一个小的网络协议栈,为网络下载image提供DHCP,TFTP,UDP等网络服务功能。

Network Driver:硬件平台的网络驱动部分,支持上层的网络功能。

Bootpart:为Flash设备提供分区功能,bootloader可以创建一个BinFS分区和一个文件系统分区。还可以用它来创建一个引导分区用来存放引导参数。

Flash Memory:硬件平台的Flash驱动。

时间: 2025-01-30 14:00:10

WinCE Boot方式及Bootloader架构概述的相关文章

《数据中心设计与运营实战》——1.6 WSC的架构概述

1.6 WSC的架构概述 每个WSC的硬件部署与其他的都千差万别.即使在像Google这样的单一组织中,不同的年代也使用不同的基本组件进行系统部署,这也反映了行业的硬件演进.然而,这些WSC系统的架构在过去的几年里已经相对稳定,因此,描述这个通用的架构有助于为后续的讨论做个铺垫. 图1.1描述了WSC的顶层构建.一组低端服务器,典型的是1U1服务器或刀片服务器形式,安装到机架,使用以太网交换机进行内部互联.这些机架级别的交换机,支持1-10Gbit/s连接,有多个上行链路连接到一个或多个集群级(

Apache OpenWhisk架构概述

本文讲的是Apache OpenWhisk架构概述[编者的话]Apache OpenWhisk是一个开源FaaS平台.现在,AWS Lambda是FaaS最流行的实现. 在开源组件的选择中,OpenWhisk是最好的选择.OpenWhisk是一个健壮的.可扩展的平台,支持数千并发触发器和调用.这篇文章将探索OpenWhisk设计和架构,识别各种组件及其作用,可以帮助我们更好的了解分布式系统和serverless平台. [3 天烧脑式 Docker 训练营 | 上海站]随着Docker技术被越来越

CICS Transaction Server的应用架构概述

IBM CICS Transaction Server是一个交易处理服务器,主要运行在基于IBM z/OS 的IBM System z 大型机上.它控制应用程序和用户(从较小的用户数量到成千上万)之间的交互.CICS应用程序提供了高可靠性和可伸缩性.CICS应用程序非常灵活,可使用多种不同的客户接口:从终端,web浏览器到web服务. 正如IBM红皮书解决方案指南介绍,CICS应用程序体系架构有一些业务和技术优势. 有关主题的相关信息,请参阅下面的IBM红皮书: Architect's Guid

Android 应用架构概述

通常一个App的成长过程都是这样的: 第一阶:先用最少的成本和时间快速把东西做出来. 第二阶段:积累一定用户量之后再小步快跑的迭代功能. 第三阶段:性能和体验上逐步求精. 我发现好多项目在第二阶段和第三阶段耗费了好多本来不应该浪费的人力成本.时间成本.究其原因就是因为前期忽略了合理的架构,我甚至经历过因为前期的设计不合理导致后期技术债务太多项目濒临死掉.整个项目组全员换掉重造锅炉的境地.所以,我们为什么不既能使用最简洁的方式实现功又能要保证后期灵活的扩展能力呢?下面是本人最近项目实践的一些整理,

Android应用开发架构概述

通常一个App的成长过程都是这样的: 第一阶:先用最少的成本和时间快速把东西做出来. 第二阶段:积累一定用户量之后在小步快跑的迭代功能. 第三阶段:性能和体验上逐步求精. 我发现好多项目在第二阶段和第三阶段耗费了好多本来不应该浪费的人力成本.时间成本.究其原因就是因为前期忽略了合理的架构,我甚至经历过因为前期的设计不合理导致后期技术债务太多项目濒临死掉.整个项目组全员换掉重造锅炉的境地.所以,我们为什么不既能使用最简洁的方式实现功又能要保证后期灵活的扩展能力呢?下面是本人最近项目实践的一些整理,

“NASA”计划背后,阿里巴巴大数据系统架构概述

免费开通大数据服务:https://www.aliyun.com/product/odps DT时代,人们比以往任何时候都收集到更多的数据.据IDC报告,预计到2020年,全球数据总量将超过40ZB(相当于40万亿GB),这一数据量是2011年的22倍!正在"爆炸式"增长的数据,其潜在巨大价值有待发掘.它作为一种新的能源,正在发生聚变,变革着我们的生产和生活,催生了当下大数据行业的热火朝天.但是我们如果不能对这些数据进行有序.有结构的分类组织和存储,如果不能有效利用并发掘产生价值,那么

Android应用架构概述

通常一个App的成长过程都是这样的: 第一阶:先用最少的成本和时间快速把东西做出来. 第二阶段:积累一定用户量之后在小步快跑的迭代功能. 第三阶段:性能和体验上逐步求精. 我发现好多项目在第二阶段和第三阶段耗费了好多本来不应该浪费的人力成本.时间成本.究其原因就是因为前期忽略了合理的架构,我甚至经历过因为前期的设计不合理导致后期技术债务太多项目濒临死掉.整个项目组全员换掉重造锅炉的境地.所以,我们为什么不既能使用最简洁的方式实现功又能要保证后期灵活的扩展能力呢?下面是本人最近项目实践的一些整理,

MySQL的体系架构概述

做DBA三年多,接触过很多主流数据库产品,但唯独没机会碰触MySQL,今天开始决定自学MySQL,给自己 冲冲电,先从MySQL的体系架构开始学起. MySQL数据库的体系架构如下图所示: 从上 图中可以看出,MySQL主要分为以下几个组件: 连接池组件 管理服务和工具组件 SQL接口组件 分析器组件 优化器组件 缓冲组件 插件式存储引擎 物理文件 有其它数据库基础的人可以马上发现,MySQL最大的特色是其可插拔的插件式存储引擎,存储引擎是底层 物理架构的实现,每个存储引擎开发者都可以按照自己的

阿里云播放器SDK的正确打开方式 | 功能、架构与应用(一)

阿里云播放器SDK(ApsaraVideo for Player SDK)是阿里视频云端到云到端服务的重要一环,除了支持点播和直播的基础播放功能外,还深度融合视频云业务,支持视频的加密播放.安全下载.首屏秒开.低延时等业务场景,为用户提供简单.快速.安全.稳定的视频播放服务.本文将从产品特点.技术架构.点播和直播场景中播放器的应用等几个方面来介绍阿里云播放器SDK. 阿里云播放器SDK具有哪些特点? 一. 快速接入 因为面对的是不同层次的开发者,在接入成本上需要考虑的尽量全面.为此,阿里云播放器