摘要: 一般在ARM架构的CPU上,物理地址都是统一编址的,寻址空间为4GB(32Bit CPU)。也就是说,针对一个ARM的处理器,它可以访问的物理空间是4GB。在WinCE中,ARM中的4GB物理地址空间将被映射为512MB的虚拟内存空间。OEMAddressTable就是一个4GB物理地址空间到WinCE Kernel中的512MB虚拟地址空间的映射表。   在BSP中,会定义OEMAddressTable来描述系统中可访问的物理空间及对应的虚拟地址空间,还有大小。这个表会在WinCE系统开始启动的时候传给MMU,具体到BSP中应该是在OAL中的startup.s中,OEMAddressTabl 阅读全文
posted @ 2009-01-08 15:49 gmh 阅读(256) 评论(0) 推荐(0) 编辑
摘要: 首先是wince驱动的分类问题。按照书上讲的说CE下驱动分成单体驱动和分层驱动,而看到另一种说法是本机驱动和流式驱动。经过microsun大哥的指点,把这两种分类法分开了。在这里引用一下: “单体与分层只是从代码的形式上做的分类.分层驱动代码上分为PDD与MDD,一般的微软已经实现了MDD,可能也实现了PDD,我们只需要对PDD做些修改就能使用,比如音频的驱动,显示的驱动。单层驱动是把PDD与MDD写在一起,没有做严格的区分,通常这种驱动比较简单,比如:ATADISK。 至于本地驱动和流式驱动是从驱动与系统其它模块(调用者)的接口形式上做的分类.其实,本地驱动这个名称不大恰当,可能叫专用驱动或 阅读全文
posted @ 2009-01-08 15:42 gmh 阅读(2922) 评论(0) 推荐(2) 编辑
摘要: WinCE 流驱动一步一步来(理论基础)在WinCE.net中,最简单的一个驱动程序莫过于一个内置(Built-in)设备的流接口驱动。对于一个不支持热拔插的设备,最快捷的方法就是为其实现一个内置的流接口的驱动。对于这样一类驱动程序,我们只需要按一种特定的规则实现一个动态库,其中实现对所有的硬件功能的调用,再将这个动态库加入系统中,然后设置相关的注册表项,使得在系统启动时设备管理器能识别并且加载这个设备即可。1.实现动态链接库此动态链接库与应用程序层所用的库并不很大差别,源文件可以是C、C++、甚至汇编,只是它要实现以下函数。u DllEntry(HINSTANCE DllInstance, 阅读全文
posted @ 2009-01-08 15:37 gmh 阅读(1072) 评论(0) 推荐(0) 编辑