码迷,mamicode.com
首页 > 移动开发 > 详细

Android深度探索HAL与驱动开发-——第8章

时间:2016-07-06 23:14:51      阅读:243      评论:0      收藏:0      [点我收藏+]

标签:

第8章:

  本章主要讲了蜂鸣器的实现原理,实现完整的蜂鸣器驱动。主要用到的是pwm驱动,pwm由多个文件组成。          
  首要介绍的是Linux驱动代码的重用。编译是由多个文件组成的Linux驱动。两个完整的linux驱动是word_count和led驱动,都是由一个源代码文件组成(.c)。但对于复杂的linux驱动需要使用多个源代码文件存放不同功能代码,最终生成ko文件或linux内核。
   接着是Linux驱动模块依赖。代码重用分为静态和动态,在该节中介绍了模块依赖即为导出符号:在一个驱动模块里使用另一个驱动模块里的被导出的符号。在Linux驱动中使用到两个宏导出函数,分别为export_symbol和export_symbol_gpl。由于存在两个Linux驱动所以需要在makefile文件中指定两个linux模块,在卸载两个linux驱动顺序时要先卸载symbol_consumer再卸载symbol_producer。
  再者是在出现异常情况下卸载Linux驱动。初始化函数崩溃、卸载函数被阻塞。蜂鸣器驱动原理是通过脉冲来控制蜂鸣器打开和停止。(pwm)pwm使用端口F的GPFCON寄存器进行控制。该寄存器在linux内核中对应的宏是S3C64XX_GPFCON。该宏表示GPFCON寄存器的虚拟地址。测试蜂鸣器:使用到ioctl,先进入/root/drivers/ioctl目录,执行build.sh脚本文件编译和上传ioctl文件。在测试pwm驱动之前先要编译和安装pwm驱动,然后进入开发板终端的/data/local目录,打开pwm。

 

Android深度探索HAL与驱动开发-——第8章

标签:

原文地址:http://www.cnblogs.com/chengqian95/p/5648242.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!