WINCE知识点滴

1.CE下同名设备不能大于10

CE5.0中已经没有这个问题了,
以前的版本可以这样做:
只给上层输出一个设备,
然后用一个IOCTL去打开一个个的物理设备
这样就可以做到不受任何限制了


2.MDD与PDD

一个驱动程序通常会被分成硬件相关(PDD)与硬件无关(MDD)层两部分。
当然,这种分层不是必须的,只是采用这种分层以后可以少写很多代码,因为微软提供了很多驱动程序的MDD。即使CE中没有我们所写的驱动程序的样例,采用这种结构以后,当需要写第二个程序时,就可以重用它的代码,就可以提高开发效率。

MDD是提供同类型的设备(比如串口)都会有的功能,这样PDD基本上就只有寄存器操作了。
像串口的中断处理,Read/Write函数,其大部分代码都是在MDD中实现的,
不同的串口实现中只需要提供一些实际操作寄存器的函数


不同的驱动程序,其MDD与PDD的接口不尽相同,
所以,当我们面对一个具体的驱动程序时,需要查帮助弄清楚需要提供哪些函数


3 XXX_Init函数的返回句柄

通常,这个句柄是驱动程序自己保存数据的一个指针,
我们在Init返回时告诉上层程序,以后上层调用其它函数(例如Open)时,
会将这个值传入,这样,我们就可以访问自己的一些私有数据。

当然,也可以返回一个任意的非0值


对于一个设备驱动程序,系统不用的层会有不同的句柄。
我们在XXX_Init中返回的句柄保存在设备管理器中,别的程序中应该是看不到的,
而用CreateFile也会得到一个文件句柄,这个保存在哪我不知道,
但和前者是不一样的。

也就是说不同层的软件所关心的句柄也会不一样


4.DEBUGMSG与RETAILMSG的区别

它们都是输出调试信息用的,
区别是:
DEBUGMSG只在DEBUG版中有效,RELEASE版中它被定义成了NULL
RETAILMSG在DEBUG和RELEASE版中都可以输出,
而且DEBUGMSG可以在运行时刻用DEBUZONE控制要不要输出信息。

在ship build 时,RETAILMSG 和DEBUGMSG都无效


5. 显视屏出现了上下两个桌面,应该是:

屏幕大小设成了只有实际大小的一半(高度).

就是说你屏幕高是600,而你驱动程序中设置的高度是300.

当然,也可以修改程序使其下半部分输出黑色.


6.关于中断处理及I/O空间的访问


一般我们在驱动程序中需用LocalAlloc保留一块存储空间,然后用LocalCopy将I/O端口映射到该地址上,以后就可以访问该保留下来的地址了。
而对中断的处理各种设备不尽相同。如果是一个内置设备(Built In),一般在oalintr.h文件中定义一个新的中断,OAL层中加上对该中断的处理。然后在驱动程序的Init函数中用CreateEvent创建一个事件,调用InterruptInitialize 将定义好的中断与创建的事件相关联,再创建一个线程,在该线程中调用WaitforSingleObject等待该事件,当该设备有中断发生时,这个事件就被触发,WaitforSingleOjbect返回,线程被运行,我们就可以处理该中断。
OAL中所新加的对该中断的处理就是所谓的ISR之内容,而这个线程就是所说的IST

 

转载于:https://www.cnblogs.com/ceblog/archive/2010/07/06/1772382.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/362662.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

English Words and Expressions

Words apprentice 学徒 corny 老套的 obnoxious 作呕的 intermezzo 间奏曲 predate 日期上早于 parenthesis 括号 delimiter 分隔符 utopian 乌托邦 overhyped 过头的 hype 夸张宣传 nascent 新生的 ramifications 分支、结果 intractable 难处理的 empirically 经验上的 shrou…

CSS实战2

1. 鼠标样式 Cursor: pointer 鼠标变成小手 Cursor: default; 小白 Cursor : move; 移动 Cursor : text ; 文本输入 网页布局: 给一个盒子 : 宽度高度 背景 边框 位置 2.border-radius 圆角矩形 border-radius: 7px 7px 7p…

Linux Shell 常用命令与目录分区的学习总结

很早就想根据自己的学习规律和遗忘规律,自己总结一下Linux/Unix系统的Shell命令,一来便于自己时常查询之用,二来也分享于各位博友 Linux shell是系统的用户界面,即命令行。它提供了用户与内核进行交互式操作与控制的接口&#xff…

为数据访问代码编写测试–不测试框架

当我们向数据访问代码编写测试时,是否应该测试其公共API的每种方法? 一开始听起来很自然。 毕竟,如果我们不对所有内容进行测试,那么如何知道我们的代码可以按预期工作呢? 这个问题为我们提供了重要的线索&#xff1…

visual studio 应用场景

转载于:https://www.cnblogs.com/zhangbing12304/p/10894347.html

elementUI-添加自定义图标

elementui的小图标有限,跟UI给的不一样,这个时候咋办呢?百度走起。。。。参考了两篇博主分享的 自定义elementui中的图标 和 建立图标库,这里主要用到第一种 实际中: elementUI导航栏 具体代码: //自定…

富文本wangEditor的批量激活

