原创Windows® Embedded CE 6.0 Fundamentals 读书笔记_Chapter 7

 

 

Windows® Embedded CE 6.0 Fundamentals 读书笔记_Chapter 1

Windows® Embedded CE 6.0 Fundamentals 读书笔记_Chapter 2

Windows® Embedded CE 6.0 Fundamentals 读书笔记_Chapter 3

Windows® Embedded CE 6.0 Fundamentals 读书笔记_Chapter 4

Windows® Embedded CE 6.0 Fundamentals 读书笔记_Chapter 5

Windows® Embedded CE 6.0 Fundamentals 读书笔记_Chapter 6

Windows® Embedded CE 6.0 Fundamentals 读书笔记_Chapter 7

Windows® Embedded CE 6.0 Fundamentals 读书笔记_Chapter 8

Windows® Embedded CE 6.0 Fundamentals 读书笔记_Chapter 9

Windows® Embedded CE 6.0 Fundamentals 读书笔记_Chapter 10

 

文档下载地址

Windows® Embedded CE 6.0 Fundamentals +读书笔记

 

Chapter 7
这一章主要介绍操作系统的启动流程,相对前面几章理解上稍微简单一些。
首先还是一些单词
//============单词==============
components
manufacturer
presence
preliminary
preparation
implementation
prepare
table of contents (TOC)
validates
separated out
appropriate
attempts
determined
//============简单翻译============
组件
制造商
存在
初步
准备
执行
准备
目录表(TOC)
验证
分离出来
适当
尝试
确定

Chapter7 系统启动
对驱动开发完成后我们可以编译出一套属于自己的WinCE操作系统,那操作系统是如何启动的呢,这一章对这个问题进行了描述。
这一章分为四个步骤,准备镜像,启动处理,加载文件系统,加载驱动管理。下面我们逐一来看。

第一节准备镜像


首先提出的就是系统镜像的构建,一个系统镜像构建需要做以下的一些准备,首先需要做好配置文件,也就是为镜像的运行预备好 空间,其次要建立一套镜像内容的目录表,最后通过目录表指针来运行NK。NK在wince的镜像中是一个非常重要的部分,当bootloader完成对系统的启动后就会转入NK的执行,bootloader其主要的任务就是将处理器进入预处理状态,并初始化底层的硬件设备,例如初始化内存控制,平台soc初始化等,完成这些任务后进入NKStartup。进入内核后会做一系列的动作。具体大家可以参考下文章列出的一些实例。对系统的整体启动的运作有个认识。大概的顺序为,初始化NK全局结构体,中间调用OEMInitGlobals函数,完成后会返回NK全局结构体,并初始化一些动态库以及Kitl,完成后进入ARMSetup()(MIPS的进入MIPSSetup()),如果kitl在镜像中,会先加载Kitl的入口点,完成后开放OEMInitDebugSerial() ,通过这个函数可以通过串口查看调试,当整体系统平台初始化完成后执行OEMInit() ,完成后执行 KernelFindMemory(),通过armtrap.s调用KernelStart(),通过KernelStart()来启动,完成后执行KernelInit()。

第二节启动处理
接着上面一节提出的一个流程,我们简化一下,StartUp() – KernelStart()/KernelInitialize() – NKStartup() (<Kernel Entry>()),按照这个顺序我们再仔细来看看具体的处理过程,大家可以自己阅读图7-1System startup process StartUp()- ><KernelEntry>,这里大家需要去看看schedule.c这个文件,这里列出了一些函数的调用顺序,在内核的调用是一个比较复杂的过程,整个启动过程也可以看作KernelInit()->SystemStartupFunc()->RunApps(),其中的函数调用大家可以参考图7-2。

第三节文件系统加载
首先我们再来回顾下文件系统是什么,文件系统模式大家可以看看第六章151页,文件系统驱动的概念,其功能是预定义一些函数以及IOCTL控制。当系统冷启动需要加载,文件系统加载首先会对自己进行一个内存地址初始化,并将自身初始化,接下来对应用程序API接口进行一个初始化,设置文件系统自身的一些API,数据库,点对点的消息队列,事件日志,注册表。接下来对注册表数据进行初始化,总体说来,一个系统部分的加载就是其自身以及相关功能初始化的过程。完成文件系统初始化后,系统将完全运行,图7-3对系统启动中文件系统启动进行了描述。

第四节
关于设备管理加载就更好理解,通过以上几个部分的准备,设备管理将会按照以上初始化中生成的一些信息以及注册表信息对设备进行逐一的初始化工作。特别主要的依据是注册表,文中给出了一段注册表的实例,具体的意义大家可以回到第六章157页表6-3再回顾一下。最后举两个例子,例如我们想在系统启动时将系统的一些属性隐藏,想对系统的音量进行设定等都可以通过注册表修改,因为当执 行到设备管理加载的时候,注册表会作为一个准备的依据,比如,我们想在开机的时候把WINCE的开始和任务栏给隐藏,我们就可以 使用以下一段注册表来实现。

