- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PAGE 1
PAGE 1
WinCE启动时频繁死机的原因分析及解决办法
WindowsCE是微软公司嵌入式、移动计算平台的基础,它是一个开放的、可升级的32位嵌入式操作系统,是基于掌上型电脑类的电子设备操作系统,它是精简的Windows 95,Windows CE的图形用户界面相当精彩。 Windows CE作业系统是Windows家族中的成员,特地设计给掌上型电脑(HPCs)所使用的电脑环境。这样的作业系统可使完整的可携式技术与现有的Windows桌面技术整合工作。Windows CE 被设计成针对小型设备(它是典型的拥有有限内存的无磁盘系统)的通用操作系统,Windows CE 可以通过设计一层位于内核和硬件之间代码来用设定硬件平台,这即是众所周知的硬件抽象层(HAL)。不象其它的微软 Windows 操作系统,Windows CE 并不是代表一个标准的相同的对全部平台适用的软件。为了足够敏捷以达到适应广泛产品需求, Windows CE 采纳标准模式,这就意味着,它能够由一系列软件模式做出选择,从而使产品定制。另外,一些可利用模式也可作为其组成部分,这意味着这些模式能够通过从一套可利用的组份做出选择,从而成为标准模式,通过选择,能够达到系统要求的模式, OEM 能够削减存储脚本和操作系统的运行。 Windows CE中的C代表袖珍(Compact)、消费(Consumer)、通信力量(Connectivity)和伴侣(Companion);E代表电子产品(Electronics)。与Windows 95/98、Windows NT不同的是,Windows CE是全部源代码全部由微软自行开发的嵌入式新型操作系统,其操作界面虽于Windows 95/98,但Windows CE是基于WIN32 API重新开发、新型的信息设备的平台。Windows CE具有模块化、结构化和基于Win32应用程序接口和与处理器无关等特点。Windows CE不仅继承了传统的Windows图形界面,并且在Windows CE平台上可以使用Windows 95/98上的编程工具(如Visual Basic、Visual C++等)、使用同样的函数、使用同样的界面风格,使绝大多数的应用软件只需简洁的修改和移植就可以在Windows CE平台上连续使用。Windows CE并非是专为单一装置设计的,所以微软为旗下采纳Windows CE作业系统的产品大致分为三条产品线,Pocket PC(掌上电脑)、Handheld PC(手持设备)及Auto PC. 我们的嵌入式系统用的是arm处理器+WinCE平台,目的是要把WinCE平台从旧版本移植到WinCE6.0平台上。但结果是这个WinCE系统在启动的时候常常会消失失败,而且每次失败的缘由都莫明其妙和不尽相同。 为什么会消失这种状况呢?经过分析和讨论,原来主因是系统的引导过程、内核加载过程、OAL启动过程和硬件驱动加载过程时都存在可能导致的失败的隐忧。本文通过对以上因素进行分析,并提出相应的解决方法。但由于WinCE启动失败会特别取决于硬件平台,因此在详细应用时需要综合考虑和分析。 一 什么是WinCE启动过程? WinCE系统在启动时一般需要三个基本元素:引导初始化、内核加载和OAL初始化等。它们的作用是要完成引导过程的初始化和操作系统执行环境的初始化。其中引导初始化是由引导工具BootLoader完成,主要是完成板级、片级的初始化。例如,通过设置寄存器来完成硬件的初始化,如设置时钟、设置中断掌握寄存器、完成内存映射和初始化MMU的工作方式等。内核加载是指将操作系统内核映像从只读存储器加载或者拷贝到系统的RAM中并执行。OAL是位于操作系统的内核与硬件之间的适配层,也是连接系统内核与硬件的枢纽,它具有屏蔽硬件设备细节以及抽象硬件功能的作用。而OAL初始化则是指通过一组函数来体现出0AL屏蔽和抽象硬件设备的作用。 此外,假如要WinCE系统成为完整的操作系统,还得加上硬件驱动程序、硬件接口程序和应用程序组。因此,即使在一个简洁的嵌入式系统里,WinCE系统启动时是需要加载内核和加载很多组件或驱动程序。 WinCE系统在启动时调用函数的挨次:①CPU执行引导向量,跳转到硬件初始化代码,即Startup函数。②在start up函数完成硬件环境初始化后跳转到KernelStart函数,来对内核进行初始化。③Kernelstart函数调用OEMInitDebugSerial完成对调试串口的初始化;同时调用0EMInit函数来完成硬件初始化工作以及设置时钟、中断;,调用OEMGetExtensionDRAM函数来推断是否还
您可能关注的文档
最近下载
- 热力管网直埋管道施工方案.doc
- 苏教版六年级下册科学第三单元《自然资源》单元试卷及答案.pdf VIP
- 2025年苏教版六年级科学下册第二单元《生物和栖息地》单元试卷(含答案).pdf VIP
- 小学科学苏教版六年级下册期末测试题A(附参考答案)(2022新版).pdf VIP
- 萌宠学 见面课试题及答案.docx VIP
- 苏教版六年级科学下册单元测试卷及答案(全册).pdf VIP
- 新苏教版六年级上册科学全册知识点总结.doc
- 全国自考《学前儿童游戏指导》全真模拟题(八).doc VIP
- 认知战研究的多学科视角分析.pptx VIP
- 全国自考《学前儿童游戏指导》全真模拟题(七).doc VIP
文档评论(0)