wince
文章平均质量分 62
alien75
人生的真谛就在于简单。
展开
-
在cnemd发过的贴,留个标志好查找
http://www.cnemb.com/forum/read.php?tid=22811 就发了一个贴,居然就变成优秀会员了,惭愧惭愧。 详细内容如下:2440/win4.2下的sdmmc驱动程序源代码来自www.arm9bbs.com论坛,是for 2410的,应该是参考了public下的驱动做的。我把它改了一下。主要改动如下: 2410和2440寄存器的不同1、SD原创 2009-02-27 01:47:00 · 880 阅读 · 0 评论 -
基于掌微atlas3/atlas4方案的功能实现分析
本来是去一家以前的同事介绍的公司应聘的时候,根据他们的需求临时报佛脚想的一些东西。他们好象之前是买方案来做的,象电话短信什么功能是由北京的一家公司在帮他们做,不过是要收取liscence的。听我同事说做了都半年了都还没出来(怎么会这么慢?),现在想自己做这些功能好降低成本。面试的人看了后就是让工程师打电话问了我一些关于电话实现的问题就没下文了。我想是我开的薪水要求超出了他们的要求,这经济危原创 2009-04-01 11:05:00 · 1391 阅读 · 0 评论 -
wince5编译SDK出错的解决办法
编译SDK出错 After you successfully build a Microsoft Windows CE 5.0 run-time image in Microsoft Platform Builder 5.0, you try to build the software development kit (SDK) by using the SDK Wizard. When y转载 2009-04-16 11:56:00 · 2045 阅读 · 0 评论 -
从寄存器中指定位置取指定位数值
///////////////////////////////////////////////////////////////////////////////// GetBitSlice - Get a bit slice from a stream of bytes// Input: pBuffer - buffer containing data stream// cb原创 2009-05-14 12:16:00 · 2792 阅读 · 1 评论 -
WINCE5.0中与中断有关的几个源文件
1、(WINCEROOT)/public/common/oak/inc/nkintr.h#define SYSINTR_UNDEFINED (-1) // SysIntr not defined for IRQ SYSINTR mapping #define SYSINTR_NOP 0 /* no processing required */#define SYSI原创 2009-06-04 19:05:00 · 1177 阅读 · 0 评论 -
解决CE6和CE5在Platform Builder的Connectivity Options上的冲突
安装完CE6后,会发现Platform Builder for CE5的Connectivity Options不好用了,即使修改设置后点Apply也无法把新设置保存住在完全卸载CE6和VS2005后,点PB5的Connectivity Options会弹出这个错误即使把CE5和PB5完全卸载,然后再重装,改错误仍然存在。我在网上搜到了该问题的解决方法http://www.eggheadcafe.转载 2009-08-24 14:44:00 · 707 阅读 · 0 评论 -
定制自己的Windows CE 5.0 ARM中文模拟器
(本 文译自Microsoft DeviceEmulatorBSP中Using the CE DeviceEmulator.rtf文件,并对该文件说明 做了相应补充,旨在定制基于ARM4I平台Visual Studio 2005环境中文模拟器,建立用于 Platform Builder 5.0+Visual Studio 2005嵌入式Windows CE 5.0开发环境)一、生成OS1.转载 2009-08-25 09:21:00 · 2600 阅读 · 4 评论 -
我所遇到的activesync无法连接情况分析
系统是wince5.0,开发板是UT-2450,刚开始实现了activesync后在实现usbserial kitl的时候,修改了public下的代码,所以用"Build and Sysgen"产生新的lib,这样activesync就无法连接了,之后不管如何修改因为是"Build and Sysgen Current Bsp"还是无法用activesync。升级以前可用的内核问题依旧原创 2009-06-19 20:30:00 · 1305 阅读 · 0 评论 -
Windows Embedded CE 6.0 and R2 下载地址
WinCE 6.0 安装包比较大,从微软下载时,它只提供一个下载工具,用它下载比较慢在网上查了些资料,把WinCE所需的安装包地址都收集起来了,安装包文件名都是有规律的,可以用迅雷新建批量任务来下载,下载很快以下是Windows Embedded CE 6.0下载地址用下面的url地址加文件名,一共364个文件,3.76Ghttp://download.microsoft.com/download转载 2009-08-27 17:29:00 · 5066 阅读 · 2 评论 -
Windows ce 桌面定制小结
一、采用standard shell, 去掉任务栏 代码%_winceroot%/public/shell/oak/hpc我尝试了以下两种方法:1、在taskbar.cpp中将函数BOOL CTaskBar::Register()的内容全部删除,直接return TRUE;2、在explorer.cpp中将函数DWORD WINAPI CreatTaskBar转载 2009-09-02 14:40:00 · 728 阅读 · 0 评论 -
奶猫侃GPS(屏幕、CMMB部分)
两篇帖子《瞎侃——GPS市场之我见》和《奶猫再侃GPS》转眼间已经过去了一年多,现在已经来到了09年的夏天。GPS市场上的格局又发生了变化。早在08年下半年,根据对市场的预计,奶猫就认为09年的便携式导航会往这几个关键字发展:屏幕来看,往5寸屏(相对于4.3更大的尺寸)、高清屏(800x480分辨率)发展;附属功能来看,往CMMB、流动测速(电子狗)发展;从芯片来看,从A3(SIRF ATLAS转载 2009-09-06 11:44:00 · 1969 阅读 · 0 评论 -
A4时代的各家PND产品乱弹——奶猫侃GPS
A4时代的各家PND产品乱弹——奶猫侃GPS发贴之前先按照国际惯例声明一下:本帖只谈方案,不谈品牌。目前在OEM市场做PND(便携式导航仪)方案的无外乎就这么几家研发公司。而品牌则多如过江之鲫。除了新科、万利达、Garmin、MIO之外,其它的品牌的产品基本都源于这几家方案商(研发公司)。本贴虽名为“乱弹”,却也力求做到公正、客观、中肯。为达到上述目标,我稍后会用评测数据和图片来证实。奶猫是转载 2009-09-06 12:05:00 · 1714 阅读 · 0 评论 -
关于wince6中加入FPCTR出错的原因
当加入OEM Floating Point CRT (ARM only)组件的时候编译会提示FRCRT未定义,查MSDN都说wince6支持这个功能,百思不得其解,最后终于在网上查到了原因:http://www.eggheadcafe.com/conversation.aspx?messageid=34789848&threadid=34572975 原文如下: The VS200原创 2009-09-09 18:27:00 · 1606 阅读 · 2 评论 -
我的wince6移植总结
移植基本上借鉴的驱动开发网上大侠的文档进行,整体过程比较顺利,看来这位大侠还是花了精力做这个事的。在我的平台上出现的几个问题,记录如下: 1、编译到oalexe时,提示HalWrapper中的LocalAlloc和LoaclFree是未定义的外部变量,在sources的TARGETLIBS中加"$(_COMMONSDKROOT)/lib/$(_CPUINDPATH)/coredll.lib原创 2009-09-11 13:03:00 · 2463 阅读 · 1 评论 -
2440/2410 Camera接口详解
CAMIF 的bus priority 只能比LCD 的priority 低,要比其她hardware都高。CAMIF 有兩個path : preview, Capture。preview 和 capture path 都各有4個target frame memory (4 pingpong frame memory)。 意思是依照1,2,3,4,1,2,3,4,,,依序放置 ?pixel转载 2009-09-18 09:30:00 · 1149 阅读 · 0 评论 -
嵌入式linux学习计划第二阶段总结
前言:第二阶段的学习计划的启动可以用“阴差阳错”来描述,前后持续了三个多星期,对于陌生东西的研究确实是一个痛苦的过程,一旦找到问题的所在却有一种“豁然开朗”的快乐。 在完成第一阶段的学习计划后,对于第二阶段内容按原计划是根据第一阶段积累的经验移植linux到现有的开发板上。只是根据第一阶段的情况感觉这是个比较花时间的过程,再加上项目比较紧,只好暂时搁置了一段时间。 大概二个月前,老原创 2009-09-21 11:53:00 · 864 阅读 · 0 评论 -
WINCE目前的几个热点应用
1。CMMB电视 2。GPRS+GSM-------RIL 3。WIFI-----------走SD卡总线/SPI总线 4。BLUETOOTH------带蓝牙协议栈 5。一键GHOST系统 6。GIS/GPS应用 7。TCPMP播放器-----媒体播放器 8。2D/3D游戏 9。多媒体应用-------RADIO/DVD/CDC/转载 2009-09-24 12:37:00 · 1258 阅读 · 0 评论 -
WinCE音频驱动
音频驱动有3种模式:1.MDD/PDD模式.2.Wavedev2模式.3.UAM模式 它们相同的地方很明显:它们公开相同的接口,因为是流驱动!都是透过流接口与上层的waveapi.dll交互.接着,细说它们的差异: 第一种MDD/PDD模式是最早被提供的模式,也是其他驱动常见分层模式.如果我们使用CE提供的MDD(wavemdd.lib)我们会受到一些限制: Only suppor转载 2009-10-06 10:54:00 · 2463 阅读 · 2 评论 -
WINCE的混音器
在CE音频设备中,混音器是有不同类型的,下面介绍一下:1、软件混音器Waveapi模块有软件混音器,有时也称为内核混音器。它能混合多个不同采样率的PCM,在CE 4.2中被加入。软件混音器在启动时,为音频设备创建一个线程。这个线程负责接受应用的音频buffer,把它们放到混合的buffer中,再传给音频设备。这个过程中,软件混音器的工作有:1、 把所有数据转换成16位的双声道格式转载 2009-10-06 10:58:00 · 1713 阅读 · 3 评论 -
显示驱动相关 -- DrvEscape和ExtEscape
DrvEscape是提供给应用程序的一个直接访问显示驱动的接口/机制,它类似流接口的IOCTLs方式的,完成标准GDI无法完成一些功能.上层应用程序调用ExtEscape()发送查询,设置等控制命令给显示(打印)驱动.这些命令字叫做escape code.系统已经定义的escape code有如下: QUERYESCSUPPORT 8 查询显示驱动是否支持转载 2009-10-06 11:03:00 · 1049 阅读 · 0 评论 -
DDKReg_GetIsrInfo的简介
Developing a Device Driver > Device Driver Development Helper Libraries > Registry Helper Reference > Registry Helper FunctionsThis function populates a DDKISRINFO structure with information from th原创 2009-10-06 20:10:00 · 1151 阅读 · 0 评论 -
s3c2450下AC97驱动研究
AC97驱动分析总体而言,AC97驱动是wavedev结构的驱动,上层应用通过调用WAVEAPI函数,和驱动接口HandleWaveMessage进行交互,驱动根据传递的WIDM_XXX系列值进行操作。现在以Wince5自带的waverec例程进行分析一、流程1、初始化过程这个是设备启动时,由设备管理器加载驱动。调用了WAV_Init、WAV_OPEN、WAV_CLOSE三个函数;传递WI原创 2009-10-12 09:51:00 · 2152 阅读 · 4 评论 -
WINCE应用程序和驱动间通信
WinCE上驱动程序的模型相对比较简单,实现一个驱动程序不是什么难事。尽管如此,本文还是实现了一个比较通用一点的通讯接口。应用程序发给信息驱动程序有两种方式,同步调用和异步调用。同步调用能够让驱动程序立即处理应用程序的请求,并返回驱动程序处理后的结果。如:#define MSG_TYPE_TEST_1 0x00000000#define MSG_TYPE_ICMP_转载 2009-10-15 11:40:00 · 2379 阅读 · 3 评论 -
简单的调试信息显示程序
在做wince设备程序或驱动开发的时候,如果设备没有串口、USB、控制台功能,就只能用消息框或日志文件来做调试用,但是我觉得这样很不方便:前者要不停关闭消息框,后者则要将日志文件打开才能看到。因此我就用重定义RETAILMSG的方法通过WM_COPYDATA将调试信息的输出重定向到一个接收WM_COPYDATA的Dialog程序中,这样既能够实时显示调试信息,又能够在不需要的时候使用取消RETAI原创 2009-10-13 16:04:00 · 1466 阅读 · 0 评论 -
Hacking Windows CE: 如何从线程ID获取线程名称
在一个线程出现异常行为时,比如说CPU占用率过高,抛出异常等,你一定想知道这个线程是由哪个模块创建的。因此无论在哪个操作系统上,获取线程名称是诊断线程相关问题的重要一步。 从线程ID获取线程名称通常的方法是,先获取该线程的入口地址,然后枚举进程内所有已加载模块,最后判断线程入口地址落在哪个加载模块范围内。枚举进程内已加载模块可用Win32标准的CreateToolhelp32Snapshot/Mo转载 2009-10-14 16:28:00 · 2224 阅读 · 0 评论 -
wince内存分配及管理
一、引今天打算规划一下播放器的内存管理,初步设想先做一个SingleBuffer,然后在用一个BufferPool来管理这堆SingleBuffer,于是动手开始画UML类图,确定属性和行为。但是遇到了一个问题,就用malloc和free两个C语言函数构造整个内存管理吗?不甘心,这太弱了,必须有功能强劲一些的WINCE API来支持,尤其是每个内存块的起始地址对齐,好用点至少得32位对齐吧,酷转载 2009-10-16 14:43:00 · 3021 阅读 · 0 评论 -
wince内存配置的一些体会
注:以下分析是基于S3C2450的DRAMC控制器. 1、CPU的BANK0到BANK5可以用于SROM(包括Norflash)、SRAM或其它外设的片选(片选信号nRCS),BANK6用于SDRAM、DDR内存(片选信号nSCS)。如果访问到不同BANK的地址范围DRAMC控制器则会激活对应的片选信号。关于此bank的最大访问是64MBytes目前不是很明白。找到一篇说明:http:/原创 2009-10-19 11:24:00 · 2030 阅读 · 3 评论 -
RTC驱动-2450
RTC驱动_2450 --作者:赖玉平(Auly)aulyp@163.com RTC驱动主要实现的功能是能给系统提供读取和调节时间日期的接口,要修改的文件有: 1 /smdk2450/src/common/rtc rtc.c 2 /smdk2450/src/inc S3c2450a_rtc.h㈠ Rtc.c 里面的OALIoCtl转载 2009-10-19 21:24:00 · 736 阅读 · 0 评论 -
驱动间的协调和管理
在一个嵌入式系统中,各个驱动之间是如何进行协调的呢?如何管理的呢?当要抢占硬件资源时,如何处理呢?下面提供两种方法,该方法是我们在实际系统中使用最广的,也是经过验证可行的。1 使用虚拟驱动的方法,如我们的一个GPS平台就用到了一个虚拟驱动(该驱动不针对任何硬件),其作用就是一开机就加载了,各个驱动可以打开它,然后用DeviIoControl来实现访问,如在里面设一个USB的标志位,当某一驱动或转载 2009-10-19 21:22:00 · 694 阅读 · 0 评论 -
WINCE驱动开发之DMA的使用
DMA的使用1、 芯片DMA的使用要点:AK3224芯片的DMA使用中,RAM的地址作为DMA传输的目标地址、源地址,必须要4字节对齐。而且DMA的操作长度以内的RAM地址,必须连续。不过在使用中发现:Nandflash驱动中RAM地址作为目标地址时,只需要2字节对齐。RAM地址作为源地址可不需对齐。(其他情况需要逐一验证)2、 wince中的DMA使用:根据DMA一次操作的R转载 2009-10-23 14:20:00 · 1409 阅读 · 0 评论 -
开发wince下的usb音频设备驱动总结
在做usb audio设备驱动开发前我还不知道有usb audio device class,以为这是个HID类型的驱动,开发起来应该容易实现,后来才发现原来自己进入了一个未知领域。幸亏之前有开发过mass storage固件程序,又了解过OV511的usb camera驱动,所以尽管多花了点时间,中间也出现了波折但还是完成了开发。完成开发后回头一看发现自己对USB协议、音频处理有了进一步的了解,原创 2009-10-26 15:13:00 · 4571 阅读 · 4 评论 -
Wince5.0下如何将Public和Private下的代码移植到BSP下
有时候在调试驱动或是学习驱动的过程发现源码在Public下,而这部分又不能乱动。同时对于Private下的代码更是如此了。如果能将这部分代码移植到自己的BSP下岂不是可以随意加入调试信息从而更好的掌握代码的实现机制,也可以自己加些功能什么的也不用担心Private或是Public下的内容被改掉。 那么就来看看如何做吧。首先看如何把Public下的驱动移植到BSP去: 将Public下的驱转载 2009-11-06 00:17:00 · 634 阅读 · 0 评论 -
WinCE蓝牙应用的实现--蓝牙耳机
蓝牙耳机功能,也就是bluetooth headset /headfree profile,实现起来比想象的复杂.早期的蓝牙规范只定义了headset的profile, headset的实现原理,是在hci层之上扩展一个接口,传输sco同步面向连接的音频数据包.限定音频流只能是单声道8k的话音级别的pcm. 随着需求发展,明显已经不能满足了,于是又补充了a2dp协议.a2dp协议在l2cap上转载 2009-10-27 21:28:00 · 6265 阅读 · 0 评论 -
USB驱动程序的加载
---------------------| 应用程序 |---------------------|usb client driver | (层一)---------------------| usbd.dll | (层二)---------------------| ohci.dll | (层三)----转载 2009-10-30 22:33:00 · 929 阅读 · 1 评论 -
CE5.0关于设备管理器的源码分析
系统下面许多设备,比如键盘,串口,触摸屏,硬盘......这些设备什么时候被系统使用的?这些设备怎样被系统使用的?加载过程是怎么样的?设备如何加入系统协同工作的?为什么系统能检测到并使用即插即用的设备(如usb鼠标)?系统是怎么控制设备的电源的?CE管理设备的程序叫做DEVICE.EXE,这是一个独立的用户级进程,它主要负责跟踪,维护系统的设备信息并对设备资源进行调配.设备管理器包括即插即用转载 2009-10-31 18:29:00 · 820 阅读 · 0 评论 -
运行DNW出现访问内存违例的问题解决
问题的出现起源于在运行DNW的时候死机,重启后就出现了这个问题。开始的时候以为是应用程序或相关联的DLL被破坏,但是在拷贝完所有的文件后问题依旧。 对于这个问题百思不得其解,总不至于要重装系统吧? 答案是:不用,因为我们有强大的反编译软件OllyDbg,将DNW用OllyDbg运行起来后,在出异常的地方可以看到一行命令是将内存的一个地方和0x0a进行字节比较,这个内存是无法访问的,在往前看原创 2009-10-30 11:42:00 · 1658 阅读 · 1 评论 -
wince5.0中断的详细解释
1 WinCE中第一次对中断的处理是在OAL的OEMInit()中,该函数调用OALIntrInit()完成对中断的初始化. 2 OALIntrInit()对中断的初始化做了如下工作: 2.1 通过配置IPR0-IPR33设置中断优先级,优先级定义在g_IntPriorities和g_IntPriorities2中,其中IRQ_OSMR0为最高优先级, IRQ_KEYPAD为最低优先级. 2.2转载 2009-11-06 19:32:00 · 600 阅读 · 0 评论 -
扩展wince5物理中断
我的开发环境是s3c2450+wince5,需要用到EINT20做键盘中断,但是因为wince5默认只支持64个物理中断,而且BSP用到的IRQ_LAST是EINT16。因为EINT4到EINT16都有用处,想通过将EINT20移到64以内并添加静态映射的方法就行不通了,只能用动态分配的方法,为此需要对BSP及WINCE做一些调整。具体做法如下:1、修改bsp中的s3c2450_intr.h原创 2009-11-09 16:52:00 · 736 阅读 · 0 评论 -
2440上U口的WIFI与U盘不能同时使用的解决
2440上U口的WIFI与U盘居然不能同时使用 收藏 开发中经常会遇到这样一些问题,现象很怪,感觉很棘手,到处看资料,找人,找技术支持,磨了几天了磨得没脾气了,只有静下心来仔细分析,研究代码,最后解决问题时发现其实就一个小小的问题,小问题的郁闷。由于项目需要把2440的两个USB都用作了HOST,一个接WIFI,固定在机器内部,另一个就用来外接鼠标,键盘等外设,测试时都个HOST都接U盘转载 2009-11-01 12:02:00 · 1121 阅读 · 0 评论 -
eboot的分区管理模块bootpart
11月30日eboot的分区管理模块bootpartBP_Init的参数。 Bootpart模块需要提供一块内存作为模块buffer。 前面2个参数就是描述这个buffer的地址和size的。 Eboot中使用了这个模块, eboot的做法是在boot.bib保留了一块区域作为buffer。比如我的是这样保留的BINFS 80080000 00021000 RESE转载 2009-11-12 19:45:00 · 707 阅读 · 0 评论