Android深度探索--HAL与驱动开发第八章读后感

本章介绍蜂鸣器的实现原犁,并实现一个完整的蜂呜器驱动(可以打开和关闭蜂鸣器),蜂鸣器也称为PWM脉冲宽度调制,基本原理就是通过脉冲来控制蜂鸣器的打开和停止。蜂鸣器是开发板上带的一个硬件设备,可以通过向寄存器写入特定的值来控制蜂鸣器发出的声音。

在完成过程中,首先完成的是linux驱动的代码重用,首先是编译由多个文件组成的linux驱动,并生成ko文件,最后makefile文件。然后进行驱动模块的依赖,即在一个驱动模块里使用另一个驱动模块里的背到处的符号。

通过有I/O命令可以打开和停止排位PWM,PWM驱动由三个文件组成,pwm.c驱动主程序,pwm_fun.h相应头文件,pwm_fun.c包含了打开和停止PWM的两个函数。首先进入/root/drivers/ioctl执行build.h脚本文件编译和上传ioctl,在测试前先要编译和安装PWM驱动,然后进入开发板终端的/data/local打开和停止PWM。

PWM时驱动的实现方式不同于LED 驱动,PWM 驱动将由多个文件组成。这也是大多数Linux 驱动的标准实现方式。在编译 Linux 驱动时将这些文件进行联合编译。本节将介绍把 Linux 驱动分成多个文件的方式。这些文件中的数据结构、函数的代码也可以被多个不同的驱动使用,所以这也是代码重用的重要方法。 PWM 驱动与 LED 驱动的实现流程类似,可能还要简单一些。在本章只是为了演示如何将一个 Linux 驱动分成多个实现文件,才使用了比较简单的 PWM 驱动。

PWM驱动与LED类似,可能还要简单一些,这章使用PWM驱动主要是为了更为简单一下的将一个Linux驱动分为多个实现文件,通过本章学习,也进一步掌握了代码重用方法和强行卸载Linux驱动的方法,可以不用在不断的重启机器了。

时间: 2024-12-21 03:29:02

Android深度探索--HAL与驱动开发第八章读后感的相关文章

Android深度探索--HAL与驱动开发第一章读后感

第一章:Android系统移植与驱动开发概述 第一章其实就是对安卓与Linux驱动做了一个总体的介绍. 现如今,Android已经成为现在智能手机操作系统的老大,市场占有率已经远远超过iOS,主要的原因主要在于Android的可移植,所有人都可以利用Android的源代码制作属于自己的系统,而且Android的体系结构也近乎完美.但在移植过程中进行最多开发的就是支持各种硬件设备Linux的驱动程序,所以讲移植必定先讲Liunx驱动开发. Android的体系结构主要由Linux内核.C/C++代

Android深度探索--HAL与驱动开发第十章读后感

嵌入式linux的调试技术,对于复杂的linux驱动及HAL等程序库,需要使用各种方法进行调试,如设置断点,逐步跟踪代码,输出调试信息等.本章主要介绍如何利用开发板.android模拟器以及一些函数.工具调试嵌入式linux内核模块.可执行文件和共享库. Printk函数的用法与printf函数类似,只不过printk函数运行在内核空间,printf函数运行在用户空间.也就是说,像Linux驱动这样的Linux内核程序只能使用printk函数输出调试信息.Printk函数在printk.c文件中

Android深度探索--HAL与驱动开发----第八章读书笔记

通过蜂鸣器的实现原理,实现一个完整的蜂呜器驱动,可以打开和关闭蜂鸣器. PWM驱动的实现方式不同于LED驱动, PWM 驱动将由多个文件组成.这也是大多数 Linux 驱动的标准实现方式. 刚开始是LED驱动的代码重用,Linux 驱动的代码重用有很多种方法.可以采用标准 C程序的方式.将要重用的代码放在其他 的文件 (在头文件中声明〉中. 如果要使用某些功能, include 相应的头文件即可〈这种方式称为 静态重用〉.也可以使用另外一种动态重用的方式,也就是一个 Linux 驱动可以使用另外

Android深度探索--HAL与驱动开发第二章读后感

第二章:搭建Android开发环境 这章主要讲解Android底层开发环境如何搭建,有Android应用程序开发环境.交叉编译环境和NDK开发环境. Android底层开发主要需要配置Linux驱动的开发环境.配置Android应用程序和Android NDK开发环境,而且还需要Liunx驱动及调试开发板进行辅助和测试.主要需要以下工具: JDK6或以上版本: Eclipse3.4或以上版本: ADT(用于开发Android应用程序): CDT(用于开发Android NDK程序): Andro

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

第八章主要以MyMap服务系统为实例,介绍Android Google Map.Android定位服务.案例重构,采用Java开发GPS与Google Map定位应用程序. Android Google Map:Google地图是Google公司提供的电子地图服务,有3种视图:矢量地图(可提供行政区.交通及商业信息).不同分辨率的卫星照片.地形视图(用以显示地形和等高线). 申请Google Map Android API Key:找到创建keystore证书文件.生成MD5认证指纹.编写Goo

Android深度探索HAL与驱动开发 第四章

Android深度探索HAL与驱动开发 第四章 源代码的下载和编译 读书笔记 一.下载编译和测试Android源代码 1.配置Android源代码下载环境 创建一个用于存放下载脚本文件的目录(可将该文件放到任何一个目录在这里使用-/bin) # mkdir ~/bin # PATH=~/bin:$PATH 2.下载repo脚本文件(用于下载Android源代码) # curl htttps://dl-ssl.google.com/dl/googlesource/git-repo/repo> ~/

Android深度探索HAL与驱动开发 第三章

Android深度探索HAL与驱动开发 第三章 Git使用入门 读书笔记 Git是对源代码进行管理的软件. 一.安装Git # apt-get install git # apt-get install git-doc git-emall git-gui gitk 用以下命令控制Git: # apt-get install git-core # apt-get install git-doc git-svn git-email git-gui gitk 二.查看Git文档 查看git-check

Android深度探索HAL与驱动开发 第二章

Android深度探索HAL与驱动开发 第二章 搭建Android开发环境 读书笔记 一.Android底层开发需要的工具 1.JDK6或以上版本 2.Eclipse3.4或以上版本 3.ADT(用于开发Android的应用程序) 4.CDT(用于开发Android NDK程序) 5.Android SDK 6.Android NDK 7.交叉编译环境 8.Linux内核源代码 9.Android源代码 10.用于调试开发板的串口工具:minicom 二.安装JDK 下载JDK后在终端输入 #

Android深度探索HAL与驱动开发 第四章 源代码下载和编译

前面说过Android移植主要就是Linux内核的移植,而Linux内核移植主要是Linux驱动的移植,所以为了开发和测试Linux驱动,有必要学习在Ubuntu Linux下如何搭建两套开发环境:Android应用程序开发环境和Linux内核开发环境.Linux内核开发环境的搭建是重点中的重点.下面根据书上的内容和网上的资料写出了步骤: (1)配置Android源代码下载环境: (2)Android源代码目录分别存放了Android源代码的不同子项目 (3)下载Android源代码中的一部分两