![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Wince_驱动开发
文章平均质量分 72
你来吻
能够使用VC和CBC VS2005编辑软件,能够使用CCS开发DSP。能够使用PB编写wince 驱动,能够使用ADS。
有一个漂亮的媳妇和一个可爱的女儿。
就这么简单。
每天要看一篇旧的日志,每天睡前要想想今天做了什么。明天的简单计划是什么?
展开
-
wince6.0 s5pv210 iic驱动 报错
在读iic时经常会报如下错误Exception 'Data Abort' (4): Thread-Id=0909001a(pth=8c61a834), Proc-Id=00400002(pprc=824f9308) 'NK.EXE', VM-active=0567014e(pprc=8ccaaedc) 'edm.exe'PC=c0bc75a0(i2c.dll+0x000075a0) RA=原创 2014-03-07 19:51:57 · 1276 阅读 · 2 评论 -
PWM 驱动函数
<br /> <br />函数名称: BOOL PWM_Close(DWORD Handle) <br />功能描述:驱动程序关闭函数 <br />函数参数: DWORD Handle :驱动程序句柄 <br />函数返回值: FALSE: 失败 TRUE: 成功 <br />调用程序: CloseHandle(hFile); <br /> <br /> <br />函数名称: DWORD PWM_Open ( <br /> DWO转载 2011-03-24 13:08:00 · 1093 阅读 · 0 评论 -
SPI
<br />SPI驱动函数<br /> <br />函数名称:BOOL SPI_Close(DWORD Handle)<br />功能描述:驱动程序关闭函数<br />函数参数:DWORD Handle:驱动程序句柄<br />函数返回值:FALSE: 失败 TRUE: 成功<br />调用程序:CloseHandle(hFile);<br /> <br /> <br />函数名称:DWORD SPI_Open (<br /> DWORD转载 2011-03-24 13:07:00 · 535 阅读 · 0 评论 -
Windows CE的目录组织
<br />安装完PB后,Platform Builder 和WIN-CE本身都被安装到PC机上<br />通常,把WIN-CE安装到根目录时,Win-Ce的目录会以”WINCE+版本号”的方式命名<br />4.2版本的WIN-CE代码在”WINCE420”,5.0版本的WIN-CE代码在”WINCE500”<br />在构建系统中,Windows CE的代码根目录通常用环境变老%_winceroot%来标识。<br />根目录主要的目录 Public,Others,SDK,Platform,Privat转载 2011-03-24 12:54:00 · 830 阅读 · 0 评论 -
ActiveSync合作关系对话框的配置
<br />当设备与PC同步时,ActiveSync软件经常会弹出如下图所示对话框。<br /><br />一般在调试阶段,选择“否”并点击“下一步”按钮,关闭该对话框。为了省去每次点击的麻烦,可以修改注册表,使其在同步时并不弹出该对话框,设置如下,<br />[HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows CE Services]<br />"GuestOnly"=dword:00000001 <br />将“GuestOnly”设置为1即可。原创 2011-03-24 12:42:00 · 410 阅读 · 0 评论 -
Platform Builder 5.0的Build OS菜单详解
<br />很多新手对Platform Builder 5.0(以下简称PB 5.0)的Build OS菜单有所疑惑,不知道实际使用中应该如何选择,在此结合本人平时的经验,略作一番解释。<br /> <br /> 首先第一组是编译命令,一共有三个:<br /> <br /> 1.Sysgen<br /> <br /> 根据当前的系统设计,生成一个系统映像。该操作不会更改之前编译(Build)完成的文件。这里所说的文件,指的是OS的文件,也就是位于WINCE500文件夹原创 2011-03-24 12:39:00 · 483 阅读 · 0 评论 -
User Mode Driver Management 介绍(二)
<br />3> 调用User Mode Driver Host API来将Driver Load到内存<br /> CeFsIoControl()实际上是一个对文件系统驱动FSD进行操作的函数,需要传入文件夹名字和IoControlCode。<br /> 帮助文档中对该函数的解释如下:<br />This function sends an I/O control to a file system driver (FSD). It may not be supported by a转载 2011-03-24 16:55:00 · 1209 阅读 · 0 评论 -
wince软键盘的隐藏和显示
<br />在弹出的模式对话框中,如果有编辑框,需要自动显示软键盘进行输入,并且自动调节软键盘位置。如果不是编辑框,则应该关闭软键盘,并设置到原始位置。<br />继承了CEdit类,处理其获得焦点和失去焦点的消息:<br />ON_CONTROL_REFLECT(EN_SETFOCUS, OnSetfocus)<br />ON_CONTROL_REFLECT(EN_KILLFOCUS, OnKillfocus)<br />void CMyEdit::OnSetfocus() <br />{<br />转载 2011-02-23 16:59:00 · 2318 阅读 · 0 评论 -
wince 设置系统时间
<br />[DllImport("coredll.dll", SetLastError = true)]<br /> public static extern int SetLocalTime(ref SystemTime lpSystemTime);<br /> //struct for date/time apis <br /> public struct SystemTime<br /> {<br /> public sh转载 2011-02-23 15:39:00 · 1020 阅读 · 0 评论 -
在应用程序中自由设置wince输入法
<br />CE中的输入法跟XP下的一样。。最近搞了好久才总算知道咋回事!<br />操作输入法,就是操作 CLSID。只要知道想要的的输入法的 CLSID值就可以自由切到相应的输入法。。<br />如:<br /> BYTE tem[16]={0x99,0xaf,0xaf,0x5a,0x99,0x8d,0x66,0x44,0xa6,0x6d,0x95,0xc4,0x4b,0x60,0x8a,0x84};//手写输入法 CLSID cls;<br /> memcpy(&cls,tem,1原创 2011-02-24 13:00:00 · 1095 阅读 · 1 评论 -
Eboot 中给nandflash分区实现
<br />提到分区就不得不提到MBR ,不得不提到分区表。 <br />什么是MBR <br />硬盘的0 柱面、0 磁头、1 扇区称为主引导扇区,NANDFLASH 由BLOCK 和Sector 组成,所以NANDFLASH 的第0 BLOCK ,第1 Sector 为主引导扇区,FDISK 程序写到该扇区的内容称为主引导记录(MBR )。该记录占用512 个字节,它用于硬盘启动时将系统控制权交给用户指定的,并在分区表中登记了的某个操作系统区。 <br /> <br />MBR 的组成 <br />一原创 2011-02-08 09:09:00 · 666 阅读 · 0 评论 -
S3c2440A WINCE平台HIVE注册表+binfs的实现
<br />今天最大的收获莫过于把binfs和hive注册表同时在三星的平台上实现了,这可是前无古人啊(只是看到好多哥们说找不到三星的HIVE资料),哈哈哈。怕今天的成果日后成炮灰,还是写下来比较好,要养成这样的习惯!!!<br /> 其实所有的工作都是改注册表,但是怎么改,为什么这么改要搞懂就蛮费一番心思了,好在俺是喜欢钻研的动物,小case! <br />今天总结一些实现的过程和原理。<br /> 我们的案子是基于samsung S3C2440A+samsung ONENAND+WinCE5原创 2011-02-08 09:06:00 · 480 阅读 · 0 评论 -
WinCE下非标准键盘的驱动程序设计
<br />键盘作为收入设备,在嵌入式系统中应用广泛。它与PC键盘不同,嵌入式系统中的键盘千差万别,随实际应用的场景不同而不同。今天在这里介绍就是一种非标准键盘的驱动程序设计。在一些应用中,可能只会用到有限的几个按键。为了节省硬件成本,并充分利用既有的硬件资源,通常将这些按键连接到MCU的外部中断引脚上。如S3C2410有一百多个GPIO,几十个外部中断,我们就可以用几个外部中断来实现系统的按键功能。<br /> 虽然嵌入式系统中的键盘形形色色,各不相同,但驱动的框架基本一致。从工作模式的角度来看,一原创 2011-02-08 09:00:00 · 620 阅读 · 0 评论 -
四线电阻式触摸屏驱动的优化
<br />触摸屏在电子产品中用得越来越多,其技术也在不断发展。目前常见的有电阻式、电容式、红外式和表面声波式等几大类,其中电阻式最为普遍。最近在WinCE下调试了一款四线电阻式的触摸屏驱动,利用检测触摸压力的方法实现了动态调整触摸屏的灵敏度。 <br /> 一般的嵌入式处理器中会有几个通道的AD,通常有四个通道用于连接触摸屏的XP、XM、YP和YM。如果MCU 没有Touch Screen Interface,可以选择如TSC2003一类的触摸屏控制器芯片。MCU可通过IIC总线与其通讯,以得到转载 2011-02-08 08:58:00 · 2555 阅读 · 3 评论 -
Platform Builder 6.0与Windows 7兼容性的问题
<br />重装Windows 7之后,今天第一次正式编译WinCE内核,结果又遇到了一点状况,截图如下。<br /> <br /> 从编译的阶段来看,Sysgen已经成功完成,在执行Post-Sysgen Build的操作时编译PLATFORM/COMMON/SRC/COMMON/CACHE/./global.c文件出了错,这个错误之前一直没有碰到过——fatal error C1033: cannot open program database ''。<br /> 起初怀疑转载 2011-02-08 08:53:00 · 1317 阅读 · 0 评论 -
Windows CE下流驱动的动态加载
<br />我想很多WinCE的开发人员,尤其是刚入门并且做驱动开发的工程师,都曾碰到这样一个问题,要编写一个外围设备的驱动,拿最简单的GPIO驱动来说,编写驱动本身可能只花了一会儿功夫,可要把编译生成的DLL打包到先前做好的操作系统映像当中,最简单也得MakeImg一下,还要修改BIB文件、注册表文件,以让系统启动的时候就加载该驱动,所有工作都做完了,还得花几分钟下载整个操作系统到内存去运行,这也得要个好几分钟。能力强的人一次成功,不走回头路也就算了。如果驱动编写得有问题,那又得改代码,重新编译,把刚刚所转载 2011-02-08 08:46:00 · 440 阅读 · 0 评论 -
wince——配置文件
<br />1)合并配置文件:所有的.BIB文件合并成CE.BIB。CE.BIB包含映像NK.BIN中的所有文件;所有.REG文件合并成REGINIT.INI;所有.DAT文件合并成INITOBJ.DAT;所有.DB文件合并成INITDB.INI。在修改配置文件时,一定要注意CE.BIB,REGINIT.INI,INITOBJ.DAT,INITDB.INI是中间文件,修改这些文件不能配置Windows CE。 <br />(2)将REGINIT.INI文件压缩成一个二进制文件DEFAULT.FDF。 <br原创 2011-03-30 10:30:00 · 1613 阅读 · 0 评论 -
WinCE虚拟串口驱动(一)
<br /> //========================================================================<br /> //TITLE:<br /> // WinCE虚拟串口驱动(一)<br /> //AUTHOR:<br /> // norains<br /> //DATE:<br /> // Saturday 28-March-2009<br /> //Environment:<br /> // WINDOW转载 2011-04-09 20:42:00 · 692 阅读 · 0 评论 -
串口接收时丢数据问题解决方案
<br />老规矩,先说下问题:串口在接收pc端发来的数据时(100个bytes,每200ms发送一次),偶尔会丢一些数据。某一次的测试记录如下:<br />第一次丢数据 发送总量60多万字节 丢了27个<br />第二次丢数据 发送总量80多万字节 (在上一次发送的基础上又)丢了40个<br />第三次丢数据 发送总量190多万字节 (在上一次发送的基础上又)丢了37个<br /> <br /> 以上数据要说明的是所丢的数据是一个随机情况,因为如果我把环境清空(例如断电重启)而pc端的发送条件不原创 2011-04-09 20:48:00 · 3736 阅读 · 0 评论 -
CE6 驱动: 你不得不知道的事情
原地址:http://blog.csdn.net/armeasy/article/details/4965710许多人担心CE6驱动的向后兼容性。在CE6上,应用程序和OAL可以比较良好的兼容,但驱动就比较难。驱动在移植到CE6上必须做一定的修改,原封不动的放到CE6上运行是不太可能的。驱动需要修改的主要原因:1、 API的差异2、 内存传递3、 Buffer异步访问转载 2014-03-07 19:38:37 · 1395 阅读 · 0 评论 -
TQ210 裸机测试 AT24C02A代码
#include #include #include "utils.h"#include "I2C.h"/* 映射内存*/#define rGPD1CON (*(volatile unsigned *)(BASE_REG_PA_GPIO+0xC0))#define rGPD1DAT (*(volatile unsigned *)(BASE_REG_PA_GP原创 2014-02-11 13:19:11 · 1053 阅读 · 0 评论 -
I2C全面理解 s3c2440用I2C接口访问EEPROM
原文地址:http://www.linuxidc.com/Linux/2012-08/67658p6.htm在前面阅读理解了I2C的官方协议文档后,就拿s3c2440和EEPROM来验证一下.本来是想用s3c2440的SDA和SCL管脚复用为GPIO来模拟的,但在没有示波器的情况下搞了一周,怎么都出不来,最后还是放弃了.甚至参考了linux下i2c-algo-bit.c和i2c转载 2014-01-28 11:47:24 · 921 阅读 · 0 评论 -
LCD驱动编写小结及BSWP 和 HWSWP的作用
原文地址:http://blog.csdn.net/zhulizhen/article/details/5217206在设置lcdcon5时遇到BSWP 和 HWSWP两个使能位,知道是高低位互换,但真是有什么用倒没想到,下面转载的这篇文章略有提及,参考一下========================================== 3.1 背光:对于大部分的彩色LCD一定原创 2014-01-27 10:44:55 · 1193 阅读 · 0 评论 -
MELEXIS/MLX90614ESF-DCI 传感器 2440 IIC通讯
//---------------------------------------------------------------------------------------------------------//-----------------------------------------------------------------------------------------原创 2013-07-30 16:18:22 · 4025 阅读 · 1 评论 -
WinCE驱动程序的分类
源文件:http://www.cnblogs.com/we-hjb/archive/2008/11/29/1339603.html最近有一些同学发邮件问我,驱动调试助手到底能动态加载哪些驱动,为什么在加载USB设备驱动时总是失败。要解释这个问题,首先得弄清楚WinCE中驱动的相关概念。本文将主要介绍WinCE下驱动程序的分类。 驱动程序是介于操作系统和设备之间的一个代码转载 2013-03-21 19:52:00 · 672 阅读 · 0 评论 -
S3C2440 进行微秒级、毫秒级延时函数
MCLK:405MHzHCLK:135MHzPCLK:67.5MHz在这里定时器时钟频率为PCLK/8=67.5/8=8.4375MHz定时器0示例代码:1 void T0DelayNus(UINT16 t) 2 { 3 r转载 2011-08-12 10:06:23 · 2808 阅读 · 0 评论 -
mini2440的pwm驱动程序和测试程序详解
一 pwm 驱动程序位置: 内核/drivers/char/mini2440_pwm.c代码注解#include #include #include #include #include #include #include #include转载 2011-08-01 11:33:35 · 883 阅读 · 0 评论 -
Windows CE下USB设备驱动开发的一些基础知识
Windows CE下USB设备驱动开发的一些基础知识随着USB设备的普及,摆在开发人员面前的驱动开发任务也是越来越繁重了,特别是对于一些嵌入式开发厂商来讲,由于设备所采用的操作系统不同,相应的硬件接口也是不一样的,开发相关的USB驱动程序更是难上加难。Windows CE是微软转载 2011-07-14 16:11:13 · 599 阅读 · 0 评论 -
Windows CE下的USB设备驱动程序开发实例
下面举个简单的例子来详细说明一下驱动程序的开发过程。例如我们有个USB Mouse设备,设备信息描述如下:Device Descriptor:bcdUSB: 0x0100bDeviceClass: 0x00bDeviceSubClass: 0x00bDeviceProtocol:转载 2011-07-14 16:11:49 · 1005 阅读 · 1 评论 -
wince5.0 2010年补丁包下载地址
http://www.microsoft.com/downloads/en/details.aspx?FamilyID=732970f0-095f-4458-bbf3-7337ba8e5024&displaylang=en原创 2011-06-09 15:33:00 · 1094 阅读 · 0 评论 -
2440支持大容量SD卡的解决办法
<br />//----------------------------------------------------------------------------------------------------------- <br />// 作者:wogoyixikexie@gliet<br />// 版权:桂林电子科技大学一系科协wogoyixikexie@gliet<br />// 平台:wince5.0 2440 5.0 BSP <br />// 发布日期:2009年5月6日 10:45:54原创 2011-04-09 21:20:00 · 648 阅读 · 0 评论 -
DeInit函数中不释放中断会造成什么后果?
<br />最近在做系统的电源管理以及系统底电流的调试工作,要求在系统进入suspend的时候耗电电流在几个mA以内。其中有一个耗电比较大的模块,我想在系统进入suspend的时候将它的驱动卸载,系统resume的时候再重新给它加载,本来这种方式之前用过很多次了,应该没有什么问题,唯一让我担心的是这个驱动比较复杂,有很多线程在跑,担心卸载的时候一些资源没有释放或者释放顺序有问题导致第二次不能够加载成功。但是随着调试的进行,对该驱动的卸载和加载似乎很顺利,重新加载后通过SPI接口成功的将firmware下载到原创 2011-04-09 21:14:00 · 665 阅读 · 0 评论 -
MULTI BIN的wince 5.0+smdk2440下的实现(扩大你的内存)
原本早就要发出来了,但是看到king_sundi网友已经发过一个帖子了,所以犹豫了没有发,相对而言,我这个总结更具有实用性,基本上照着这个步骤来就能成功,我给我几个朋友试过了,他们一开始对这个基本不懂都能搞定。<br />XIP实现总结.<br />step1:修改config.bib文件.内核子集XIPKERNEL的SIZE根据你自己编译出来的XIPKERNEL.BIN实际大小调整,<br />XIPKERNEL BASE=8C200000,XIPKERNEL SIZE = 0013F000 内存类型是R原创 2011-04-09 22:10:00 · 1186 阅读 · 0 评论 -
浅谈wince驱动调试方法
<br />以前,我调试驱动都是打包,下载,很郁闷,一个小小的DLL都要这么费神,对微软极为不满,现在发现驱动调试有一些诀窍,特来和大家分享,如果你有更好的方法,就来和大家分享吧。<br /> 之所以说“浅谈”,是因为我自己也搞得模模糊糊的,问过很多人,大家一致认为有三种调试方法:<br />一、使用应用程序动态加载驱动——优点是不用下载打包NK,可以在正常情况下看到驱动的运行情况;缺点是只能调试流驱动。在这方面有个专家做的很好,发布了驱动调试助手http://www.cnblogs.com/we-转载 2011-04-09 21:36:00 · 588 阅读 · 0 评论 -
wince 5.0 .2440 5.0BSP的中断过程
<br /><br /> 以前在CSDN写过一些wince5.0中断的文章,现在重新看看,发现以前的有些理解是错误的,想翻开来改改,可是郁闷的CSDN在前台没有返回后台的编辑功能,所以现在重新写一篇纠正一下。<br /> 首先描述wince5.0 (2440BSP)的中断流程<br /> 注册表等——》KernelIoControl(——》OEMIoControl——》OALIntrRequestIrqs )把物理中断转换成系统中断——》InterruptInitialize调用O转载 2011-04-09 21:03:00 · 749 阅读 · 0 评论 -
WinCE驱动程序的分类
<br />最近有一些同学发邮件问我,驱动调试助手到底能动态加载哪些驱动,为什么在加载USB设备驱动时总是失败。要解释这个问题,首先得弄清楚WinCE中驱动的相关概念。本文将主要介绍WinCE下驱动程序的分类。<br /> 驱动程序是介于操作系统和设备之间的一个代码层,它的主要作用是为操作系统提供一个接口,以操作不同的硬件,包括物理的和虚拟的设备。虽然驱动程序有很多种,但从编程的角度来看,无非是往一个固定的框架中添加相应的代码。这里的框架指的是一个接口,面向操作系统。代码实现的宗旨是,在正确的时转载 2011-02-08 08:42:00 · 476 阅读 · 0 评论 -
WinCE USB驱动开发
<br />随着USB2.0设备的不断增加,USB设备驱动开发在嵌入式开发中变的越来越重要。Windows CE支持USB 2.0更是对这一波新技术浪潮产生巨大的推动。近期我负责一个这样的项目,在WinCE下开发USB接口的外围设备驱动。当时做这个项目花费了我相当多的时间和精力,错走许多冤枉路使我精疲力尽。 <br /> 项目需求是在已调好的ARM9板子上开发USB WiFi无线网卡的驱动程序,具体要求是驱动程序平台是WinCE,CPU类型支持ARM构架,要能比较方便地移植到X86;驱动接口类型是USB2转载 2011-01-19 16:50:00 · 691 阅读 · 0 评论 -
CE5.0 - eboot汇编Startup.s中MMU设置流程详细分析
CE5.0 - eboot汇编Startup.s中MMU设置流程详细分析以下为SMDK开发板startup.s部分启动代码.;-------------------------------------------------------------------------------MemoryMap EQU 0x2a4BANK_SIZE EQU 0x00100000 ; 1MB per bank in MemoryMap arrayBANK_SHIFT EQU 20; Define RAM space f转载 2010-10-08 21:51:00 · 568 阅读 · 0 评论 -
WINCE EBOOT的配置方法
-------------------------------------------------------------------------------------------------------------------------------------- EBOOT是WINCE调试的好工具,在EBOOT上我也走了不少弯路,现将成功的经验与大家分享,希望能给有需要的人一点帮助!---Sunwill.C -----------------------------------------------转载 2010-10-08 21:45:00 · 1765 阅读 · 0 评论 -
wince 中虛擬地址與物理地址的換算(非程序)
MIPS 和 SHX 系列的cpu 物理地址映射由cpu 完成。但x86和arm 系列是通過OEMAddressTable 詳細定義的。以samsung舉例說明換算方法 下面是eboot配置文件中 boot.bib 的配置項,想從中知道eboot sdram 的啟動地址 MEMORY; Name Start Size Type; ------- -------- -------- ---- ARGS 8c020800转载 2010-10-08 13:18:00 · 589 阅读 · 0 评论