+86-1478258894512522120
葩星12522120 淘宝旺旺passiontechinc

pt@ptinfous.com

+86-14782588945

  加载中,请稍候...
浏览历史

 


WinCE_5.0_内核启动过程_

关键词: WinCE,5.0,内核启动过程,

简介:/* Generator: eWebEditor */p.MsoNormal, li.MsoNormal, div.MsoNormal {margin:0cm;margin-bottom:.0001pt;text-align:justify;text-justify:inter-ideograph;font-size:10.5pt;font-family:"Times New Roman";}div.Section1 {page:Section1;}/* Generator: eWebEditor */p.MsoNormal, li.MsoNormal, div.MsoNormal {margin:0cm;margin-bottom:.0001pt;text-align:justify;text-justify:inter-ideograph;font-size:10.5pt;font-f...
品 牌 葩星 葩星
产 地 中国
型 号 PXF0248
折 扣 其他电询
咨询专家:

黄工-工业总线-工业自动化-实时仿真

黄工-工业总线-工业自动化-实时仿真 ID:2937

   机电电子工程专业硕士,机械设计制造及其自动化/计算机双学士,高级工程师

    具有丰富的从业、管理经验,曾在机电工程公司,资深设计代理公司工作。历任组织、经理等岗位,同时具有深厚的理论基础和项目项目研发经历。...

[MORE]

赵工-总线系统-嵌入式系统-工业自动化

赵工-总线系统-嵌入式系统-工业自动化 ID:2940

    机械电子工程,嵌入式系统专家,高级工程师

    嵌入式项目开发,ARM,Freescale,Infilion等系列单片机系统开发,DSP嵌入式系统开发,FPGA系统开发,项目经验丰富。


...

[MORE]

产品说明:

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


 91B:mK  
1. startup.首先,内核最先执行的代码位于oal当中,叫做startup,这段代码由微软留给开发者定制。当然,各个参考bsp里面都有现成的代码,开发者只需在此基础上改动。在startup()的末尾,会跳转到kernelstart函数。 $,.7MpZ  
2. kernelstart.
位于WINCEROOT\Private\winceos\coreos\nk\kernel\mips\startup.s 这里面是汇编代码。是所有的mips开发板都要执行的操作。所以这里面会根据不同cpu类型作判断。虽然是汇编代码,好在里面还是有不少注释,通过这些注释,可以看出它里面主要在干什么。 !W
+Vbw  
3. KernelRelocate. kernelstart
在完成一些必要的初始化之后,会调用KernelRelocate函数,这是一个比较重要的函数,位于WINCEROOT\Private\winceos\coreos\nk\kernel\loader.c. 它会把kernel用到的数据copyram里面。具体的功能msdn里面有解释。 这里的ram就是在config.bib里面指定的具有ram属性的存储区域,不是ramimage. kernelRelocatepToc为参数,那么pToc的值从何而来呢?即便你搜索完所有的文件也找不到在那里pToc被赋值。因为pToc是在makeimage阶段被romimage.exe赋值的,也就是说pToc并不是在代码中被赋值的,是由外力(romimage.exe)改动nk.bin的内容赋值的。 8@CgF)9,  
4.MIPSInit. KernelRelocate
处理完成之后,MIPSInit会被调用。位于WINCEROOT\Private\winceos\coreos\nk\kernel\mips\mdsched.c.这里是通用的mips的处理,其中会调用oal当中的OEMInitDebugSerial去初始化调试用的串口。 arDG]r@­p  
5.OEMInit.
接下来就是大名鼎鼎的OEMInit了。这个函数由开发者定制。是c语言的。由上面的分析我们知道,在进入OEMInit的时候,串口已经初始化完毕,所以现在我们已经可以通过串口打印出一些调试信息了。而在此之前,我们只能通过led的方式作一些简单的显示。 YjloW8P  
6.KernelFindMemory.
位于WINCEROOT\Private\winceos\coreos\nk\kernel\loader.c p
: $DER
 
OEMInit
返回之后调用该函数。这个函数主要是把ram划分为两部分:object store和应用程序可以使用的部分。object store就是用于存贮winceram file system的,例如开机以后我们看到的\windows目录就是位于ram file system. -R'j~h}d  
7.KernelInit.
位于WINCEROOT\Private\winceos\coreos\nk\kernel\kwin32.c $o`RjT&u  
这部分跟cpu无关,是kernel要完成自己的初始化。至此,kernel得初始化全部完成,可以开始线程调度。 .WV#j>/:+s  
   
还有一点需要说明的时,kernel在完成初始化之后,会以IOCTL_HAL_POSTINIT为参数调用OEMIoControl,所以我们可以在这里打印出一句话表明kernel已经初始化完成。 4m'w@ssZG  
除了kernel本身(nk.exe)之外,第一个被创建的进程是谁呢,对,就是文件系统,filesys.exe. n
U-7d5
 
虽然他不是kernel本身的一部分,但是如果没有文件系统,wince也是玩不转的,注册表的初始化就是由文件系统来完成。

免责声明/版权申明 Passiontech

所有文章为网上搜集或私下交流学习之用,任何涉及商业盈利目的均不得使用,否则产生的一切后果由您自己承担!

本站仅仅提供一个观摩学习的环境,将不对任何资源负法律责任。所有资源请在下载后24小时内删除。

若无意中侵犯到您的版权利益,请来信联系我们,我们会在收到信息三天内给予处理!

 

 














参数资料:
WinCE_5.0_内核启动过程_WinCE,5.0,内核启动过程,
该文章系原厂商文章翻译,不通之处请参考原文
价格列表: WinCE_5.0_内核启动过程_WinCE,5.0,内核启动过程,
葩星订货号 订货号 产品名称 报价 品牌  
相关产品: WinCE_5.0_内核启动过程_WinCE,5.0,内核启动过程,

  咨询历史: