wince 5.0 内核启动顺序(ARM)
来源:互联网 发布:java编程思想最新版 编辑:程序博客网 时间:2024/06/06 04:33
Kernel Startup Sequence Startup() KernelStartup() ArmInit() OEMInitDebugSerial() OEMInit() KernelInit() HeapInit() InitMemoryPool() ProcInit() SchedInit() FirstSchedule() SystemStartupFunc() IOCTL_HAL_POSTINIT 上表是基于ARM 的wince内核启动顺序. 粗体字表示OEM 需要定制的部分. 1. Startup() -> Startup.s 位于%_WINCEROOT%/Platform/<Hardware Platform Name>/Src/Kernel/OAL 目录下 这个函数是bootloader调转到run-time镜像后最先执行的代码,位于我们的BSP开发包中,由OEM定制.程序最后启动KernelStart(). 2. KernelStart() -> Armtrap.s (Private) 位于 %_WINCEROOT%/Private/Winceos/Coreos/Nk/Kernel/ARM 目录下 这个函数是内核的Main Entry 点. 3. ARMInit() -> Mdarm.c (Private) 这个函数调用4,5来对Main Arm 进行初始化动作. 4. OEMInitDebugSerial() -> Mdarm.c (Private) 位置同上. 初始化串口,调用BSP 包中的串口函数(由OEM定制的部分). 5. OEMInit() -> Init.c %_WINCEROOT%/Platform/<Hardware Platform Name>/Src/Kernel/OAL 这个位于我们BSP开发包中,由OEM自行定制,不用多说,做过OAL开发的都知道. 6. KernelInit() -> Kwin32.c (Private) %_WINCEROOT%/Private/Winceos/Coreos/Nk/Kernel 目录下 该函数调用7,8,9,10函数对内进行初始化动作. 7. HeapInit() -> Heap.c (Private) %_WINCEROOT%/Private/Winceos/Coreos/Nk/Kernel 目录下 初始化内核堆. 8. InitMemoryPool() -> Physmem.c (Private) %_WINCEROOT%/Private/Winceos/Coreos/Nk/Kernel 目录下 初始化内核内存池 9. ProcInit() -> Schedule.c (Private) %_WINCEROOT/Private/Winceos/Coreos/Nk/Kernel 初始化内核进程. 10. SchedInit() -> Schedule.c (Private) _WINCEROOT/Private/Winceos/Coreos/Nk/Kernel 初始化调度管理器(scheduler) ,创建SystemStatupFunc 线程. 11. FirstSchedule() -> Schedule.c (Private) %_WINCEROOT/Private/Winceos/Coreos/Nk/Kernel 启动调度管理器(scheduler), 调用SystemStartupFunc(),IOCTL_HAL_POSTINIT 12. SystemStartupFunc() -> Schedule.c (Private) %_WINCEROOT/Private/Winceos/Coreos/Nk/Kernel 当所有内核需要的初始化动作完成之后并且当系统准备启动和运行内核线程,SystemStartupFunc被调用.SystemStartupFunc以IOCTL_HAL_POSTINIT为参数调用OEMIoControl,OEMIoControl, 13. OEMIoControl,这个我也不多说了,由我们OEM定制. 以上为wince 基于ARM cpu 的内核启动的过程. 参考: 1. Microsoft Windows CE 5.0 Board Support Package, Boot Loader, and Kernel Startup Sequence ; 2. WinCE 5.0 内核启动过程 .
位于 %_WINCEROOT%/Private/Winceos/Coreos/Nk/Kernel/ARM 目录下
- wince 5.0 内核启动顺序(ARM)
- wince 5.0 内核启动顺序(ARM)
- WinCE 5.0 内核启动过程
- WinCE 5.0 内核启动过程
- WinCE 5.0 内核启动过程(中文版)
- WinCE 5.0 内核启动过程(中文版)
- (arm wince) ep93xx启动初始化
- ARM LINUX 内核启动
- Linux内核启动顺序
- linux内核启动顺序
- WinCE 5.0 内核启动过程详细流程解析
- arm linux 启动大致顺序
- Arm linux 内核启动流程
- ARM Linux内核启动过程
- ARM Linux内核启动要求
- ARM-Linux内核启动分析
- ARM Linux内核启动过程
- Linux(ARM)内核启动地址
- 慎用MonthsBetweent和MonthSpan
- javascript实现全选/反选
- ubuntu NFS配置
- 由于其配置信息(注册表中的)不完整或已损坏,Windows 无法启动这个硬件设备
- setsockopt 设置socket 详细用法
- wince 5.0 内核启动顺序(ARM)
- iPhone App 推广网站大全
- symbian电话拦截
- Listbox
- 学习ViewState笔记
- hdu1084(What Is Your Grade?)
- Android真机调试方法
- 乐观锁和悲观锁
- oracle中用存储过程创建一张table