;===========auto bar==============
;[HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Shell/AutoHide]
;    "Default"=dword:1
;[HKEY_LOCAL_MACHINE/Software/Microsoft/Shell/OnTop]
;    "Default"=dword:0
;[HKEY_LOCAL_MACHINE/Software/Microsoft/Shell/SlideTaskBar]
;    "Default"=dword:0
;===================================

这一张内容虽然少,但是都是非常重要的部分,对系统运行的理解有一个很重要的引导作用,大家需要仔细的结合上面几章再阅读一下。

第七章学习完毕


作者:Mercury Xu
本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

更多相关文章
  • AngularJS自带了对表单或控件的输入数据进行验证的功能,对于Html5的基础控件均有内建的验证器,以下列举了所有支持的验证类型: email max maxlength min minlength number pattern required url date datetimelocal t ...
  • 看了SQL注入脚本后,笔者深受启发,不过美中不足的是文章中还有一些问题需要解决: 1.字典支持问题:如果字典信息不够全面,或者说字典中没有我们数据库中所具有的信息,如数据库表名,字段名,那我们的注入行动只是浪费时间而已. 2.缺乏对汉字的支持:现在很多朋友都在使用汉字作为平时的密码和帐户,汉字的出现 ...
  • 前日在地质大学举办的常青藤论坛上,一见作为战略合作媒体单独采访了前IDG资本合伙人李丰先生.通过采访,李丰创立的Freesvc顾名思义有解放传统VC的意味,也就是说Set VC free,一见认为Freesvc的投资方式.利益机制和管理机制会完全不同于原有的基金操作方式,Freesvc提出要通过一个 ...
  • 一.linux之路 1.入门篇  <LINUX权威指南>书不错,写的很全面也比较广,涉及的不深,做为入门书籍不错,可以比较全面的了解linux .另外比较热门的也可以看看<鸟哥的私房菜>等书,偏管理类的书.如果想做server方向的可以找来看看. 2.驱动篇  <LIN ...
  • Tomcat 使用 jsvc 以守护进程的方式启动(daemon.sh ).这样tomcat自身将会生成另外一个日志文件(catalina-daemon.out),而不是之前的catalina.out,而且catalina-daemon.out日志不会自动切割,会越来越大. 以前遇到过一个问题,就是 ...
  • 在<[Hibernate]Hibernate的聚类查询.分组查询.排序与时间之差>(点击打开链接)一文中已经讲述过如何利用HQL语句取代SQL语句,进行聚类查询.分组查询.排序与时间之差的查询,同时指出hql能代替sql语句做任何事情.我原本以为hql语句的多表查询,要先对里面的实体做J ...
一周排行
  • 创业道路艰辛,每一位创业者都是自己公司里的"第一产品经理",他们历经磨炼,在成功打造产品后才退居二线.大家都深知这些"创业者"成长为"创业家"不易,但是你们 ...
  • 易网科技讯 11月16日消息,在今日召开的GSMA亚洲移动通信大会上,美国联邦通讯委员会主席表示美国将美国将建设"超级Wifi"以及发布"连接美国"计划
  • 4阶斐波那契序列如下:f0=f1=f2=0, f3=1,…,fi=fi-1+fi-2+fi-3+fi-4, 利用容量为k=4的循环队列,构造序列的前n+1项(f0, f1 , f2 ,… fn ),要求满足fn ≤2 ...
  • 本题是利用counting sort的思想去解题. 注意本题,好像利用直接排序,然后查找rank是会直接被判WA的,奇怪的判断系统. 因为分数值的范围是0到100,非常小,而student 号码又非常大,故此天然的需 ...
  •   现在我想要点击表单中的条目,进行标记,再次点击以取消,那么该如何做呢?依然使用的是tableView的重载方法,在 Restaurant中新增一个isCollected的值表示是否收藏,然后回到Restauran ...
  • 最近几天,关于传统媒体转型的各种言论诸如"遗老们的恋恋不舍","无冕之王光环渐褪","唱片模式瓦解"等等,越发接近传统媒体转型的本质问题,真实的还原转型之路 ...
  • 据Infonetics公司最新发表的研究报告,2005到2006年,急速增长的WiMAX设备市场翻了近两番,全球收入激增286%,达5.492亿美元. 2006年第四季度WiMAX市场同样增长强劲,固定WiMAX收入 ...
  • 通过网上邻居窗口寻找共享资源,是很多局域网用户经常要做的一项"功课",为了做好这项"功课",不少朋友积累和总结了不少网上邻居故障排除经验;然而这些经验在Windows Serv ...
  • 扫描线,注意这个题目要求的是开区间: 1 #include<cstdio> 2 #include<algorithm> 3 #define maxn 109 4 using namespace ...
  •     在台湾,开网络商店让人改变一生的例子屡见不鲜.魏小姐原是走投无路的单亲妈妈,但后来开网络手工旗袍店,现在月入10万元以上:林小姐本来是累到生病的研究员,现在在网络上卖香肠,竟然月入百万,连家人都不敢相信.   ...