博文
支持RFID、指纹识别的驾校车辆培训终端(2013-12-05 16:46:00)
摘要:
立宇泰电子推出的车载一代(型号LDM4342),完美支持各种驾培系统。采用三星ARM9处理器+WINCE5.0操作系统,480x272像素4.3寸液晶屏,电阻式触摸屏,支持GPS定位,2G/3G拨号,RFID(TypeA/B)卡的读写,活体指纹采集,支持1路串口摄像头,内置2~8GTF存储卡,支持音频播放等功能。该终端安装于驾校教练车上,配合计时培训管理软件,即可实现GPS定位,指纹识别,摄像头拍照,GRPS无线传输数据,IC卡读取,培训学时计量,培训里程计量等功能。
目前该产品已经大批量使用在各大城市的驾培终端升级换代中,在实际使用场合考验下,工作稳定、可靠、受到客户好评。
产品特色:
(1)支持GPRS无线模块;
(2)支持GPS定位功能;
(3)支持串口摄像头;
(4)支持IC卡读写;
(5)最简洁的一体机模式,方便车辆安装;
(6)真彩液晶显示和触摸屏输入,交互体验好;
(7)内置的车动检测,有效杜绝了跑马机现象;
(8)运行Windows CE操作系统,与软件平台的对接快速方便。
系统框架图:
技术指标:
相关成功案例:http://www.hzlitai.com.cn/case/chezaixiliehua.html
产品更多详情请参考网站:http://www.hzlitai.com.cn/product/accessories/product/Tablet-CZ/chezaizhongduan.html
欢迎前来洽谈、合作!
单位名称:杭州立宇泰电子有限公司
公司电话:0571-88191763 / 88192763 / 88192967
手 机:13073651427
Q Q:630452073 / 384945206
邮 &nb......
Windows CE下流驱动的动态加载(2012-07-24 11:11:00)
摘要:我想很多WinCE的开发人员,尤其是刚入门并且做驱动开发的工程师,都曾碰到这样一个问题,要编写一个外围设备的驱动,拿最简单的GPIO驱动来说,编写驱动本身可能只花了一会儿功夫,可要把编译生成的DLL打包到先前做好的操作系统映像当中,最简单也得MakeImg一下,还要修改BIB文件、注册表文件,以让系统启动的时候就加载该驱动,所有工作都做完了,还得花几分钟下载整个操作系统到内存去运行,这也得要个好几分钟。能力强的人一次成功,不走回头路也就算了。如果驱动编写得有问题,那又得改代码,重新编译,把刚刚所做的事情再做一遍。说出来不怕大家笑话,我刚开始做驱动时就这样,反反复复,半天下来,才调试好一个简单的驱动。而事实上很大一部分时间都浪费在重复操作上。这种调试驱动的方法实在效率太低了。想到Linux下面的驱动调试,多方便!直接INSMOD一下,应用程序就可以调用,出现问题就RMMOD,根本无须来回倒腾操作系统的映像文件。那么,WinCE下难道就没有这么简便的方法嘛?答案是肯定的。
闲话少说,进入正题。查找EVC的帮助,发现函数ActivateDevice()可用来加载驱动程序。而这个函数的使用是相当简单的。我就不多说了,贴上一段帮助最能说明问题。当然,你也可以用ActivateDeviceEx()。
HANDLE ActivateDevice (
LPCWSTR lpszDevKey,
DWORD dwClientInfo
);
Parameters
lpszDevKey
[in] Pointer to the registry path string of the device's driver key under HKEY_LOCAL_MACHINE. A driver key contains the DLL name, the device prefix, friendly name, and other device information.
dwClientInfo
[in] Data that will be stored ......
立宇泰S3C6410开发板WINCE6.0&Linux2.6资料(2010-04-21 16:46:00)
摘要:分享一些资料大家看看:
立宇泰ARMSYS 6410开发板硬件用户手册:http://www.hzlitai.com.cn/uploads/soft/ARMSYS6410(V1.1).pdf;
立宇泰ARMSYS 6410开发板WINCE6.0用户手册:http://www.hzlitai.com.cn/uploads/soft/ARMSYS6410WINCE60.pdf;
立宇泰ARMSYS 6410开发板Linux2.6.28用户手册:http://www.hzlitai.com.cn/uploads/soft/ARMSYS6410Linux26.pdf。......
dm9000在wince6.0上的移植过程(2010-02-22 15:25:00)
摘要:1、将dm9000a文件夹放到\WINCE600\PLATFORM\zylonite_mhlv\SRC\DRIVERS下MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
并做以下修改MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
A、g_szDm9ConfigParams[]修改如下MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
{ CID_IO_BASE_ADDRESS, 0x14000300, NDIS_STRING_CONST("IoAddress")},MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
这项又硬件而定,ZW310的dm9000地址为0x14000300MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
B、dm9isa.h中修改如下MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
#defineMzýnÇÃ2zhanwei.seaskyer.net¼Ò......
Customizing the Windows CE .NET User Int(2010-01-19 16:19:00)
摘要:定制shells
The Explorer shell provided with Platform Builder is a good general-purpose shell that allows users a great deal of flexibility, while maintaining a generally familiar look and feel. Many embedded devices require a more tightly controlled user experience; for example, HMI industrial controllers, self-service Kiosks, or possibly even the control system of the train I'm riding in as I write this. These types of systems require a custom shell that limits the device to a particular function or set of functions it was designed for. Fortunately, Windows CE was designed with this in mind, and allows you to use any application you want as the shell.
Let's look at some of the functionality a custom shell might need:
1. 在系统启动时运行.
2. 向用户提供一个界面(接口).
· &......
dm9000在wince6.0上的移植过程(2010-01-12 15:02:00)
摘要:1、将dm9000a文件夹放到\WINCE600\PLATFORM\zylonite_mhlv\SRC\DRIVERS下MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
并做以下修改MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
A、g_szDm9ConfigParams[]修改如下MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
{ CID_IO_BASE_ADDRESS, 0x14000300, NDIS_STRING_CONST("IoAddress")},MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
这项又硬件而定,ZW310的dm9000地址为0x14000300MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
B、dm9isa.h中修改如下MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
#defineMzýnÇÃ2zhanwei.seaskyer.net¼Ò......
Windows Embedded CE 6.0 Internals(2010-01-05 16:16:00)
摘要:最近在学习Windows Embedd CE 6.0和Windows桌面系统内部一些知识,这篇文章是对部分内核知识的整理和总结,跟各位博客园的朋友分享。Windows Embedded CE 6.0是非常优秀的嵌入式系统(不是做广告哦^^),对其内核的学习对我们开发、移植驱动和应用程序,对开发、移植嵌入式系统都非常有好处。最好的学习方式就是看源码啦,直接看源码有点困难,所以这篇文章就是帮你更好的看源码的。欢迎各位园友的批评指正。
1.Windows Embedded CE 6.0系统的一些关键特性
★32位多任务操作系统
★多任务抢占、硬实时
★支持的处理器体系结构:ARM, x86, SH4, MIPS
★组件化
★Based on Win32 API Set,桌面系统的一个扩展子集,超过2000个函数可以使用。
★标准的Portable Executable(PE)文件格式
另外需要注意的是Platform Builder开发工具集成的Visual Studio中,作为后者的一个插件。开发Windows Mobile 6.x时使用的还是独立的Platform Builder for Windows Mobile,相信到Windows Mobile 7.0时会有所变化。
作为通用性桌面操作系统的Windows XP取得了巨大的成功,关于其系统特性请看这。所以微软又推出了Windows XP Embedded。与Window XP Embedded需要借助第三方插件才能实现实时操作系统相比,Windows Embedded CE 6.0是具有32 位本机实时支持的统一内核的。微软另一款具有本机实时支持统一内核的嵌入式操作系统是Windows Embedded NavReady。更多Windows Embedded系统看这里。
目前Windows Embedded CE 6.0到目前为止最后一次较大更新为R2(2007年11月15日),其它小更新看这里。
2.系统架构
下图为Windows CE 5.0系统架构,与下下6.0的架构图相比,我们发现:
(1).5.0时的NK.EXE被分为6.0的NK.EXE(交给OEM开发)和Kernel.DLL(微软开发)。
(2).驱动分成......
【最新】基于立宇泰6410开发板的WINCE6.0 R3运行效果视频实拍(2009-12-07 14:04:00)
摘要:
包括
WinCE6.0 R3 QQ聊天
WinCE6.0 R3 Silverlight功能
WinCE6.0 R3 触摸手势
WinCE6.0 R3 浏览器测试
进入http://www.hzlitai.com.cn/product/ARM/ARM6410/ARMSYS6410-L70T84.html
产品详细页,点击“产品视频”栏目查看......
wince5.0 注册表的还原(2009-08-12 17:08:00)
摘要:当Wince使用了HIVE注册表后,每次用户注册表改动都将得到保存,但是在某些应用场合,需要将注册表还原成为出厂时的默认设置,一般要求能够在AP中通过点击一个按钮来实现clean boot。使用HIVE系统注册表和HIVE用户注册表分别保存在/HDD/Document and Setting/system.hv 中和 /HDD/Document and Setting/default/user.hv中,每次系统在启动到加载HIVE系统注册表之前都会先检查保存在/HDD中的文件存在的合法性,如果不满足要求系统将会用binfs中的缺省文件创建新的system.hv和user.hv文件于/HDD中,根据这个特性我先试图在WinCE运行起来后删除这两个hv文件,但是由于WinCE已经事先加载了它们,删除被禁止,只有采用其他的方法。
重新研究了基于HIVE注册表的WinCE的启动过程后发现,系统在完成了第一阶段也就是加载完了boot.hv+binfs之后和加载系统HIVE注册表之前,filesys.exe都会调用OEMIoControl来查询是否需要清除保存在block设备上的hv文件,其CODE代为IOCTL_HAL_GET_HIVE_CLEAN_FLAG,它的输入参数lpInBuf固定为HIVECLEANFLAG_SYSTEM或HIVECLEANFLAG_USERS,filesys.exe会分别用这两种参数调用两次IOCTL_HAL_GET_HIVE_CLEAN_FLAG,第一次用HIVECLEANFLAG_SYSTEM来问OEM是否需要清除system.hv,第二次用HIVECLEANFLAG_USERS做参数来查询是否要清除user.hv,如果返回的lpOutBuf中的值为TRUE则做清除操作,如果为False则保留block设备上的注册表文件。
所以我们要做的就是实现和IOCTL_HAL_GET_HIVE_CLEAN_FLAG相对应的OEMIoControl源码(假设由OALIoCtlBGetHiveCleanFlag()这个function来实现),加入对是否需要清除注册表的判定条件并告知filesys.exe即可。现在棘手的问题是如何让AP通知OALIoCtlBGetHiveCleanFlag()该不该清除注册表,因为OALIoCtlBGet......
WinCE EBOOT中的Boot Args与Driver Globals(2009-08-04 15:44:00)
摘要:在EBOOT中包含的一个重要的缓冲区叫Driver Globals,它用于在设备驱动和WinCE OS之间共享数据。而在EBOOT中会用到的启动参数结构被称为Boot Args,是指用于EBOOT和WinCE OS之间共享一些参数信息。一般来说Boot Args会在EBOOT运行的时候被赋值或者更新,最常用的就是网络设备的相关信息设置,比如IP地址,MAC地址,中断等信息。
Driver Globals包含了Boot Args,也就是说Driver Globals是一块内存缓冲区,其中里面也包含了Boot Args的内存缓冲区。这里要说明的是Driver Globals是一个可选用的功能,无非就是一块内存,在EBOOT和WinCE OS之间进行数据共享。如果你想用,你就用,不想用,也可以不用。我们在使用Driver Globals的时候,一般会在eboot.bib和config.bib文件定义一块预留的内存区域,在这两个文件中定义的这块内存区域的起始地址和大小必须一致,相信这个大家都能理解,至于类型肯定是RESERVED。这样一来,在EBOOT和WinCE运行的时候,这块共享内存就被预留出来了。当然,我们还需要在BSP中通过宏定义来定义这块内存的起始地址和大小,这样就可以在BSP中访问这块内存了。举例:
首先在eboot.bib和config.bib都要有下面的定义:
MEMORY
; Name Start Size Type
; ------- -------- -------- ----
ARGS 80020800 00000800 RESERVED
上面的描述表示Driver Globals的共享内存的起始地址是0x80020800,大小是0x800。
然后还要在BSP中对其起始地址和大小进行宏定义,如下:
#define IMAGE_SHAR......