最近项目中使用了wangEditor这个轻量级的富文本框,由于需求是一个页面中会有多个富文本框同时激活,所以写了个批量激活的jquery方法,分享一下 1 // 激活富文本框2 var wangEditorActive function(){3 var wBoxs $(".editorbox&quo…

Flex调用WebService后的数据处理

如果WebService返回的数据为DataTable或List<>类型&#xff0c;可以在每次读取数据的时候加入断点&#xff0c;然后观察最终生成数据的结构&#xff0c;断点最好加在ResultEvent事件内&#xff0c;因为这个时候才能确保从WebService获取到了数据 下面的例子分别接收从Web…

echarts(一)下载引入,调色盘,[标题、图例组件、坐标轴]

一个简单的例子 1. 下载并引入 &#xff08;1&#xff09;npm install echarts --save &#xff08;2&#xff09;import echarts from echarts //main.js引入echarts 或者在组件中按需引入&#xff0c;查看按需引入的详细模块 <script>// 引入 ECharts 主模块var echa…

P3740 [HAOI2014]贴海报 离散化+线段树

题目描述 Bytetown城市要进行市长竞选&#xff0c;所有的选民可以畅所欲言地对竞选市长的候选人发表言论。为了统一管理&#xff0c;城市委员会为选民准备了一个张贴海报的electoral墙。 张贴规则如下&#xff1a; electoral墙是一个长度为N个单位的长方形&#xff0c;每个单位…

分组,采样和批处理– Java 8中的自定义收集器

在第一篇文章的后续部分&#xff0c;这次我们将编写一些更有用的自定义收集器&#xff1a;用于按给定的标准进行分组&#xff0c;采样输入&#xff0c;批处理和在固定大小的窗口上滑动。 分组&#xff08;计数事件&#xff0c;直方图&#xff09; 假设您有一些项目的集合&…

将G1内的SIM卡联系人导入到GMAIL的联系人中

将G1内的SIM卡联系人导入到GMAIL的联系人中 具体方法是&#xff1a;进入联系人——按下“MENU"键——导入联系人——按下“MENU"键——“全部导入”——“Contact type”下选择“Google"。这样你的SIM联系人就可以导入到你的设备中了&#xff08;联系人后会有“…

Dreamweaver Flash Photoshop网页设计综合应用 (智云科技) [iso] 1.86G​

全书共15章&#xff0c;主要包括网页制作基础、Dreamweaver CC网页制作、Photoshop CC网页图像设计、Flash CC网页动画设计以及综合案例实战5个部分。通过本书的学习&#xff0c;不仅能让读者学会三大软件的基本操作&#xff0c;而且本书中列举的实战案例&#xff0c;还可以让读…

element解决表格错位问题

https://www.jianshu.com/p/de922caf337c https://blog.csdn.net/qq_15385627/article/details/81700731 保留默认参数&#xff1a; https://segmentfault.com/q/1010000017831798/a-1020000017841050 解决element表格错位 /*解决表格错位&#xff0c;必须加在index.html或APP…

margin和text-align实现水平居中的区别

1.首先text-align只应用于内联块和内联元素 text-align影响的是元素中的文本内容的对其方式&#xff08;默认是left&#xff0c;设置为center时水平居中&#xff09; 所以&#xff0c;将text-align设置为center时&#xff0c;只有当应用于块级元素并且元素内容为文本时&#xf…

如何使用示例从Java中的类路径加载资源

Java中的类路径不仅用于加载.class文件&#xff0c;而且还可以用于加载资源&#xff0c;例如属性文件&#xff0c;图像&#xff0c;图标&#xff0c;缩略图或任何二进制内容。 Java提供了API来将这些资源读取为InputStream或URL。 假设您在项目的config文件夹中有一个属性文件 …

Ext 3.0 +ASP.NET2.0 可视化开发介绍

Ext Designer 总算出来了&#xff01;&#xff01;&#xff01;基于Web的应用开发终于可以可视化开发了&#xff0c;而且可以几乎不敲1行代码。 准备工具&#xff1a; &#xff08;1&#xff09;Ext Designer 1.0.2 &#xff08;2&#xff09;Visual Studio 2005 第一步&#x…

收集五款常用的HTML编辑软件

HTML&#xff08;HyperText Mark-up Language&#xff09;即超文本标记语言或超文本链接标示语言&#xff0c;是目前网络上应用最为广泛的语言&#xff0c;也是构成网页文档的主要语言。HTML文本是由HTML命令组成的描述性文本&#xff0c;HTML命令可以说明文字、图形、动画、声…

创建vue项目(一)搭建vue-cli、项目文件介绍、简单配置

记录一下 拉取项目时 npm run dev 报错 输入&#xff1a;npm rebuild node-sass 再重新 npm run dev 如果不能解决&#xff0c;请看这里 一、搭建vue-cli vue create 项目名称? Please pick a preset: > default (babel, eslint) //默认 > Manually select features …

JPA / Hibernate实体状态转换的初学者指南

介绍 Hibernate将开发人员的思维方式从SQL语句转移到实体状态转换。 一旦实体由Hibernate主动管理&#xff0c;所有更改将自动传播到数据库。 操作域模型实体&#xff08;及其关联&#xff09;比编写和维护SQL语句容易得多。 如果没有ORM工具&#xff0c;则添加新列需要修改所…