wince驱动开发
文章平均质量分 77
勇敢飞
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
OEMAddressTable介绍
<br />一般在ARM架构的CPU上,物理地址都是统一编址的,寻址空间为4GB(32Bit CPU)。也就是说,针对一个ARM的处理器,它可以访问的物理空间是4GB。在WinCE中,ARM中的4GB物理地址空间将被映射为512MB的虚拟内存空间。 OEMAddressTable就是一个4GB物理地址空间到WinCE Kernel中的512MB虚拟地址空间的映射表。<br />在BSP中,会定义OEMAddressTable来描述系统中可访问的物理空间及对应的虚拟地址空间,还有大小。这个表会在WinCE系统转载 2011-05-12 11:09:00 · 441 阅读 · 0 评论 -
windowsCE异常和中断服务程序初探
<br />1。中断/异常相量的装入和执行方式。 <br /> 中断和异常都是异步发生的事件,当该事件发生,系统将停止目前正在执行的代码转而执行事件响应的服务程序。而事件服务程序的入口点就是中断/异常向量所在的位置。arm的中断向量可以是0x0开始的低地址向量,也可以是在FFFF0000位置的高向量地址。winCE下使用高地址作为trap区,所以在CE下arm使用高地址向量。下面我们来了解一下中断/异常向量的安装和执行过程。 <br /> 在kernelStart的过程中通过程序将如下转载 2011-05-12 12:36:00 · 461 阅读 · 0 评论 -
WinCE中中断的处理过程(驱动开发人员角度)
<br /><br />中断是硬件与软件打交道的重要方法,因此,大多数驱动程序都涉及到对中断的处理,本文就驱动程序的开发人员以及BSP的开发人员的角度,来谈谈Windows CE中中断的处理过程。<br />如果一个驱动程序要处理一个中断,那么驱动程序需要首先建立一个事件,可以使用CreateEvent函数,然后调用InterruptInitialize将该事件与中断号绑定,这一步就会使能该中断,OAL中的OEMInerrupteEnable就会被调用,如果该函数不返回true的话,InterruptIni转载 2011-05-12 12:35:00 · 454 阅读 · 0 评论 -
分析三星5.0BSP中断
<br />看三星的5.0中断,看的一头雾水,相当郁闷。现在重新理清一下。<br />sontitan牛人也指示过一些。<br />引用楼主 wangxin_801115 的帖子:<br />请问这两个函数KernelIoControl和InterruptInitialize函数的区别是什么呢?? <br />个人理解:先用KernelIoControl申请中断号 <br /> 然后利用InterruptInitialize把 (从KernelIoControl申请的)中断号与事件相关联转载 2011-05-12 12:04:00 · 1824 阅读 · 0 评论 -
如何开发一个WinCE 6的流设备驱动
<br />•在BSP的Drivers目录下,创建新驱动程序的目录,比如MyDriver<br />•修改dirs文件,在变量DIRS中增加新目录MyDriver<br />•创建文件Sources,内容如下:<br />view plaincopy to clipboardprint?<br />01.TARGETNAME=MyDriver <br />02.RELEASETYPE=PLATFORM <br />03.TARGETTYPE=DYNLINK <br />04.DEFFILE=M转载 2011-05-12 14:31:00 · 662 阅读 · 0 评论 -
中断使能、禁止程序——之oem.c程序分析
<br />刚才看了何宗健老师的书,在5.0BSP中,在系统启动阶段,除了时钟中断以外,其他中断都是关闭的。在加载驱动的时候,驱动程序负责加载自己所用到的驱动,方法是调用InterruptInitialize。真正工作的是OEMInterruptEnable而这个函数又调用OALIntrEnableIrqs函数。<br />现在让我们一步一步来看代码分析。<br />首先看InterruptInitialize----------奇怪了,在4.2中的驱动中能找到这个函数被调用,5.0下的却不行。哎怎么回事?转载 2011-05-12 12:05:00 · 557 阅读 · 0 评论 -
wince源码分析中断之map.c
<br />//------------------------------------------------------------------------------ <br />// <br />// Function: OALIntrStaticTranslate <br />// <br />// This function sets static translation between IRQ and SYSINTR. In most <br />// cases it should转载 2011-05-12 12:01:00 · 405 阅读 · 0 评论 -
S3C2440 TFT LCD驱动程序编程要点
<br />1、打开LCD背光<br />将LCD背光对应的GPIO设置为禁止上拉(GPxUP相应位写入1),选择output类型(GPxCON相应位写入01),输出为高电平(GPxDAT相应位写入1)。<br /><br />2、打开LCD电源<br />可以将GPG4选择为LCD_PWREN(GPGCON:9-8写入11),这时候LCD电源的打开/关闭可以通过LCDCON5:3来控制。<br />也可以自定义其他GPIO用作LCD电源开关,只需将此GPIO设置为禁止上拉(GPxUP相应位写入1),选择o转载 2011-05-13 10:18:00 · 752 阅读 · 0 评论 -
Windows CE下操作GPIO的方法(以ARM9 S3C2410为例)
<br />GPIO 是ARM芯片最基本的输入输出通道,在ADS下操作就是一个单片机工作,直接读写其寄存器。在ARM9平台上,Windows CE系统将GPIO的实地址(例如2410的GPIO的基地址为0x56000000)映射到虚拟地址空间(GPIO对应为0xB1600000),这样,通过对这段虚拟地址空间的操作,就能够完成对GPIO或者其他片内资源的控制、输入输出工作。<br />要操作一个平台的GPIO,在其对应BSP中按照基地址,找到虚拟地址,并且找到方便操作这个地址的数据结构就可以了,关键函数就是转载 2011-05-12 13:16:00 · 475 阅读 · 0 评论 -
中断代码结构比较之WinCE4.2 VS WinCE5.0
<br />现在项目要从wince4.2下port到wince5.0下,今天将sd卡的驱动加到wince5下。用的是现有的也就是wince4.2下的驱动程序,几个dll文件:SDBusDriver.dll;SDCSDCard.dll;SDMemory.dll。这个工作主要就是将相应的中断加上就好了。 <br /> 下面进入正题。4.2下的中断:InterruptInitialize(具体的驱动中注册中断与事件)->SC_InterruptInitialize(系统的函数,可以根据private/w转载 2011-05-12 12:04:00 · 391 阅读 · 0 评论 -
wince中断体系重要文件nkintr.h分析
<br />首先来看他自己的介绍吧<br />/*++ <br />THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF <br />ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO <br />THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A <br />PARTICU转载 2011-05-12 12:02:00 · 608 阅读 · 0 评论 -
wince5.0中断分析
<br /> 原帖地址http://topic.youkuaiyun.com/u/20071008/11/D54DF4A6-09EF-4D7F-AADB-2F60FF3824FC.html<br />1 WinCE中第一次对中断的处理是在OAL的OEMInit()中,该函数调用OALIntrInit()完成对中断的初始化. <br /><br />2 OALIntrInit()对中断的初始化做了如下工作: <br />2.1 通过配置IPR0-IPR33设置中断优先级,优先级定义在g_IntPriorities和g_I转载 2011-05-12 12:00:00 · 422 阅读 · 0 评论 -
GPIO虚拟地址对应关系说明
<br />GPIO寄存器的读写方法。不过我看了还是很多疑惑,为什么在内存映射表里面这样定义 <br />DCD 0x91600000, 0x56000000, 1 ; I/O Port register <br />而在s2410.h中又会这样#define IOP_BASE 0xB1600000 // 0x56000000 <br />明明定义了是0x91600000却变成了0xB1600000 // 怎么会这样呢?不是说虚拟内训范围只能是0x80000000~0x9fffffff吗? <转载 2011-05-12 11:11:00 · 459 阅读 · 0 评论 -
Windows CE Virtual Memory Layout for Debugging
<br />from:http://blogs.msdn.com/sloh/archive/2005/02/25/380475.aspx<br />Windows CE Virtual Memory Layout for Debugging<br />I want to blog about how to resolve symbols manually, and realized I would have to assume that the reader would understand the CE转载 2011-05-12 13:19:00 · 471 阅读 · 0 评论
分享