原创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 ...
一周排行
  • Time:3 2From:[email protected]:提交功能过滤不严导致XSS执行官网: www.zhirui.net分析:UserAdd.asp过滤不严修补:过滤Exp:注册用户 > ...
  • Windows xp集成的防火墙常被视为鸡肋,但现在的Win7防火墙强悍的功能也有了点"专业"的味道.今天教和大家一起来看看该如何使用WIN7防火墙. 与Vista相同的是,可以通过访问控制面板程 ...
  • 非常糟糕........是心情很不好.一: 博物馆豪享来今天可真夸张,门口排了这么多人,等着消费5折的牛排.看来打折的东西就是有诱惑力.我路过的时候已经7点半了,也不知道是从几点开始排的,不会是早上吧?不凑这个热闹了 ...
  • 近日,在“蔚蓝生物第8届年会”上,新希望六和联席董事长兼CEO陈春花教授以“与变化共舞”为题目,发表了演讲.陈春花强调,在今天这个环境下,我们必须很清楚的知道互联网带来的趋势到底是什么.外部企业环境迫使我们必须真正的 ...
  • 1 . <!--StartFragment--><style type="text/css"> .demo a { float:left; margin:5px 1px 0 ...
  • 问:对于企业是AD的规划是单林单域好还是多林多域好?   答: 对AD的规划外资企业与非外资企业规划的区别是非常大的,在外资企业当中(含跨国外企与港台企)一般至少有两个以上的林,国外一个林,国内一个林,一个或一个以上 ...
  • 整个国庆期假,Insus.NET没有出门,在家静心修炼MVC.这意味着Insus.NET将来的日子里会以MVC为学习,开发,应用作为重点,不过现在才开始踏出第一步...... 路慢慢......下载了并安装Visua ...
  • Gdb等几则笔记 转载时请注明出处和作者联系方式 作者联系方式:李先静 <xianjimli at hotmail dot com> 一.gdb几种常见使用方式及编译方法: 1.在本机调试本机的程序. 在 ...
  • 1.     STM32的Timer简介 STM32中一共有11个定时器,其中2个高级控制定时器,4个普通定时器和2个基本定时器,以及2个看门狗定时器和1个系统嘀嗒定时器.其中系统嘀嗒定时器是前文中所描述的SysTi ...
  • 去年下半年,国内各手机厂商都发力中低端市场,各种的超性价比手机接连不断.尤其在华为荣耀3C.荣耀3X的发布,更是让以发烧性价比而生的小米渐渐失去了光环 去年下半年,国内各手机厂商都发力中低端市场,各种的超性价比手机接 ...