CourseIntroduction课件解析.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* 摘自《大话处理器》 * 支持VS2008 VS2008编程,像PC一样编程 * 控制硬件的动作都放到了 Android HAL中,而linux driver仅仅完成一些简单的数据交互作用,甚至把硬件寄存器空间直接映射到user space 第一层次? 底层驱动层,包括标准Linux,Android核心驱动,Android相关设备驱动,G-sensor的设备驱动程序即存在于此 第二层次 Android标准C/C++库,包括硬件抽象层,Android各底层库,本地库,JNI 第三层次 Android Java Framwork框架层 第四层次 Java应用程序 * 目前世界上大约有四、五十种实时操作系统,大部分出自美国,真正的主流实时操作系统只有十来家,如 LynxOS、 VRTX、 PSOS+、QNX、VxWorks等。其中 VxWorks以其卓越的性能在当今的实时操作系统中占据了重要的位置。它具有小巧的内核、高度的可剪裁性、友好的交叉开发环境等优点。 特点:分布式编程 * WINOOWs?Driver?Model?(WDM)驱动程序是一种PnP(即插即用)驱动程序,它同时还遵循电源管理协议,并能在WINOOWs?98,WINOOWs?2000和WINOOWs?XP间实现源代码级兼容。在WDM驱动程序模型中,每个硬件设备至少有两个驱动程序。其中一个驱动程序称为功能驱动程序,负责初始化I/O操作,处理I/O操作完成时带来的中断事件,并为用户提供一种连接设备的控制方式;另一驱动程序称为总线驱动程序,它负责管理硬件与计算机连接 PDO(物理设备对象):设备对象中的物理型对象。 FDO(功能设备对象):设备对象中的功能型对象。 FiDO(过滤器设备对象):在I/O管理器、FDO和PDO间的监视、修改IRP流的过滤型对象,分上层过滤和下层过滤对象。 * 开发驱动程序的软件很多,如NuMega公司的DriverStudio、Jungo公司的WinDriver和Microsoft公司的DDK等。在使用中,虽然利用DDK开发的驱动程序代码非常简洁,结构清晰,效率也高,但是开发难度较大。利用DriverStudio、WinDriver等第三方开发工具则使用简单,开发速度较快。 DriverWizard是DriverWorks创建WDM框架程序的工具。在创建一个PCI设备的WDM驱动程序框架时,共有十一步,其中以下几点需特别注意:   (1)第四步:选择硬件设备所支持的总线类型,比如选PCI中有PCI?Vendor?ID、PCI?Device?ID、PCI?Subsystem?ID和PCI?Revision?ID,这些参数可以从硬件生产厂家得到;   (2)第六步:选择驱动程序支持的功能项,选中Read、Write、Device?IO?Control和Clean?up四个复选框;   (3)第七步:选择I/O请求IRP处理的方式,选择DriverManaged,由驱动程序管理的StartIO处理排队队列,并选择读写请求分别进行排队队列处理;   (4)?第九步:选择设备文件中的类名和接口类型,类名通常取默认值,选择GUID接口方式作为应用程序打开设备的方式。在资源栏中分别点击Add?IO?Port?(s)、Add?Memory?Range.?.?.和Add?IRQ.?.?.声明所需的资源。   (5)?第十一步:为了调试方便和更好地了解WDM驱动程序的运行过程,选择让系统生成设备的测试程序和用SoftICE调试的跟踪代码?(Trace?Code)。   DriverWizard生成了两个类:一个是驱动程序文件中的类,主要完成WDM的DriverEntry和AddDevice例程;另一个是设备文件中的类,主要完成与硬件交互的例程。 设备驱动程序与设备关系:同类中成员函数与类实例关系。 * 水煮鱼见过的 Linux 驱动程序员,薪水在万元以下的,一个都没有 ---摘自网络 * 硬件抽象层通过例如open(), read(), write(), ioctl(), poll()等函数调用的方式,与底层设备驱动程序进行交互; 用于交互的关键是文件描述符fd,fd通过open()打开G-sensor设备节点而得到,即 fd = open (“/dev/bma220”, O_RDONLY);而/dev/bma220这个设备节点是在底层设备驱动中注册完成的。 JNI层实现从C++语言到Java语言的转换 Framework层提供各种类和类的对象,可作为系统的守护进程运行,也可供上层应用程序的使用,例如类SensorManager,它作为系统的守护进程在初始化的时候开始运行,其子类SensorThre

文档评论(0)

南非的朋友 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档