WinCE 5.0 内核启动过程

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

本文简单描述一下wince5.0内核的启动流程,以mips cpu为例。msdn有一篇文章叫做Microsoft Windows CE 5.0 Board support Package,Boot Loader,and Kernel Startup Sequence非常不错,可以参考。

1. startup.首先,内核最先执行的代码位于oal当中,叫做startup,这段代码由微软留给开发者定制。当然,各个参考bsp里面都有现成的代码,开发者只需在此基础上改动。在startup()的末尾,会跳转到kernelstart函数。

2. kernelstart. 位于WINCEROOT/Private/winceos/coreos/nk/kernel/mips/startup.s 这里面是汇编代码。是所有的mips开发板都要执行的操作。所以这里面会根据不同cpu类型作判断。虽然是汇编代码,好在里面还是有不少注释,通过这些注释,可以看出它里面主要在干什么。

3. KernelRelocate. kernelstart在完成一些必要的初始化之后,会调用KernelRelocate函数,这是一个比较重要的函数,位于WINCEROOT/Private/winceos/coreos/nk/kernel/loader.c. 它会把kernel用到的数据copy的ram里面。具体的功能msdn里面有解释。 这里的ram就是在config.bib里面指定的具有ram属性的存储区域,不是ramimage. kernelRelocate以pToc为参数,那么pToc的值从何而来呢?即便你搜索完所有的文件也找不到在那里pToc被赋值。因为pToc是在makeimage阶段被romimage.exe赋值的,也就是说pToc并不是在代码中被赋值的,是由外力(romimage.exe)改动nk.bin的内容赋值的。

4。MIPSInit.  KernelRelocate处理完成之后,MIPSInit会被调用。位于WINCEROOT/Private/winceos/coreos/nk/kernel/mips/mdsched.c.这里是通用的mips的处理,其中会调用oal当中的OEMInitDebugSerial去初始化调试用的串口。

5。OEMInit。接下来就是大名鼎鼎的OEMInit了。这个函数由开发者定制。是c语言的。由上面的分析我们知道,在进入OEMInit的时候,串口已经初始化完毕,所以现在我们已经可以通过串口打印出一些调试信息了。而在此之前,我们只能通过led的方式作一些简单的显示。

6。KernelFindMemory. 位于WINCEROOT/Private/winceos/coreos/nk/kernel/loader.c
OEMInit返回之后调用该函数。这个函数主要是把ram划分为两部分:object store和应用程序可以使用的部分。object store就是用于存贮wince的ram file system的,例如开机以后我们看到的/windows目录就是位于ram file system.

7。KernelInit. 位于WINCEROOT/Private/winceos/coreos/nk/kernel/kwin32.c
这部分跟cpu无关,是kernel要完成自己的初始化。至此,kernel得初始化全部完成,可以开始线程调度。

还有一点需要说明的时,kernel在完成初始化之后,会以IOCTL_HAL_POSTINIT为参数调用OEMIoControl,所以我们可以在这里打印出一句话表明kernel已经初始化完成。

除了kernel本身(nk.exe)之外,第一个被创建的进程是谁呢,对,就是文件系统,filesys.exe.
虽然他不是kernel本身的一部分,但是如果没有文件系统,wince也是玩不转的,注册表的初始化就是由文件系统来完成。

Windows CE 5.0桌面同步管理工具 本文还有配套的精品资源,点击获取 简介:Wince 5.0桌面同步操作工具是一种针对Windows CE 5.0嵌入式操作系统的桌面同步软件,允许通过电脑与Wince设备进行数据交换和管理。此工具提供了更新应用程序、传输文件、备份数据以及配置设备设置等同步功能,便于高效安全地进行设备维护。压缩包内的文件包括ASRDisp.exe(可能用于设备恢复或备份),cerdisp2.... 阅读详情

相关推荐

免安装版启动wince5和6模拟器

免安装版启动wince5和6模拟器

Windows CE 5.0启动过程分析

分析WinCE5.0启动过程对了解和掌握Windows CE操作系统比较重要,下面主要分析Win CE5.0启动过程,在后续的文章中将分析WinCE6.0启动过程。     1、CPU加电,跳转到复位向量; 2、执行引导程序Startup();OAL中的Startup(); •         完成最小的CPU和硬件初始化; •         关闭中断、缓存(Cache)和

wince--linux的专栏 1231

关于wince5、VS2005wince6网盘下载的说明

介绍了关于wince5、vs2005wince6的网盘的下载

wince5.0安装及使用

wince5.0的操作系统比较特殊,因为我们不能获得它的具体的操作系统,而能获得的是它的集成开发环境,比如Platform builder.我们可以用这个开发工具,制作出一个操作系统映像,下载到目标机上。或者我们可以用这个开发环境制作一个自己所需要的SDK,然后在具体的嵌入式软件开发环境中使用这个SDK. 大多数情况下,我们是不需要自己定制SDK的,我们可以通过其他...

