长期从事嵌入式软件开发,包括µC/OS 、WinCE、Linux和Android等。
之前在《ActiveSync合作关系对话框的配置》一文中,曾介绍了如何屏蔽与WinCE设备同步上之后桌面系统弹出的合作关系对话框。如果开发主机安装的是WinXP系统,那还是挺管用的,避免了很多不必要的骚扰。
WinCE下默认的大软键盘如下图所示。 在实际应用中,很多按键,如最上面一行的F1~F12几乎很少使用,只有数字、字母和几个重要的功能键用的较多,所以,我们可以根据自己的需求定制软键盘。
Windows Embedded CE开发软件下载地址: http://msdn.microsoft.com/en-us/windowsembedded/ce/dd430902.aspx 很早以前浏览过这个网页,后来不小心弄丢了,结果每次下载WinCE的更新都很麻烦,今天终于又把它给Google了出来,赶紧做个记号,也方便经常来这儿的同行。
今天调试了一款SDIO的无线网卡AR6102,由于该芯片是板载的,所以写了一个应用程序,模拟无线网卡的插入拔出,然后简单修改了SDHC驱动,检测应用程序发出的模拟卡插拔的动作,并控制芯片的PWR和RST引脚。
昨天拿到一款新的液晶屏,BYD出的BM1024600-8688FTGF,7寸,分辨率是1024*600,想要在WinCE下用起来。之前整理过一个专门用于调试LCD的小工具《WinCE下的LCD调试助手》,现在终于派上用场了。
1. 首先安装CE5.0Drv_VT6656.msi,安装后的目录为C:\WINCE500\3rdparty\Vnt\Vnuwlc5。 2. 新建一个PB的工程,或者打开已有的工程,在右边的Catalog里添加如下面图示的几个组件。
不知怎么回事,微软官方提供的下载链接全部失效了,甚至都Google不到相应的页面。难道这些补丁都没有用了?之前整理过一篇《WinCE6.0 R3的安装步骤》,其中介绍的步骤是需要这些补丁的,所以把早先下载到的补丁上传上来,供需要的同学下载。
以前整理过一篇《WinCE6.0 R3的安装步骤》,后来本本装了Win7后,按照这个步骤安装R3,又验证了一遍。当然,这个步骤是个人总结出的,未必是最优的方案。 这两天在论坛里又看到有人在问R3的安装步骤,实际上R3的安装就是PB6.0补丁的安装,只是在安装的时候要注意各个补丁的安装顺序。
最近朋友的一个项目有这样的需求,让我帮忙探个路。经过两天的努力,总算是有点收获。 VB.NET是一种面向对象的计算机编程语言,可以看做是Visual Basic的升级版。它也是Visual Studio.NET的核心语言之一。
这里给大家推荐一款WinCE下有用的小软件,WinCE任务管理器。不用多介绍了,它的界面如下图所示。 WinCE下任务管理器的下载地址:http://files.cnblogs.com/we-hjb/WinCE_TaskManager.rar
前两天要在本本上安装VB.NET,结果VS2005的安装程序提示"某些组件必须安装在目录中。请检查您在该目录中是否有写权限以及该目录中是否有足够的空间。",如下图所示。 Google了一番,有人给出了解决办法,如下: 运行VS2005命令行,浏览到.NET2.0的路径, 一般在C:\WINDOWS\MICROSOFT.NET\FRAMEWORK\V2.0.50727下,然后运行ASPNET_REGIIS.EXE /I。
由于WinCE的显示驱动是本地驱动,不能像流驱动一样动态加载。所以,一般情况下不能动态修改和调试。前两天曾介绍过一种在应用程序中针对相同分辨率但不同尺寸的LCD的调试方法。这里继续介绍WinCE6.0下动态设置系统分辨率的一种方法。
传说中的Windows Embedded Compact 7终于有了新的动向。有兴趣的同志可以到这里看看去,喜欢尝鲜的同志也可以下载来体验一把,Windows Embedded Compact 7。
这两天在调试TVP5146的驱动程序,之前一直都是LF在负责,现在刚刚接手,很多细节都不清楚。不管三七二十一,先做了一个用于读写TVP5146所有内部寄存器的小工具,通过它可以实时修改其中的任意一个寄存器,而不必编译驱动或内核。
在实际项目中,经常会根据不同应用配备不同大小的LCD。所以需要针对不同的LCD,调节相应的参数。最近的一个项目,先后用了5、6、7和8寸屏,分辨率都是800*480。由于显示驱动是本地驱动,不能够动态卸载和加载。
Windows CE不会死!这两天有人站出来这么声明。估计是想制造出一点关于WinCE的新闻,好让别人知道除了Android以外,还有这么一个嵌入式操作系统。Android虽然来势汹汹,但WinCE是不会坐以待毙的。
以前用华为EM730的3G模块时,他们提供了一个拨号软件。刚开始必须用这个拨号软件才能拨号成功,而WinCE控制面板里的拨号连接不能正常工作。后来折腾到WinCE自带的拨号连接也能正常拨号了,主要是修改了注册表中的一些配置。
这两天在做一个WinCE下的3G拨号助手程序,想起来很早以前调试GPRS模块时做过一个类似的GPRS拨号连接助手,特地找出来存这里,以免以后想用时找不到。有需要的同志也可以下载来看看。 当时使用的GPRS模块是WaveCom的Q2406A,在S3C2410和PXA270上测试过。
WinCE下截屏的方法有很多种,这里介绍一种利用GAPI实现的方法。GAPI是Game API的缩写,它提供了一系列函数,可以直接对屏幕缓冲区进行读/写访问。虽然现在逐渐被DirectX Mobile取代,但自从2000年首次应用在PPC上后,几乎所有的移动设备上都能看见它。
在实际应用中,经常需要定制WinCE系统的屏幕校准界面。最常见的需求就是根据系统的语言设置校准界面。要实现这个功能,大概有两种方法,一是自己实现校准程序,完全取代WinCE系统的校准界面,第二种是修改WinCE系统自带的校准界面。
前两天介绍了WinCE启动界面的定制,在实际应用中经常还需要让用户方便修改启动LOGO。通常情况下,启动LOGO是编译到BOOT代码中的。为了实现动态修改启动LOGO,需要将LOGO保存至Flash中,BOOT启动时从特定的位置将其读取出来,并填入FrameBuffer。
TDA7415支持音频的7段频谱分析。在WinCE6.0的应用程序中,使用一个IO模拟SAclk,同时调用ADC驱动获取SAout的值并显示出来。 为了测试最终的效果,特地请ZFR帮忙做了7个纯频的MP3文件,频率分别为62Hz、157Hz、396Hz、1KHz、2.51KHz、6.34KHz和16KHz,还有一个从20Hz到20KHz变化的音频文件。
这两天在调试音频的EQ部分,对这个不太有概念,打算参考M8的来配置一把。先搞几张M8的相关界面出来,方便用的时候查看。
众所周知,WinCE下没有当前目录的概念,所有路径都以根目录"\\"为参考。获取进程所在目录的参考代码如下。 1 GetModuleFileName(NULL,gszPath,MAX_PATH);2 int len = wcslen(gszPath);3 TCH...
很早以前装过一次R3,装完以后直接导致编译不过,当时也没找到解决办法,最后只能放弃,一直没再动它。这两天ZWF在调试程序的过程中发现了一个BUG,应用程序无法正确设置文件夹的隐藏属性。起初我以为是NAND驱动或者是注册表配置的问题。
本文将以模拟器为例,简单介绍如何定制WinCE的启动界面,实现动画效果。在实际硬件平台上一般在BOOTLOADER中定制开机界面。如果BOOT从Flash加载NK到内存的时间较长,通常也会加一个进度条显示。
这两天在论坛里看到有人在问WinCE6.0下绘图较慢的问题。现象很奇怪,同一个程序在WinCE5.0下运行得很好,但到某些WinCE6.0的平台上却很慢,而在另外一些6.0的平台上似乎又没有问题。
早先跟ZL讨论过WinCE6.0下使用TCPMP播放视频的问题。他认为直接写显存应该可以让视频播放更流畅。今天我在我们的平台上实际测试了一下,分别使用GDI、Direct和DirectDraw三种方式做了Benchmark,其中Direct就是他所说的直接写显存的方式。
在实际开发过程中,经常希望能在应用程序中直接读写设备的物理空间。以前在做WinCE6.0下的MEMMgr时通过秘密加载一个内核态驱动实现了这个需求。但这种方式有一个明显的缺陷,每次读写都必须经由它才能完成。
前面介绍了如何显示资源中BMP图片的方法,这里补充一个显示32位色BMP图片文件的方法,并再次比较直接写显存与用GDI的区别。 首先将WinCE5.0的模拟器显示属性修改为480*272*32,并准备一张32位色的图片,如下图所示。
前面介绍了如何直接操作WinCE的FrameBuffer,这里将介绍一种通过写FrameBuffer显示资源中BMP图片的方法。并与使用GDI做一个比较,看看直接读写FrameBuffer是否能提高效率? 采用GDI的方法,关键代码如下: hScrDC = ...
前两天看了下一个名为TDA7541的收音机芯片,这两天又在看一个名为TDA7415的音效芯片。把这两个芯片放在一起说,有点拗口,很容易弄混。但越是容易弄混的东西,又越得放在一起说,否则会越搞不清楚谁是谁。
前一篇介绍了如何在应用程序中操作FrameBuffer,实际上得到FrameBuffer后,对于我们来说截取屏幕就是很容易的事情了,完全可以绕开GDI,并且效率要比使用GDI高。 1 BITMAPINFO bi; 2 BITMAPFILEHEADER bmfH...
以前曾利用GAPI实现应用程序直接操作显示驱动的FrameBuffer,以提高屏幕绘图和视频播放的效率。GAPI依赖于显示驱动,必须在显示驱动中添加相应的接口才能正常使用。如果平台是我们自己定制的,在WinCE5.0中,我们也可以通过另外一种方法来操作FrameBuffer。
今天Google资料时,意外找到了这本Sam先生出的WinCE6.0的参考书,英文原版的《Professional Microsoft Windows Embedded CE 6.0》,特与大家分享。
对于移动设备来说,电源管理是比较重要的。为了让设备有更长的待机和工作时间,实现一个完善的电源管理功能也是必须的。针对移动平台的操作系统WinCE本身包括了一个基本的电源管理子模块"Powe Manager",可以在Catalog中添加至系统。
串口打印在调试BOOT或者驱动时非常重要,很多问题只能借助于这种原始的方法进行跟踪和调试。在一些情况下,添加打印信息程序就能正常执行,并得到正确的结果,而去掉打印信息后却不能正常工作。一般来说,串口打印会有延时的作用,所以为了保证程序正确执行,可以适当的添加延时。
今天在编译WinCE6.0的时候,总是出错,出错信息如下: EDITBIN : fatal error LNK1104: cannot open file 'C:\WINCE600\OSDesigns\TCC89XX\TCC89XX\Wince600\MAGELLAN_ARMV4I\cesysgen\oak\target\ARMV4I\retail\mgtt_o.
a)删除目录C:\Program Files\Microsoft Platform Builder\6.00下的EtkRemov.inf文件 b)新建一个文本文档 c)重命名新建文本文档为EtkRemov.
对手持设备来说,电池的充放电曲线非常重要,一般由电池厂家提供。我们在开发的过程中会按照这个标准的充放电曲线设计程序。但设备的工作模式有很多种,为了测试在各模式下电池的放电情况,我们可以自己写个小工具记录下电池的放电状态,然后通过Excel或者Matlab绘制出其放电曲线。
以前整理过一个WinCE下的远程浏览操作工具,最近发现在目前的平台上颜色显示不正常,操作也不太流畅,往往要三击才能实现双击。为了使用方便,同时提高工作效率,周末花了些时间重新整理了一个,主要参考WinCE6.0自带的CERDISP代码,更好的支持ActiveSync,使用方法与原来的远程浏览工具一样,直接运行PC端程序CERHOST.exe,CE与主机同步上后即可实时显示CE界面,并支持远程操作CE,效果比原来好很多。
触摸屏在电子产品中用得越来越多,其技术也在不断发展。目前常见的有电阻式、电容式、红外式和表面声波式等几大类,其中电阻式最为普遍。最近在WinCE下调试了一款四线电阻式的触摸屏驱动,利用检测触摸压力的方法实现了动态调整触摸屏的灵敏度。
Windows Embedded CE 6.0是微软公司目前最新的嵌入式操作系统之一,支持四种体系结构的MCU(ARM、MIPS、SH4和x86)。在众多的嵌入式操作系统中,它以自己独特的优势脱颖而出,在整个嵌入式操作系统的市场份额中占有很大比重。
WinCE5.0中文模拟器SDK的安装过程不细说了,一路默认即可,下面主要介绍如何配置,使其能在VS2005中正常使用。 安装完成后,打开VS2005,点击菜单“工具”——“选项”——“设备工具”——“设备”,选择“Windows CE 5.0 ARMV4I Emulator”,点击“属性”按钮,如下图所示。
前两天做了个WinCE的微内核,8MB,不到2s就启动起来了。但在实际项目中,最终的映像一般都高达好几十M,将如此大坨的映像从非易失性的存储器中搬运到内存,就需要2s多,那么一个功能完善的WinCE系统,最快多久能启动起来呢。
当设备与PC同步时,ActiveSync软件经常会弹出如下图所示对话框。 一般在调试阶段,选择“否”并点击“下一步”按钮,关闭该对话框。为了省去每次点击的麻烦,可以修改注册表,使其在同步时并不弹出该对话框,设置如下, [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows CE Services]"GuestOnly"=dword:00000001 将“GuestOnly”设置为1即可。
M8又不能发送短信了。在根目录下保存了一个LOG文件,内容如下。 [2009/10/11, 1:3:4]: Seek record smsDB LastError:0x3fa-m_hDb:: 23355155-dwSeekType:: 1-wNumVals:: 0-dwValue:: 107798...
今天收获了一个道理,无论何事何地,一定要向内挖掘潜力!做WinCE的开发有几年了,今天才见识到WinCE的启动到底有到快。用SnagIT也有几年,竟然不知道它除了截屏,还可以录屏,效果相当好。
今天终于安装了R3,结果却导致编译不过! gwes_lib.lib(gwe_s.obj) : error LNK2019: unresolved external symbol "public: static void __cdecl MsgQueue::TouchProcessT...
Windows Embedded家族 Windows Embedded CE概览 WinCE6.0 R3新增组件 R3的发布让WinCE6.0如虎添翼 嵌入式系统的Silverlight 引入Silverlight后UI新的体系结构 触摸手势的支持将...