
Windows CE
文章平均质量分 76
singlerace
这个作者很懒,什么都没留下…
展开
-
如何把Windows CE安装文件下载到本地进行安装
今天不讲外挂,说点儿别的。前几天微软为了Windows CE 6.0的发布大张旗鼓,搞了个Virtual Launch Event。本来想着要去凑凑热闹的,结果忙着写外挂文章,给忘了。今天想起来要去下载CE6的Evaluation版研究研究,为未来的产品升级做准备。没想到这好几个G的东西,居然只能从网络安装,我这几十K的破网不知道要装到什么时候了。还好进行一番研究之后,我发现还是可以把所有安装文件原创 2006-11-08 17:59:00 · 13844 阅读 · 3 评论 -
如何为WinCE的定制键盘写驱动
常看到有人问怎么给定制键盘制作驱动程序,在这里谈谈我的经验。完整的键盘驱动怎么写不是这篇文章的目的,这些MSDN上有很详细的介绍。这里谈的是,举个例子,标准的美国英语键盘的数字键SHIFT+2输出符号@,你想改成欧元符号该怎么做?或者你想做一个法语键盘,又该怎么做?又或者你想基于同样的键盘硬件设计,软件上同时支持英语、法语、俄语layout,又该怎么弄?在WinCE上,从原创 2009-02-12 20:41:00 · 3943 阅读 · 2 评论 -
AUTORUN与数字签名(二)
上一篇文章说到AUTORUN很好用,麻烦是别人可能利用它做坏事。别人可能利用它来运行他的危险程序,偷取资料甚至破坏设备,甚至你自己的AUTORUN也有可能被病毒感染。一个对付的做法是把AUTORUN放到一个不容易猜到的目录下,起个古怪的名字。不能从根本解决问题,但比没有强。根本的解决办法是给AUTORUN加数字签名。Windows Mobile设备好像内置就支持程序的数字签名。Window原创 2009-02-05 19:49:00 · 2931 阅读 · 2 评论 -
AUTORUN与数字签名(一)
简单问题,你负责的系统出现了莫名其妙的异常,怎么办?换句话说,你有什么方法搞清楚问题的所在,进而解决问题?对于这一类问题,我最关心的是系统内部的运行时状态,如果能搞清楚系统当前的问题状态,对找出问题的根源是很有帮助的。获取系统运行时状态肯定要利用工具,在windows桌面系统上,简单的如windows自带的Task Manager,VC的Spy++,高级的如Sysinternals原创 2009-01-30 21:27:00 · 2515 阅读 · 0 评论 -
Windows CE系统级日志设计
我的经验,可靠的产品不是设计出来的,而是通过持续的解决BUG逐步达到的,当然我不是说设计不重要,我是想强调在产品中提供一些能够帮助诊断问题的设施是非常有必要的。在这方面,最常见的手段显然就是系统日志了。嵌入式系统由定制的硬件平台、定制的驱动程序、定制的系统组件,以及定制的应用程序构成。这么多定制的组件凑在一起,要在一个比较短的时间内把他们凑在一起,配合良好顺利运行不容易。他们中的任何部分都原创 2008-10-09 13:29:00 · 4131 阅读 · 4 评论 -
Interlocked API的原子性如何保证
前面的文章提到如何利用Interlocked API设计系统级日志。Interlocked API可以对在多线程之间共享的内存变量提供原子性访问。有些CPU在硬件层面上直接支持这些操作,如80386以后的X86架构CPU,xchg、xadd、cmpxchg等指令在进行内存访问时锁住总线。举例来说, InterlockedExchangeAdd在X86上的实现如下:LONG WINAPI Inte原创 2008-10-09 16:38:00 · 3585 阅读 · 1 评论 -
案例:如何解决难以重现的BUG
我时不时会去Mark Russinovich的博客逛逛,学些诊断软件问题的技巧。Mark的博客有一个特点,他有很多案例,专门分析在日常使用电脑时碰上的各种问题,里面有很多分析、解决问题的技巧是颇值得学习的。我在想,从事软件开发这么多年来,自己也积累了大量的经验,如果能把这些经验做些整理写出来,对自己是一份很好的总结,对别人应该也有借鉴作用。因此我也打算写一些实际工作中遇到的比较典型的案例。原创 2008-07-03 17:01:00 · 8235 阅读 · 5 评论 -
Windows CE 6.0 for VMWare虚拟机和BSP下载
做出来有一段时间了,本来找个时间好好整理一下再放上来,一直抽不出空。前两天有个意大利哥们儿写信来问有没有CE 6 for VMWare的网卡驱动,他折腾了半天没搞定。这让我觉得这东西或许还是有人需要的,因此先放上来再说了。CE 6.0和以前的版本最大的区别在于虚拟内存管理,其他方面的调整大多由此而起。我本来以为升级的CE 6.0后以前的驱动程序都不能用了,这对我做CE 6.0 for VMWare原创 2008-06-02 20:56:00 · 20552 阅读 · 10 评论 -
如何诊断Windows CE的应用程序崩溃
无论你是一个单纯的电脑用户还是一名高级软件工程师,都一定对程序崩溃不陌生。做为一名Windows CE应用程序开发者,你也一定遇到过下图这种场景:这个对话框告诉你,有一个叫installer.exe的程序在地址00019320处崩溃了。如果这个程序归你负责,那么你的问题就来了:怎么找出这个BUG?这篇文章我想谈谈我在这方面的一些经验。Windows CE的崩溃界面给出的信息十分的少,其中最有用的无原创 2008-07-15 18:06:00 · 10204 阅读 · 18 评论 -
OpenThread种种
我在Windows NT系统(包括2K和XP)和Windows CE系统各写有一个工具,专门用来研究系统的运行时状态,比如进程、线程的各种信息,哪些DLL被哪些进程加载了,等等。如果某天突然想到一些好玩的东西,我也会把它加到工具里,比如,下图的这个,在系统登陆、锁定界面上运行了一个计算器。一般情况下,我比较喜欢做的事是观察线程的Call Stack。这就要用到一个关键的API:OpenThread原创 2007-08-28 16:20:00 · 9182 阅读 · 4 评论 -
VMCEPC BSP的一些更新说明
有人嘲笑说我又把博客写成了年记。真是惭愧,离上一次更新已经大半年过去了,2007年可能是我有史以来最忙碌的一年,项目的压力和生活的琐事让我根本没有心思来关心博客。现在总算可以说松了一口气,我想,我的博客也该更新了。有不少朋友写信给我询问VMWare BSP的一些问题,这里做一些回答:1,我提供的BSP是根据哪个BSP改的?是根据CEPC改的。要不然怎么叫VMCEPC。2,MS-DOS.vmdk这些原创 2007-08-21 16:46:00 · 3113 阅读 · 2 评论 -
Windows CE 5.0 for VMWare虚拟机和BSP下载
前两天有人写信跟我要Windows CE for VMWare。通常我个人写的非商业用途的程序和源代码都愿意共享出来给大家用,只是一直以来困扰我的问题是找不到合适的免费空间host这些东西,现在我发现google pages可以干这个使。这次放了两个东西:CE 5.0的VMWare虚拟机,和CE 5.0 for VMWare的BSP。想玩的人可以在这里下载: Windows CE 5原创 2007-01-10 15:45:00 · 14715 阅读 · 9 评论 -
嵌入式系统开发经验谈:Windows CE开发都做些什么
我在博客的个人简介里说过我目前在从事基于Windows CE的BSP开发,这方面的文章到现在连一篇都没写过,似乎有些说不过去。老板肯定在犯嘀咕了,这小子不干正事儿,整天玩什么外啊挂啊的。接下来,我得整 两篇。以前我都想把文章写的跟论文似的,枯吧干燥,累人累己,以后我就胡乱侃了,一家之言,对不对的凑合着看吧。 Windows CE的文章前面写过几篇,看的人不多,可能是因为搞嵌入式系统相比桌面软件和W原创 2007-01-09 16:52:00 · 7275 阅读 · 4 评论 -
CE6会比CE5快吗?
昨天去研华听了一场微软嵌入式多媒体讲座。其实我对讲座本身倒不太在意,我是冲着CE6的评估版光盘去,拿到光盘后不久就撤了,呵呵。虽然可以从网上直接 下载,但是放在硬盘里还是很占地方的,自己刻光盘也嫌麻烦。到的时候晚了几分钟,好在讲座也没正式开始,微软的哥们正在向不辞劳苦跋山涉水提前赶到的同志 们喷CE6和CE5的区别。 说到区别,CE6引入的新的虚拟内存模型是不能不提的。有人就问了一个问题,说CE5原创 2006-12-15 20:38:00 · 5186 阅读 · 2 评论 -
如何让ActiveSync直接支持Ethernet连接
用过ActiveSync 连接Windows CE设备和PC的同学都知道,相对于Serial、USB等连接方式,Ethernet连接是个后娘养的孩子-微软出于某种考虑,让Ethernet连接方式在能够使用之前必须先用Seiral或者USB在设备和主机之间建立partnership。我个人一直觉得这不是一个合理的设计。比如就我们的设备而言,虽然正式的产品不支持ActiveSync,但是由于有些第三方原创 2006-11-24 17:35:00 · 4238 阅读 · 0 评论 -
Process Explorer for WinCE:揭示Windows CE系统运行时状态的强力工具
这篇要介绍的是我自己写的一个用于监控Windows CE运行时系统状态的工具-Windows CE Remote Process Explorer。2004年我开始从事Windows CE平台的开发,之前我对Windows CE几乎一无所知,为了了解Windows CE的系统机制,我利用业余时间写了这个工具。到目前为止,它已经具有了相当多的功能,也帮我解决了很多工作上的问题。简介如果你想监原创 2006-11-22 18:02:00 · 17275 阅读 · 38 评论 -
如何制作支持VMWare的Windows CE BSP
不知道有没有人试过在VMWare中跑过Windows CE。可能有人会问:在VMWare中跑Windows CE有什么意义?Windows CE不是有基于Vritual PC的emulator吗?要做干吗不做一个基于Microsoft自己的Virtual PC的?简单的答案是,VMWare支持一些Virtual PC(包括Windows CE emulator)不支持的硬件。对我来说,最吸原创 2006-11-19 22:01:00 · 13911 阅读 · 9 评论 -
Hacking Windows CE: 如何从线程ID获取线程名称
在一个线程出现异常行为时,比如说CPU占用率过高,抛出异常等,你一定想知道这个线程是由哪个模块创建的。因此无论在哪个操作系统上,获取线程名称是诊断线程相关问题的重要一步。从线程ID获取线程名称通常的方法是,先获取该线程的入口地址,然后枚举进程内所有已加载模块,最后判断线程入口地址落在哪个加载模块范围内。枚举进程内已加载模块可用Win32标准的CreateToolhelp32Snapshot/原创 2006-11-11 21:26:00 · 6471 阅读 · 3 评论 -
如何诊断Windows CE的应用程序崩溃(续)
在《如何诊断Windows CE的应用程序崩溃》一文中我介绍了如何利用Remote Process Explorer的Crack Address功能定位程序的崩溃地址。但是看起来还是有很多人不知道怎么使用这个工具,这篇文章详细介绍一下。首先要确保你的PC上有dbghelp.dll。微软没有公开PDB文件格式,不过有解析PDB文件的API,在dbghelp.dll中提供,最新版本可在微软网站上下原创 2009-02-26 20:46:00 · 5825 阅读 · 3 评论