
WinCE5内核源代码分析
文章平均质量分 70
cpuwolf
Wrote a complete Unix-like operating system which included preemptive multitasking, a non-trivial filesystem, interrupt-driven I/O, and signals
. 从事ARM嵌入式开发多年,bootload,kernel,driver都有较深的理解。
展开
-
WinCE5读核笔记(二) 系统调用
KernelInit是MMU启用以后,一段软件结构的初始化函数。它负责system call函数表的建立,和NK.exe这个进程的构建,当然也包括NK.exe的第一次以进程的身份调度运行。就此一个类似于《黑客帝国》的虚拟环境就被建立起来了。或者说由单一线程启动的环境,转为一个多线程并发执行的环境。不过KernelInit只是完成建立这个环境,真的虚拟环境开始不是这个函数的内容。这个原创 2008-07-12 19:46:00 · 1253 阅读 · 3 评论 -
WinCE5读核笔记(一) exception vector到底在哪里?
struct ARM_HIGH是被WinCE5 kernel安放在0xFFFD,0000地址的一个结构体。这个结构体非常大,我说它大不是因为它的 member很多,而是它的每个member都是一个非常大的数组。主要是为了对齐到一些特殊的地址。我们知道在 core中0xFFFF,0000是high address exception vector的位置,而它就包含在struct AR原创 2008-07-12 19:12:00 · 1603 阅读 · 0 评论 -
揭秘Romimage生成的.nb0.bin文件(绝对原创,禁止转载)
如果你想用微软的romimage工具生成image,那么你一定要在你的exe文件中定义下面这个全局变量:ROMHDR * volatile const pTOC = (ROMHDR *)-1;Romimage会帮你填充它的地址。因此这是一个编译链接后的处理。之后,生成的image被加载到内存时,你的代码中对pTOC的参考就会是有效的,而不是这里定义的-1。请不要尝试修改-原创 2008-07-17 15:29:00 · 4147 阅读 · 8 评论 -
WinCE5读核笔记(三) 进程控制块(PCB)的初始化
原创 2008-07-14 20:19:00 · 1972 阅读 · 0 评论 -
WinCE5读核笔记(四) 重新整理启动过程
原创 2008-07-15 12:33:00 · 1110 阅读 · 0 评论 -
WinCE5读核笔记(五) KCall的实现
<!-- @page { size: 21cm 29.7cm; margin: 2cm } P { margin-bottom: 0.21cm } H1 { margin-bottom: 0.21cm } H1.western { font-family: "Arial", sans-serif; font-size: 16pt } H1.cjk { font原创 2008-07-29 14:58:00 · 1993 阅读 · 0 评论