WinCE
文章平均质量分 59
winceARM
这个作者很懒,什么都没留下…
展开
-
DisableThreadLibraryCalls 的作用
<br />第一篇文章<br />看Wince驱动时,看到Init函数时不时有这个函数,不知道啥意思,<br />BOOL DisableThreadLibraryCalls(<br /> HMODULE hLibModule<br />); <br />This function disables the DLL_THREAD_ATTACH and DLL_THREAD_DETACH notifications for the DLL specified by the hLibModule parame原创 2010-07-01 11:55:00 · 7747 阅读 · 0 评论 -
Wince电源管理(五) ---- Windows CE设备驱动开发之电源管理
Windows CE设备驱动开发之电源管理 第五部分4.7.1、活动定时器(Activity Timers)在初始化时,电源管理器从注册表中读取活动定时器名称列表。对于每个定时器,电源管理器都会检查其超时时间(以秒为单位)以及可选的唤醒源列表。然后创建下列事件:l 定时器重置事件l 活动状态手动重置事件l 手动重置事件如果超时与不产生重置事件的定时器到期关联,电源管理器将重置活动事件并设置非活动事件。如果重置事件产生,电源管理器重置非活动事件并设置活动事件。下转载 2010-09-14 16:03:00 · 1284 阅读 · 0 评论 -
单个驱动的DEBUGMSG
<br />在Release模式下DEBUGMSG(..)函数不会打印信息出来,为了单独调试某个驱动,增加打印,可以做如下修改<br /><br />在驱动文件的头部加上:<br />#undef DEBUGMSG<br />#define DEBUGMSG(x,s) NKDbgPrintfW s<br /><br /><br />或<br /><br />#undef DEBUGMSG<br />#define DEBUGMSG(x,s) RETAILMSG(1,s)原创 2010-09-19 12:08:00 · 802 阅读 · 0 评论 -
eboot汇编Startup.s中MMU设置流程详细分析(转)
<br />CE5.0 - eboot汇编Startup.s中MMU设置流程详细分析<br /><br />以下为SMDK开发板startup.s部分启动代码.<br />;-------------------------------------------------------------------------------<br /><br />MemoryMap EQU 0x2a4<br />BANK_SIZE EQU 0x00100000 ; 1MB per bank in MemoryMap转载 2010-12-16 14:28:00 · 1278 阅读 · 0 评论 -
(转)Wince读核1-启动流程1
<br />写在前面<br />将近一年前,做过一段时间windows mobile,当时忙于项目,精力放在bsp的调试上,对widnows ce系统了解不深刻,后来忙别的项目就把ce放下了。时隔将近一年,这几天难得有点清闲,看了一点ce的源代码,发现自己记性大不如前,正好这个blog很久没有更新了,因此写点东西吧。<br />以下内容基于ce5.0,arm体系结构。<br />参考<br />1. ce5.0源代码和帮助文档<br />2. 《ARM Architecture Reference Manu转载 2010-12-16 14:33:00 · 745 阅读 · 0 评论 -
(转)Wince读核1-启动流程2
<br />3. 从KernelStart开始2<br />KernelStart()函数代码如下。<br /> LEAF_ENTRY KernelStart<br /> ;我们现在跑在物理地址下;<br /> ;如前所述,r0在之前已经保存了MemoryMap的物理地址。<br /> mov r11, r0 ; (r11) = &MemoryMap (save pointer)<br /> ;转载 2010-12-16 14:34:00 · 918 阅读 · 1 评论 -
(转)Wince读核1-启动流程3
<br /> ; Zero out page tables & kernel data page<br /> ;初始化上面分配的物理内存KDataArea<br /> <br /> mov r0, #0 ; (r0-r3) = 0's to store<br /> mov r1, #0<br /> mov r2, #0<br />转载 2010-12-16 14:35:00 · 688 阅读 · 0 评论 -
(转)Wince读核1-启动流程4
;下面这一段有点特殊。ce5.0最多支持512M的物理RAM,也就是说虚拟地址空间0x80000000-0x9fffffff用来映射最多512M的物理RAM; ;所以r2和0x1FF00000求与后满足上述要求(1M对齐); ;而被映射的物理地址可以是任何4g空间内的地址,所以r3和0xFFF00000求与后满足要求(1M对齐)。 ;注意,这里和ce支持4g虚拟内存是不矛盾的。 ldr r5, =0x1FF00000转载 2010-12-16 14:37:00 · 701 阅读 · 0 评论 -
(转)Wince读核1-启动流程5
<br />4. PSL和API调用 <br />接下来这部分资料有些翻译自网络上的文章,大部分是我自己的理解。我们知道ce的api是由几个server进程实现的,包括filesys.exe,gwes.exe,device.exe和services.exe,当然,还有内核nk.exe。当一个进程调用某个api时,调用者的线程通常会"跳进" server进程中执行。这是怎么做到的呢?<br />大部分ce的api是由coredll.dll导出的。所有的ce应用程序都会链接到这个dll。当转载 2010-12-16 14:37:00 · 883 阅读 · 0 评论 -
(转)关于romimage
<br />1. romimage是什么?<br />romimage是wince编译过程中最后一步。在此之前,ce的编译系统已经调用自己的arm编译器,对每个模块完成了编译工作,并生成了.exe,.dll等文件;同时针对当前的环境设置,生成了.bib,.reg等文件。另外还有一些别的文件。最后编译系统将所有这些需要“打包”的文件,拷贝到_WINCEROOT/release目录下。而romimage的作用,就是根据ce.bib文件,来生成最后的nk.bin和nk.nb0。<br />2. romimage的转载 2010-12-16 14:39:00 · 1123 阅读 · 0 评论 -
Windows CE电源管理的实现(转)
电源管理的目的是节能,基本的节能方法是使系统适时的进出休眠状态.比如用户按下On/Off按钮,或者监视用户活动的定时器超时,或者应用呼叫api都可以使得系统休眠,用户再次按下On/Off或者其他唤醒中断将使得系统退出休眠.从而可见,电源管理模块和用户活动情况密不可分,电源管理是用户活动所驱动的. WinCE中处理用户与系统交互的部分是GWES,所以早期电源管理工作是由GWES来实现.( GWES:Graphics,Windows and Events Subsystem.图形,窗口和事件子系统.主要负责图形转载 2010-09-14 15:09:00 · 932 阅读 · 0 评论 -
Wince电源管理(三) ---- Windows CE设备驱动开发之电源管理
Windows CE设备驱动开发之电源管理 第三部分 4.7.3、电源管理器接口电源管理器有三种不同的使用者。l 电源管理器能识别的设备的驱动程序。l 可能需要更改系统电源状态或设备性能的应用程序。l 需要电源事件通知的应用程序。电源管理器使用不同的编程接口与这些使用者进行通讯。4.7.3.1 设备驱动接口电源管理器使用两种不同的机制与支持电源管理的设备驱动进行通讯。电源管理器向下调用设备驱动确定其设备性能,并更新其设备电源状态。设备转载 2010-09-14 15:59:00 · 908 阅读 · 0 评论 -
Wince电源管理(一) ---- Windows CE设备驱动开发之电源管理
原文位置Windows CE 5.0 Documentation中Developing a Device Driver->Power Management目录下 Windows CE设备驱动开发之电源管理4.7电源管理电源管理模块管理设备电源,从而全面改进操作系统的电源使用效率;它所有设备的电源使用,同时能与不支持电源管理的应用程序及驱动程序共存。使用电源管理可以有效的减少目标设备的电源消耗,同时,能在运行、空闲、复位及挂起电源状态时维持并保护RAM中的文件系统。电源管理具有以下特性:使设备具有自行电源管理转载 2010-09-14 15:37:00 · 727 阅读 · 0 评论 -
Wince音频驱动(1)
<br />Wince有3种音频模式:MDD/PDD、WaveDev2和UAM。<br />1,MDD/PDD:Wince驱动常用的模型,分为两层,平台无关层MDD及平台相关层PDD;两者通过接口静态链接起来才能形成完整的驱动,接口定义(public/common/oak/inc/waveddsi.h)。<br /> <br />2,WaveDev2<br />WaveDev2没有分层,所有文件在同一文件夹下,和硬件相关的部分hwctxt.h和hwctxt.cpp<br />3, UAM<br />用的不多原创 2010-07-02 13:56:00 · 1821 阅读 · 0 评论 -
Wince音频驱动的好Blog
<br />查找Wince驱动,找到一个比较详细的Blog,贴上来,好好学习一下。<br />http://blogs.msdn.com/b/medmedia/<br />原创 2010-07-02 14:07:00 · 834 阅读 · 0 评论 -
Sources文件详解
<br />Wince源文件通常包括Sources文件,其中许多配置不是很清楚,现在记一下:<br />TARGETNAME:最后编译完后生成的目标文件的名字,不包括扩展名。TARGETTYPE:生成的文件的类型。具体值如下:<br /> LIBRARY,一个.lib文件<br /> DYNLINK,一个.dll文件<br /> PROGRAM,一个.exe文件<br />RELEASETYPE:该宏设置两个环境变量RELEASEDIR和RELEASELIBDIR,原创 2010-07-03 12:14:00 · 1790 阅读 · 0 评论 -
wince6.0 下如何编写能使直接访问硬件的软件
<br />看到一篇帖子,写的非常好,给个链接,学习一下<br />http://topic.csdn.net/u/20090617/15/2bf5d4a4-35aa-4641-8089-b7869c827f98.html原创 2010-07-02 17:31:00 · 691 阅读 · 0 评论 -
wince 注册表的动态导入
<br />这两天用we-hjb牛人的寄存器读写工具调试驱动(http://www.cnblogs.com/we-hjb/archive/2009/03/08/1406257.html),很方便,但是我需要自己动态的导入注册表,自己又查了资料,方法如下:<br />要把自己的注册表动态导入,其实就两步骤:<br />1, 创建注册表(RegCreateKeyEx());<br />2, 写注册表(RegSetValueEx());<br />在没导入之前,在HKEY_LOCAL_MACHINE是看不到自己的原创 2010-07-30 12:03:00 · 1807 阅读 · 0 评论 -
Windows CE 6.0 启动过程分析(转)
<br />找不到原帖地址,贴个转帖的,如果作者本人看到,请告知。<br />http://blog.csdn.net/vcleaner/archive/2008/09/08/2896701.aspx<br /> <br />在Windows CE 6.0中,内核(Kenerl)和OEM代码被分成oal.exe、kernel.dll和kitl.dll三个部分,其中启动代码(startup)和 OAL层的实现部分不再与内核链接生成NK.exe,取而代之的是启动代码(startup)和硬件相关且独立于内核的OA转载 2010-08-05 15:13:00 · 953 阅读 · 0 评论 -
Wince电源管理(二) ---- Windows CE设备驱动开发之电源管理
Windows CE设备驱动开发之电源管理 第二部分4.7.2、电源状态电源管理器期望所有被管理的设备能支持一个或多个设备电源状态。设备电源状态的数量是有限的。设备必须通知电源管理器其功耗特性。设备常以功耗换取性能。电源管理器在OEM定义的系统电源状态下管理设备电源状态。系统电源状态在注册表中定义,可以用任意数字定义。系统电源状态会给设备电源状态设置一个上限。某些应用程序可能需要特定设备保持运行在指定的设备功率等级上。例如:当一个音频播放程序在播放音乐时,可能需要网卡及音频解码器保持运行在高功率等转载 2010-09-14 15:41:00 · 757 阅读 · 0 评论 -
Wince电源管理(四) ---- Windows CE设备驱动开发之电源管理
Windows CE设备驱动开发之电源管理 第四部分4.7.4、设备电源管理指南电源管理器对设备功耗、性能及响应时间并没有进行严格的限制。只是在用户角度而言D0及D1状态下是可操作的,而更高编号的电源状态比D0及D1消耗更少的电源。本指南的目的是为了使OEM厂商能更容易的定义有意义的系统电源状态,而不用了解特定设备的详细功耗要求。4.7.4.1 设备电源自管理(Device Power Self-Management)一些设备自行管理其电源的过程可能比较复杂。当设备处于休止状态时,转载 2010-09-14 16:02:00 · 989 阅读 · 0 评论 -
wince下USB设备驱动程序分析
<br />转自:文斌程序网 作者:文斌<br />随着USB设备的不断增加,我们这些开发人员也就多了对USB设备进行驱动程序开发的工作。但是对于很多初学者来说,存在以下三个困难:<br /> 一是对WinCE的驱动程序结构了解得太少,没办法得心应手的专注于驱动程序的开发工作;<br /> 二是对WinCE自带的USB驱动程序的例子没有弄懂,看到一转载 2010-09-14 15:06:00 · 1182 阅读 · 0 评论 -
(转)Wince读核1-启动流程6
<br />5. 中断向量表初始化<br />接下来的代码进行中断向量表初始化。首先需要介绍一下arm中断的知识。对于arm9,它的中断向量可以放在低地址0x00000000,或者高地址0xffff0000。ce只能将中断向量表放在高地址。这是由ce的整个编译系统决定的。网上有一篇文章"Eboot编译编译器决定中断向量及其实现单一性的原因"(写这篇文章的哥们肯定语文没学好,我也是:(),介绍的挺详细,另外我觉得有两点需要加以补充。一个是pe文件不能拷贝0x400后的部分直接执行,不仅仅是偏移量的问题,在后面转载 2010-12-16 14:38:00 · 726 阅读 · 0 评论