
WINCE
文章平均质量分 51
armeasy
这个作者很懒,什么都没留下…
展开
-
WINCE5.0上USB设备的自动检测
<br />最近调试USB WIFI模块,采用RALINK的芯片RT2701制作的USB WIFI模组,发现WINCE启动后,需要重插拨一次WIFI模组,系统才能识别到USB模块,换用U盘,也是一样。由于到时候需要内置WIFI模组,到时候就无法手动插拨模组了,因此必须实现USB设备的自动检测。<br />如果能够实现在启动系统后,切换USB HOST的电源,然后再上电,应该就能够识别USB设备了,另外也可以通过上下拉USB的数据线实现,但是由于硬件电路已经接死了,故无法通过硬件的机制实现。<br />网上同原创 2011-03-14 17:26:00 · 3417 阅读 · 0 评论 -
MFC中如何获得句柄?
<br />方法一 <br />在处理WM_PAINT消息时,使用这种方法。它涉及BeginPaint和EndPaint两个函数,这两个函数需要窗口句柄(作为参数传给窗口消息处理程序)和PAINTSTRUCT结构的变量(在WINUSER.H表头文件中定义)的地址为参数。Windows程序写作者通常把这一结构变量命名为ps并且在窗口消息处理程序中定义它:PAINTSTRUCT ps ; <br />在处理WM_PAINT消息时,窗口消息处理程序首先呼叫BeginPaint。BeginPaint原创 2010-06-10 15:26:00 · 2862 阅读 · 0 评论 -
G24相关AT指令
<br />测试软件:SM_ARMV4I_V2.1(WINCE串口调试助手)<br />1 常用AT指令测试<br />(1)拨打语音电话<br />ATD10086; 或AT*D10086<br />注意:这里10086为要拨打的电话,如果要拨打手机,将10086换成手机号即可。<br />这里后面的分号千万不行漏!<br />(2)接听电话<br />ATA<br />(3)拒接、挂机<br />ATH <br />(4)发送短消息<br />AT+CMGW=<目标电话号码><br />>短消息文本内容原创 2010-06-11 11:26:00 · 4912 阅读 · 0 评论 -
winCE改变字库方法(WINCE字库更新)
更新系统字库:例如要在WinCE5.0加入微软雅黑字体的支持。第一步:增加如下注册表[HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/FontPath]"FontPath"="// Windows " ; 字库文件所在目录 [HKEY_LOCAL_MACHINE/SYSTEM/GDI] "FontLinkMethods"=dword:1 [HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/FontLink/SystemLink]原创 2010-07-19 15:18:00 · 2690 阅读 · 0 评论 -
更改Eboot.nb0大小
<br />一:Eboot文件夹中,修改boot.bib:<br />; EBOOT 80038000 00019000 RAMIMAGE<br />; lqm changed.<br /> EBOOT 80038000 00040000 RAMIMAGE<br />; ROMSIZE=19000<br />; lqm changed.<br /> ROMSIZE=40000<br />二:修改loader.h中配置文件:<br />#define EBOOT_STORE_OF原创 2010-07-19 09:03:00 · 814 阅读 · 0 评论 -
快速编译修改过的PUBLIC代码
<br />在WINCE的产品开发过程中可能会遇到修改PUBLIC下代码的情况,由于PUBLIC下的代码进行build之后生成的是相应的.lib文件,要在Sysgen阶段才能生成相应的DLL文件,修改完成后通过Build and Sysgen Current Project要用掉近十分钟的时间才能编译中相应的DLL(我的机器配置不怎么样),然后再进行make生成NK或者XIP,如果是边调试边修改实在是浪费太多时间,几个月前我修改USBFN的代码就是如此,刚刚找到一种快速编译修改PUBLIC代码的方法,实践了转载 2010-07-19 09:05:00 · 744 阅读 · 0 评论 -
将regedit.exe自动生成到windows目录
在WINXP上,可以通过开始->运行,输入regedit进入注册表编辑器模式,也可以进入C盘的windows目录,双击regedit.exe打开。那么在WINCE上,是否也可以实现这种功能呢?答案是肯定的。一:在BSP包的files文件夹中,确保存放有regedit.exe文件。二:在platform.bib的最后,加入如下指令:FILES; Name Path原创 2010-07-16 14:47:00 · 1248 阅读 · 0 评论 -
系统API的调用
<br />在调用系统API时,提示找不到相应的函数,是因为没有链接相应的lib库或dll库。<br />系统API不用找到对应的lib文件,只用添加lib库即可,具体方法如下:<br />例如我们要使用SHFileOperation()函数进行文件的复制,删除或拷备,需要链接<br />Ceshell.lib,我们通过如下步骤设置即可:<br />一:点击工程右键->属性->Configuration Properties->Linker->Input-><br />Additional Dependen原创 2010-07-12 17:47:00 · 1070 阅读 · 0 评论 -
WINCE音量调节的实现
WINCE音量调节的实现刘启明 2010-5-8在WINCE平台下,用户可以通过设置控制面板的音量调节按钮,实现系统音量的调节。同时,如果使用一些媒体播放器,如mplayer,则可以对输入的音频流实行单独的调节,而不影响系统其他的音量。我们可以把整个架构理解为WINDOWS平台,用户通过设置右下角的声音按钮,实现整个系统的音量设置,而在播放如千千静听,暴风影音时,可以单独的设置软件的音量,原创 2010-05-08 22:20:00 · 3336 阅读 · 0 评论 -
Windows CE下流驱动的动态加载
我想很多WinCE的开发人员,尤其是刚入门并且做驱动开发的工程师,都曾碰到这样一个问题,要编写一个外围设备的驱动,拿最简单的GPIO驱动来说,编写驱动本身可能只花了一会儿功夫,可要把编译生成的DLL打包到先前做好的操作系统映像当中,最简单也得MakeImg一下,还要修改BIB文件、注册表文件,以让系统启动的时候就加载该驱动,所有工作都做完了,还得花几分钟下载整个操作系统到内存去运行,这也得要个好几转载 2010-05-05 21:50:00 · 807 阅读 · 1 评论 -
解决OEMIoControl中打印语句没输出的问题
<br /> 最近调试驱动,需要跟踪KernelIoControl,查MSDN发现该函数会调用OEMIoControl,在OEMIoControl中<br />加打印语句,编译common下的所有文件,再编译kernel整个文件夹的文件,make,发现没有任何打印语句<br />输出,这下就奇怪了。<br /> 仔细一瞧,发现在platform的common中,有intr,ioctl的文件夹,找到里面的source文件,发现会生成<br />oal_ioctl.lib,oal_intr.lib库原创 2010-06-25 14:39:00 · 889 阅读 · 0 评论 -
PB编译出现如下错误:BLDDEMO: There were errors building K390
<br />PB编译出现如下错误:<br />BLDDEMO: There were errors building K390<br />一:GOOGLE上查了下,建议删除工程目录下除工程文件*.pbxml外的所有文件,再重启电脑,再sysgen.<br />尝试仍然有错。<br />二:查看D:/WINCE500/build.err文件,有如下信息:<br />D:/WINCE500/build.log(1) : error SYSGEN0000: error(s) in sysgen phase<br原创 2010-06-21 10:32:00 · 2943 阅读 · 0 评论 -
WINCE 系统中的同步机制
<br />摘要<br />Windows® CE 是微软系列嵌入式平台所采用的操作系统内核。本文讨论了 WinCE 进程/线程之间的同步机制,给出了它们的典型应用场景。这些同步机制包括临界区、互斥体、信号量、事件、互锁函数和消息队列等。<br />关键字:同步,临界区,互斥体,信号量,事件,消息队列<br />Keywords: Synchronization, Critical Section, Mutex, Semaphore, Event, Message Queue<br />适用范围:本文全部内转载 2010-06-22 17:25:00 · 1852 阅读 · 0 评论 -
WINCE6.0 180天试用结束解决办法
WINCE6.0出现180天试用期过期后make时出现如下错误:Windows CE ROM Image Builder v4.0.120 Copyright (c) Microsoft CorporationBuilt: Jul 25 2006 16:37:02Error: failed PB timebomb checkmakeimg: FATAL ERROR: Command returned non-zero exit code 1 (dec).makeimg: FATA原创 2010-09-01 14:51:00 · 1798 阅读 · 0 评论 -
编译驱动找不到头文件
<br />有时候编译一些驱动时,提示一些头文件无法找到,是因为在source中并没有包含<br />该头文件的路径。具体需修改source文件,如:<br />INCLUDES=$(INCLUDES);/../../../inc;./;D:/WINCE600/PLATFORM/COMMON/SRC/SOC/S3C6410_SEC_V1/OAL/INC;D:/WINCE600/PLATFORM/COMMON/SRC/INC<br />每新增一个头文件路径,需用分号隔开。<br />典型例子如下:<br />原创 2010-08-18 17:01:00 · 2715 阅读 · 0 评论 -
PB编译错误:BLDDEMO There were errors building K390
<br />PB编译出现如下错误:<br />BLDDEMO: There were errors building K390<br />一:GOOGLE上查了下,建议删除工程目录下除工程文件*.pbxml外的所有文件,再重启电脑,再sysgen.<br />尝试仍然有错。<br />二:查看D:/WINCE500/build.err文件,有如下信息:<br />D:/WINCE500/build.log(1) : error SYSGEN0000: error(s) in sysgen phase<br原创 2010-08-18 16:47:00 · 1150 阅读 · 0 评论 -
PB编译错误:BLDDEMO There were errors building K390
<br />PB编译出现如下错误:<br />BLDDEMO: There were errors building K390<br />一:GOOGLE上查了下,建议删除工程目录下除工程文件*.pbxml外的所有文件,再重启电脑,再sysgen.<br />尝试仍然有错。<br />二:查看D:/WINCE500/build.err文件,有如下信息:<br />D:/WINCE500/build.log(1) : error SYSGEN0000: error(s) in sysgen phase<br原创 2010-08-18 16:50:00 · 1345 阅读 · 0 评论 -
快速编译修改过的PUBLIC代码
<br />在WINCE的产品开发过程中可能会遇到修改PUBLIC下代码的情况,由于PUBLIC下的代码进行build之后生成的是相应的.lib文件,要在Sysgen阶段才能生成相应的DLL文件,修改完成后通过Build and Sysgen Current Project要用掉近十分钟的时间才能编译中相应的DLL(我的机器配置不怎么样),然后再进行make生成NK或者XIP,如果是边调试边修改实在是浪费太多时间,几个月前我修改USBFN的代码就是如此,刚刚找到一种快速编译修改PUBLIC代码的方法,实践了转载 2010-08-18 17:06:00 · 663 阅读 · 0 评论 -
PB编译顺序小结
<br /> 正确的PB编译方法,能够大大节约编译时间。<br /> 在新建一个工程后,通常都要Rebuild Solution。通常会花一个小时左右的时间。如果每次修改一个驱动,都要Rebuild Solution一次,那就无法开发了。因此有必要理清PB的调用顺序,这样方能<br />在编译时事半功倍。<br /> 新建一个工程,通常都需要Rebuild Solution一次,但是如果能够将已经编好的整个工程文件夹拷到现有工程目录下,则不用Rebuild Solution了,只需编译相应原创 2010-08-18 16:51:00 · 3492 阅读 · 0 评论 -
PB编译通过,但是make时出错
<br />这时会弹出一些错误,典型的错误如下:<br />Error - cannot open input file D:/WINCE600/OSDesign/MID560T/RelDir/SMDK6410_ARMV4I_Release/postproc/nlscfg.inf<br />这时执行<br />Build -> Copy Files to Realease Directory<br />再<br />Build -> Make<br />即可。原创 2010-08-18 16:51:00 · 994 阅读 · 0 评论 -
WINCE的注册表中加载驱动的属性
<br />加载驱动的属性:<br /> SHMK<br /> S: system,即指定驱动为系统文件;<br /> H: hide, 即指定驱动为隐藏文件;<br /> M: module,即加载整个模块,而不是按需分页;<br /> K: Kernel, 即指定驱动工作在kernel模式。CE6.0必须工作在该模式。原创 2010-06-25 19:13:00 · 1198 阅读 · 0 评论 -
WINCE软音量调节(二)
<br /><br />前段时间将音频的软音量调节实现了,后来新添加播放视频的组件后,音量又不能调节了,从以下几个方面<br />排错:<br />一:更改strmctxt.cpp里面的MapGain()函数代码,没有任何效果。<br />二:详细研究I2S流的流向,预从根本上分析透I2S软音量调节的本质,由于时间问题,没来得急深究。<br />三:由于之前将调好的整个BSP包移交给了同事,在同事那试,音量调节OK,在两个BSP上做对比。<br />四:直接拷过来同事的音频驱动,重新生成NK,问题依旧。<b原创 2010-06-22 09:17:00 · 1884 阅读 · 2 评论 -
PB编译错误:Mismatched time stamp on .rel file for module nk.exe requesting kernel fixup. Valid .rel file is required for kernel fix
<br />如题,PB编译完后make时出现如下错误:<br />Mismatched time stamp on .rel file for module nk.exe requesting kernel fixup. Valid .rel file is required for kernel fixups.<br />先Copy一下,再Make即可。<br />总结:很多情况下,在PB工程编译完后没有错误,而在Make时就出现错误了,如果这个错误一时无法找到原因,不管三七二十一,先<br />Cop原创 2010-06-21 14:33:00 · 2052 阅读 · 3 评论 -
基于S3C2440A的DM9000A的调试笔记
基于S3C2440A的DM9000A的调试笔记刘启明 2010-5-3FL2440的开发板提供了DM9000A的驱动源码,在开发板上测试通过,能正常上网。将驱动移到公司的机器上,由于公司的硬件电路和FL2440上连接有一些差别,所以移起来并不是那么一帆风顺。对比飞凌开发板和公司产品的硬件电路,区别如下:一:飞凌开发板的DM9000A,中断脚即34脚连到了2440的GPF7,而公司产原创 2010-05-03 18:44:00 · 3916 阅读 · 1 评论 -
打印机驱动,应用程序关了再打开则无法打印?
<br />打印机:解决应用程序关了后再加就无法打印的问题:<br />原来将线程,中断的申请放到open函数里面了,调到init里面即可。原创 2010-06-25 19:04:00 · 992 阅读 · 0 评论 -
Windows CE LCD驱动
由于初学LCD,看原理和源代码看了好长时间,现在总结一些LCD驱动编写的主要工作就是正确设置对应预新的LCD屏的CPU寄存器的设置,和LCD对应的CPU寄存器主要如下:LCDCON1-LCDCON5,LCDSADDR1-LCDSADDR3REDLUT等各个功能要看,英文的不太好看,多看几遍就明白了。主要就是设置这些寄存器的值,这些寄存器中控制了LCD屏的大小,屏幕刷新的频率等在bsp的驱动中定转载 2009-12-09 23:12:00 · 1900 阅读 · 0 评论 -
CE6 驱动: 你不得不知道的事情
许多人担心CE6驱动的向后兼容性。在CE6上,应用程序和OAL可以比较良好的兼容,但驱动就比较难。驱动在移植到CE6上必须做一定的修改,原封不动的放到CE6上运行是不太可能的。驱动需要修改的主要原因:1、 API的差异2、 内存传递3、 Buffer异步访问4、 用户层接口处理 CE6驱动的最大差异在于内嵌指针和数据传递,这个在《Memory marshal转载 2009-12-08 16:41:00 · 2402 阅读 · 0 评论 -
S3C2450自动升级[原创作品,转载请注明出处]
S3C2450自动升级 在BSP包中,有两个bootloader文件夹,一个命名为bootloader,另一个命名为bootloader_update。Bootloader文件夹用于USB下载,调试用,bootloader_update用于生产,自动升级用。下面重点介绍bootloader_update文件夹。Bootloader_update文件夹下有四个文件夹,分别是BL原创 2010-01-26 20:12:00 · 1780 阅读 · 0 评论 -
防止程序启动两次的方法CreateMutex()
在工程文件中, WinMain函数里加上以下代码(此代码在BCB6.0下运行): HANDLE hMutex = CreateMutex(NULL, false, "Process"); if (GetLastError() == ERROR_ALREADY_EXISTS) { CloseHandle(hMut转载 2009-11-30 17:11:00 · 1274 阅读 · 0 评论 -
Windows CE下访问物理内存的一些方法
嵌入式设备与桌面PC的一个显著不同是它的应用程序中通常需要直接访问某一段物理内存,这在驱动程序中对物理内存的访问尤为重要,尤其是像ARM体系结构下,I/O端口也被映射成某一个物理内存地址。因此,与桌面版本Windows相比,Windows CE提供了相对简单的物理内存访问方式。无论是驱动程序还是应用程序都可以通过API访问某一段物理内存。转载 2009-11-30 16:51:00 · 1022 阅读 · 0 评论 -
基于S3C6410的KT0801A的驱动
很多车载GPS,车载MP3等上都装有一个FM发射装备。目前比较流行的FM发射芯片有昆天科的QN8006,昆腾微的KT0801A等。本文介绍采用KT0801A在WINCE上的驱动的移植。KT0801A的使用很简单,在正常上电复位后,只用设置发射频率,增益,以及PA即可。不过设备的前提就是I2C必须通信上。三星的S3C6410在WINCE平台上做好了I2C底层通信驱动,音频接口就是调用的该驱动原创 2010-01-26 20:02:00 · 1375 阅读 · 0 评论 -
S3C6410的JPEG解码
三星已经对JPEG解码做好了驱动,应用通过调用JPEG解码的API函数,从而调用JPEG驱动,驱动通过6410的内部硬件解码,将JPEG格式的数据解码成YUV格式的数据,然后将YUV格式转化成RGB,通过LCD显示出来。 在三星提供的BSP包中,有文件S3C6410_WinCE6.0_WM6.0_JPEG_API.pdf,里面详细介绍了JPEG的使用方法。另外,三星还做了个J原创 2009-11-25 22:26:00 · 4145 阅读 · 0 评论 -
基于S3C2450 + WINCE的背光驱动及背光亮度调节应用程序移植详解之驱动篇[原创]
背光驱动程序设计 1. 这里硬件接口使用S3C2450的GPB1,即定时器1. 定时器的输入频率 = PCLK /{prescaler value + 1} / {divider value}。 首先设置prescaler value: static void BAK_SetPrescaleAndMux( DWORD v_Prescale, DWORD v_原创 2009-11-05 23:28:00 · 3018 阅读 · 1 评论 -
驱动程序---音频 MDD 和 PDD
大多数 Windows CE 设备驱动程序都由一个平台相关驱动程序 (PDD) 和一个模型设备驱动程序 (MDD) 组成。整体式驱动程序 将所有 PDD 和 MDD 组合到一个驱动程序中。分层驱动程序 没有组合它们。 MDD 具有下列特征: •包含给定类型的所有驱动程序所共有的代码。 •调用 PDD 函数以访问硬件。转载 2009-10-24 23:30:00 · 1216 阅读 · 0 评论 -
WaitForSingleObject的用法
DWORD WaitForSingleObject( HANDLE hHandle, DWORDdwMilliseconds);参数hHandle是一个事件的句柄,第二个参数dwMilliseconds是时间间隔。如果时间是有信号状态返回WAIT_OBJECT_0,如果时间超过dwMilliseconds值但时间事件还是无信号状态则返回WAIT_TIMEOUT。hHan转载 2009-10-09 19:40:00 · 676 阅读 · 0 评论 -
DNW应用程序错误,DNW错误问题解决[绝对原创]
三星的USB驱动一直不是很稳定,有时候调2450,6410的时候,经常会把桌面系统搞得蓝屏。严重的时候,DNW都无法打开,提示DNW应用程序错误。很多人被难在这里了,只能重装系统。其实并不用重装系统,只用把C盘的DNW.ini文件删掉就OK了。 标在这里是为了让更多玩三星处理器的朋友,不要被DNW这破东西给搞得重装系统就不划算了。原创 2009-12-13 21:19:00 · 2311 阅读 · 4 评论 -
基于S3C6410&WINCE6.0的LCD驱动详解
花了几天时间把6410的点屏代码研究了一下,这里分享出来供大家参考。 先大致说下目前LCD的类型以及渠道。针对手持设备,如手机,PMP,MID,GPS,UMPC,相机等,大多采用的是TFT,LTPS(低温多晶硅屏),OLED等。其中以TFT屏用的最广泛,LTPS屏以其色彩鲜艳,视角广而闻名,目前也逐渐多起来。OLED显示效果是以上三者中最好的,能够达到全视角,而且在阳光照原创 2009-12-10 23:09:00 · 5845 阅读 · 2 评论 -
FL2440下触摸屏校准问题
没想到飞凌的开发板,默认出货的时候是没有校屏的。包括WINCE和LINUX。这里分享下校屏的经验。 一:WINCE之校屏WINCE的校屏参数是保存在注册表中的。打开BSP包中的platform.reg,找到如下代码:IF BSP_NOTOUCH ![HKEY_LOCAL_MACHINE/HARDWARE/DEVICEMAP/TOUCH] "MaxCalError"=dwor原创 2010-04-05 11:11:00 · 2255 阅读 · 0 评论 -
将开发板修改为单独的wince系统
该文件适合飞凌双系统的2440开发板,以下描述是将双系统修改为单系统的wince1、boot中nand.c文件中static struct Partition NandPart[] = { {0, 0x00100000, "boot"}, //1M {0x00100000, 0x00040000, "bootParam"}, //256K two blocks {0x00140000, 0原创 2010-04-05 21:36:00 · 792 阅读 · 0 评论 -
beyond compare添加右键快捷方式
如果安装beyond compare后,右键不能出现比较选项,可以通过设置 beyond compare完成。选择 工具->选项,在资源管理器整合下面,有一个在资源管理器关联菜单中显示beyond compare的选项,选中该选项即可。原创 2010-04-05 21:40:00 · 30534 阅读 · 7 评论