dianza5852的博客 682

WinCE 5.0与6.0有何区别

<br /><br /><br />Windows CE概述<br />  WindowsCE是微软公司嵌入式、移动计算平台的基础,它是一个开放的、可升级的32位嵌入式操作系统,是基于掌上型电脑类的电子设备操作系统,它是精简的Windows 95Windows CE的图形用户界面相当出色。<br />基本简介<br />  其中CE中的C代表袖珍(Compact)、消费(Consumer)、通信能力(Connectivit)和伴侣(Companion);E代表电子产品(Electronics)。与Wind

电力行业解决方案 电力系统砖家 电动汽车砖家 6765

WinCE基础知识(二):WinCE 5.0 的目录结构

Platform Builder 5已经自带WinCE 5.0,安装过程会指定WinCE 5.0的安装路径,默认为X:/WINCE500WINCE500即为WinCE 5.0的根目录。根目录下主要有以下几个目录:PUBLIC, PLATFORM, PRIVATE, PBWorkspaces, OTHERS, SDK。PUBLIC目录PUBLIC目录包含构建系统所需要的工具、部分组

昔日之的专栏 2608

WinCE 5.0 内核启动过程(中文版)

WinCE 5.0 内核启动过程(中文版) 标签: wincemicrosoft汇编objectfilewindows 2009-07-08 09:58 837人阅读 评论(0) 收藏 举报  分类:   arm9(24)  WinCE 5.0 内核启动过程(中文版) 2008-08-23 11:19 分类:OAL 字号: 大  中  小

C51ArmConWinceLinux的博客 663

ARM与MIPS比较,比较经典,值得一看

ARM与MIPS比较,比较经典,值得一看 希望能对大家提供新的信息 ~~~

嵌入式系统/ARM技术中的基于MIPS的Win CE多媒体操作系统的研究

摘要:本文介绍了MIPS处理器、MIPS嵌入式系统下Windows CE的BootLoader引导模式,以及Windows CE嵌入式操作系统及其系统定制和调试工具Platform. Builder。提出了定制具有多媒体功能的新内核并下载到开发板的方案,详细论述了本方案中BootLoader的烧写以及NK.bin的下载。最后构建了一个高性能,低功耗,可靠性高的特制的应用于多媒体的Windows CE嵌入式系统。   0 前言   嵌入式技术是21世纪最具生命力的新技术之一,经过近几年的快速发展,已经成为电子信息产业中最具增长力的一个分支,随着手机、掌上电脑、GPS、电视机顶盒、高清播放器等

WinCE 5.0 内核启动过程详细流程解析

<br />本文简单描述一下wince5.0内核启动流程,以mips cpu为例。msdn有一篇文章叫做Microsoft Windows CE 5.0 Board support Package,Boot Loader,and Kernel Startup Sequence非常不错,可以参考。<br />1. startup.首先,内核最先执行的代码位于oal当中,叫做startup,这段代码由微软留给开发者定制。当然,各个参考bsp里面都有现成的代码,开发者只需在此基础上改动。在startup()的末

jjunjoe的专栏 957

【转】wince5.0内核启动流程

本文简单描述一下wince5.0内核启动流程,以mipscpu为例。msdn有一篇文章叫做MicrosoftWindowsCE5.0BoardsupportPackage,BootLoader,andKernelStartupSequence非常不错,可以参考。 1.startup.首先,内核最先执行的代码位于oal当中,叫做startup,这段代码由微软留给开...

weixin_30772105的博客 92

转载——wince5.0内核启动流程(MIPS为例)

本文简单描述一下wince5.0内核启动流程,以mips cpu为例。msdn有一篇文章叫做Microsoft Windows CE 5.0 Board support Package,Boot Loader,and Kernel Startup Sequence非常不错,可以参考。1. startup.首先,内核最先执行的代码位于oal当中,叫做startup,这段代码由微软留给开发者

gooogleman#foxmail.com 2664

wince5.0内核启动流程(MIPS为例)

本文简单描述一下wince5.0内核启动流程,以mips cpu为例。msdn有一篇文章叫做Microsoft Windows CE 5.0 Board support Package,Boot Loader,and Kernel Startup Sequence非常不错,可以参考。1. startup.首先,内核最先执行的代码位于oal当中,叫做startup,这段代码由微软留给开发者定制

ymzhou117的专栏 1606
上一篇: How to get a handle to a device driver returned by device manager?
下一篇: Event ID 1041 source userenv
ln2002
博客等级 码龄24年 1粉丝 11原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值