bsp开发之驱动开发
驱动程序是可以管理虚拟设备或者物理设备,协议,服务等得软件模块,操作系统仅仅有通过驱动程序才干訪问硬件。针对windows ce开发设备驱动。就是通过platform builder创建一个新的平台,然后依据硬件平台的须要插入或者移除驱动,须要改动的文件有platform.bib,platform.reg。
按载入方式和接口分类,基于windows ce的驱动程序能够分为一下三类:
(1) 本机驱动程序
它是微软开发并由系统直接支持。适用于集成到ce平台的设备。
(2) 流接口驱动程序
流接口驱动程序又称为可安装驱动(Installable Drivers)。它具有较好的可移植性和可扩展性。由设备管理器独立出来管理和统筹。流接口驱动程序我们会在之后的博客中再做介绍。
(3) 混合型驱动程序
同一时候又定制式和流驱动两套程序接口,可是和系统交互仅仅使用流式驱动接口。
谈到驱动,我们不得不提一下中断。
与其它计算机结构一样,当设备须要驱动程序的服务时,基于windows ce.ney的平台要使用中断通知操作系统。Windows ce.net 把中断处理分为两部分:中断服务例行程序(ISR)和中断服务线程(IST)。
(1) ISR
ISR的主要功能就是将一个物理中断映射为一个逻辑中断值。当ISR通知内核一个特定的逻辑中断值时。内核检查内核中断表,将这个逻辑中断映射为一个事件句柄。一个事件就是一个标准的win32同步对象,当一些特定的事件发生时。它作为一个警报时钟唤醒一个线程。这时。内核通过调用win32函数PulseEvent来唤醒特定的正在等待该事件的IST,由IST完毕详细的中断处理工作。
(2) IST
在windows ce的中断机制中,有ist详细处理中断的事务性工作。
当内接到ISR传来的中断标识后,发出一个中断事件,激活一个处于该事件等待状态的一个IST。一段时间后,调度器将调度这个线程工作,处理中断的事物。
bsp开发之驱动开发的更多相关文章
- Agile.Net 组件式开发平台 - 驱动开发示例
首先讲一下概念,此驱动非彼驱动.在Agle.Net中我们将组件规划成两种类型,一种是基于业务的窗体组件,一种是提供扩展功能的驱动组件. 打个比方例如一般系统中需要提供身份证读卡功能,然而市面上有很多种 ...
- Android系统移植与驱动开发
21世纪,Android发展非常迅速,在市场上占有很大的比例,遥遥领先与iOS,很大程度上是因为任何人都可以利用Android的源代码定制完全属于自己的嵌入式开发系统,而不需要向Google交一分钱. ...
- SD card技术了解并WINCE下SDHC驱动开发(updated)
Suumary: 简单介绍了一下SD卡的历史和发展,同时结合MX31 ADS上的WINCE 下SDHC驱动更深入的了解该硬件的一些行为特点. 了解SD card SD是Secure Digital C ...
- 《Linux设备驱动开发具体解释(第3版)》进展同步更新
本博实时更新<Linux设备驱动开发具体解释(第3版)>的最新进展. 2015.2.26 差点儿完毕初稿. 本书已经rebase到开发中的Linux 4.0内核,案例多数基于多核CORTE ...
- linux driver ------ platform模型,驱动开发分析
一.platform总线.设备与驱动 在Linux 2.6 的设备驱动模型中,关心总线.设备和驱动3个实体,总线将设备和驱动绑定.在系统每注册一个设备的时候,会寻找与之匹配的驱动:相反的,在系统每注册 ...
- 《Linux设备驱动开发具体解释(第3版)》(即《Linux设备驱动开发具体解释:基于最新的Linux 4.0内核》)网购链接
<Linux设备驱动开发具体解释:基于最新的Linux 4.0内核> china-pub spm=a1z10.3-b.w4011-10017777404.30.kvceXB&i ...
- 《连载 | 物联网框架ServerSuperIO教程》-4.如开发一套设备驱动,同时支持串口和网络通讯。附:将来支持Windows 10 IOT
1.C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍 <连载 | 物联网框架ServerSuperIO教程>1.4种通讯模式机制. <连载 | 物联网框架Serve ...
- 使用IdleTest进行TDD单元测试驱动开发演练(3) 之 ASP.NET MVC
一.[前言] (1)本文将用到IOC框架Unity,可参照<Unity V3 初步使用 —— 为我的.NET项目从简单三层架构转到IOC做准备>(2)本文的解决方案是基于前述<使用I ...
- 使用IdleTest进行TDD单元测试驱动开发演练(2)
[前言] 1. 有关上篇请参见<使用IdleTest进行TDD单元测试驱动开发演练(1)>,有关本篇用到Entity Framework Code First请参见<使用NuGet助 ...
随机推荐
- 爬虫练习四:爬取b站番剧字幕
由于个人经常在空闲时间在b站看些小视频欢乐一下,这次就想到了爬取b站视频的弹幕. 这里就以番剧<我的妹妹不可能那么可爱>第一季为例,抓取这一番剧每一话对应的弹幕. 1. 分析页面 这部番剧 ...
- ios开发中遇到的文件和字符的问题大总结
我今天遇到的NSString问题 今天遇到一个字符串空指针问题,让我明白了许多 其实我们定义一个NSString * string,其实是定义了一个字符串指针,现在string没有指向任何地方,我们必 ...
- Wannafly挑战赛23 A 字符串
题目描述 小N现在有一个字符串S.他把这这个字符串的所有子串都挑了出来.一个S的子串T是合法的,当且仅当T中包含了所有的小写字母.小N希望知道所有的合法的S的子串中,长度最短是多少. 输入描述: 一行 ...
- Spring,Mybatis,Springmvc框架整合项目(第三部分)
一.静态资源不拦截 第二部分最后显示的几个页面其实都加载了css和js等文件,要不然不会显示的那么好看(假装好看吧),前面已经说了,我们在web.xml中配置了url的拦截形式是/,那么Dispatc ...
- CodeForces 484B 数学 Maximum Value
很有趣的一道题,题解戳这. #include <iostream> #include <cstdio> #include <cstring> #include &l ...
- python基础学习笔记——os模块
#OS模块 #os模块就是对操作系统进行操作,使用该模块必须先导入模块: import os #getcwd() 获取当前工作目录(当前工作目录默认都是当前文件所在的文件夹) result = os. ...
- luogu1879 [USACO06NOV]玉米田Corn Fields
学习位运算 #include <iostream> #include <cstdio> using namespace std; int n, m, dp[15][4105], ...
- NOS跨分区灾备设计与实现
本文来自网易云社区 作者:王健 摘要 NOS(网易对象存储)在实现多机房(杭州机房,北京机房等)部署后,允许一个用户在建桶时选择桶所属机房.在此基础上,我们实现了跨机房的数据复制,进一步实现了跨机房的 ...
- 一丶Python模块之getpass模块
Python模块之getpass模块 Python 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句. getpass模块提供了可移 ...
- system sys,sysoper sysdba 的区别
--===================================== -- system sys,sysoper sysdba 的区别 --========================= ...