RSS
热门关键字:  ramebu er  ecgui  WINDOWS  djgpp  QT E开发记录
当前位置 :| 主页>WinCE&QT/E>

WinCE驱动开发问题精华集锦

来源: 作者: 时间:2008-09-16 Tag:   开发   驱动   wince   点击:


ce自制平台中如何添加自己的驱动?cec文件和reg,bib文件有何区别?看混了,不知道如何才能让驱动注册到平台中。另外,regbib是我在编写驱动必须要自己写的么 
CE
的驱动分为本机驱动和流驱动,本机驱动你可以修改源码(在%_WINCEROOT%\PUBLIC\COMMON\OAK\DRIVERS),然后 build驱动源码,之后用PB编译内核。流驱动是以DLL的形式被系统程序加载的。加载流驱动要在注册表中添加信息,这和cec文件没关。如果你想把此驱动DLL和注册信息作为一个整体给别人使用,那么就要做一个cec文件,PB能够读取cec文件内容并加载到内核工程中。cec文件相当于安装程序。 
 
 
我安装的是evc4.0,我开发的系统要显示中文比如姓名什么的。在编辑的时候是中文显示,但是到了输出时,显示的都是乱码。不知道应该怎么去解决 
EVC
的模拟器不支持中文。所以显示出来的都是乱码。1、你可以只显示英文,调试结束后在改界面为中文。2、安装PBPB的模拟器支持中文。  
 
 CStatic
及其控件的文字无法垂直居中显示,虽然在evc的资源编辑器中可设置,但是一旦运行,却无法垂直居中显示 
这种情况正常,而且除此之外还不能右对齐。 
 
 
获取设备ID的种类有哪些 
除了手机模块外,还有CF卡有序列号、硬盘有ID号、网卡有MAC号等。这几种方法数获取手机模块ID最简单。 

  
     
在应用程序中,如何向修改本机的ip 地址等网络参数,并使之立即生效? 
网络设置保存在注册表中,位置[HKEY_LOCAL_MACHINE\Comm\网卡名称\Parms\TcpIp],例如常见的CS8900网卡设置: 
[HKEY_LOCAL_MACHINE\Comm\CS89001\Parms\TcpIp] 
   "EnableDHCP"=dword:0 
   "DefaultGateway"="192.168.0.1" 
   "DNS"="111.111.111.111" 
   "UseZeroBroadcast"=dword:0 
   "IpAddress"="192.168.0.2" 
   "Subnetmask"="255.255.255.0" 
设置之后要生效有两种办法:一种热启动,调用KernelIoControl(IOCTL_HAL_REBOOT, NULL, 0, NULL, 0,  NULL),热启动时间很短暂;另外一种调用DevieceIoControl API,传递IOCTL IOCTL_NDIS_REBIND_ADAPTER 
 
 
如何向控制面板中那样,修改系统声音的音量 
调用API waveOutSetVolume(HWAVEOUT, dwVolume ),一般参数10。在[HKEY_CURRENT_USER\ControlPanel\Volume]下是系统声音的注册表设置。 
 
 
在应用程序中如何实现jpggif图片的显示 
有几种办法: 
1
、在MSDN中搜索标题为“Windows CE .NET Technical Frequently Asked Questions”的文档,其中有一个问题“How can I display JPEG, GIF, and other graphics files?”,下面就是答案。 
2
、如果安装了Windows CE 5.0,一个例子源码位于WINCE500\PUBLIC\GDIEX\SDK\SAMPLES\SIMPLE 
3
、用IWebBrowser组件实现。 

  
     
在应用程序中如何实现系统待机 
void GwesPowerOffSystem(void); 

  
     
WINCE下如何实现键盘钩子 
我写了一个简单的例子,把其中主要部分截取出来放到了我的FTP里。用户名以及密码均为winceuser,地址是ftp://211.95.73.26/fllsoft@sina.com/SourceCode/用钩子禁止系统键.rar 

  
     
WINCE中如何得到网卡MAC地址 
事实证明,获得物理网卡的MAC地址并没有被统一成一个API或者IOCTL,如果网卡驱动程序没有提供接口的话只能直接访问寄存器获得。读者可以参考目录WINCE500\PUBLIC\COMMON\OAK\DRIVERS\NETCARD里的一些驱动源码。 
 
 Windows XP Embedded 
Windows CE有何区别 
简单地说Windows XP Embedded采用Windows XP内核,只能运行在x86处理器上,优点是能够运行PC上现有的应用软件,缺点是授权费太高,标价¥900元;Windows CE采用Windows CE内核,能够运行在多种处理器上,如x86ARMSHXMIPS等,优点是授权费低,最低Core版标价¥30元。缺点是需要单独开发应用软件、定制内核,甚至开发BSPDriver 

  
     wince
下只是把调制解调器的驱动挂接在了com1,如何将器驱动挂接在com2上? 
1
、在HLM\drivers\buildin\com2\unimodem下复制和com1一样的数据 2、在HLM\ExtModems\ HayesCompat下改写PortCOM2:,再改写FriendlyName"Hayes Compatible  COM2:" 
 
 
如何定制自己的外壳 
1
、先开发一个外壳软件,假设名称为MyShell.exe 
2
、删除注册表[HKEY_LOCAL_MACHINE\init]下如下一行: 
   "Launch50"="explorer.exe" 
3
、在注册表[HKEY_LOCAL_MACHINE\init]下添加如下一行: 
   "Launch50"
"MyShell.exe" 
上述的“LaunchXX”中的XX为序列数,内核依据这个序列数按由小到大的顺序来分别执行所有子键列出的应用程序,具体数值应该为多少请参考帮助文档的说明。 
如果原来的内核中添加了标准外壳(standard shell)组件,或者添加了其它组件而这些组件需要依赖标准外壳,那么在PB中是无法删除标准外壳组件的,解决办法一是保留explorer.exe在内核中,二是删除依赖标准外壳的组件。 

  
     
我原来的工程是x86版本的,编译选项只有x86,我如何能够编译ARM版本的 
两种办法: 
1
、用EVC新建一个工程的时候,建议复选“CPUs”列表,这样发生了这种事情也能够轻易通过选择“WCE Configuration”工具栏中的CPU列表来编译不同CPU版本的软件 
2
、如果打开工程后CPU列表中只有x86,而此时已经安装了ARM版本的SDK,那么单击EVC菜单“build”“configurations”,然后单击“add”按钮来添加CPU 

  
     
通常情况下WINCE采用串口1作为调试时输出信息用途,要正式出产品前如何去掉串口1的调试功能 
正常情况下串口1只有在编译debug版本的内核时才在BootLoader中初始化串口1用于输出信息,而编译release版本会跳过此代码。而有些 BSP设计成没有宏定义,也就是说无论什么版本都会在BootLoader中初始化串口1,这样造成WINCE启动后串口1无法被应用程序使用。对于这种情况只能在BootLoader源码中删除初始化代码,如OEMInitDebugSerial 
 
 
基于wince的应用程序能建成console project么? 
不能 
 

更多:http://blog.mcuol.com/User/basicygp/Article/4340_1.htm


最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名?
注册
推荐关注
微型嵌入式图形用户界面系统