Android深度探索--第八章读后感

在这一章中,我们得知了Linux内核提供了多个与I/O内存交互的函数,比如ioread16、ioread32、iowrite16、iowrite32等,Linux内核的内存管理模块负责同步I/O内存与硬件中的数据。

每一个连接Linux的硬件在I/O内存中都会有映射地址。由于LED驱动只能在S3C开发板上安装,因此build,sh 脚本直接执行了build_s3c6410.sh脚本文件进行编译和安装,并不会出现像第六章那样的要求用户选择在Ubuntu Linux 、Android 模拟器还是S3C开发版对应的Linux内核上编译,但如果同时连接了Android设备或启动了Android模拟器。还是会让用户选择向那个设备中上传,请选择S3C开发板,否则即使成功上传,也会用于Linux内核版本的问题无法安装成功。

多个Linux设备文件可以拥有同一个主设备号。但两个设备的主设备号和次设备号不能都一样。在使用alloc_chrdev_region函数自动分配设备号时,baseminor和count参数不要设置得太大,否则次设备号就会溢出,并且主设备号会进位,从而变成了下一个主设备号。

LED驱动书在书中第一个真正和硬件傲娇到的Linux驱动,虽然led 驱动并不复杂,知识控制了四个LED但是LED驱动已经包括了Linux驱动所有必要的部分。_

时间: 2024-08-10 21:29:27

Android深度探索--第八章读后感的相关文章

Android深度探索第八章总结

学习第八章,也就是蜂鸣器驱动的知识是为了掌握Linux驱动常用的代码重用方式.Linux的代码重用.强行卸载Linux驱动.蜂鸣器(PWM)驱动.编译是由多个文件组成的Linux驱动,代码重用分为静态和动态两种,静态重用方式是代码级的重用,也就是将需要重用的代码和使用这些代码的使用者放在一起进行编译,最终生成一个可执行文件或程序库..Linux驱动模块的依赖(导出符号),另外一种代码共享的方式:模块依赖,也称为导出符号.在一个驱动模块里使用另一个驱动模块里被导出的符号(常量.变量.函数等).强行

Android深度探索第二章读后感

这章主要讲述了 Ubuntu Linux环境下的Android开发环境的配置.这是我在互联网上找到的配置过程联系书上的介绍完成的步骤 一.JDK 下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html 目前最新版本:jdk-8-linux-x64.tar.gz 使用“tar -zxvf”解压后,假设解压后主目录为“/home/szyzln/jdk1.7.0_51” 1.sudo gedit /etc/prof

Android深度探索--第一章读后感

第一章主要讲了Linux驱动和AndroidHAl的基础知识.首先介绍了Android系统构架分为四层,Linux内核.C/C++代码库.Android SDK API.应用程序.了解这四层是Android系统移植的前提,Android系统移植是指让Android操作系统在某一个特定硬件平台上运行.并且Linux有一个很大的好处,就是Linux内核本身支持很多常用的CPU构架,因此,将Android在不同的CPU构架之间移植并不用做过多的改动.在移植的过程中,除了要移植CPU构架以外,最重要的还

Android深度探索--第二章读后感

第二章中,在目标开发中和Android模拟器上测试驱动时,需要执行shell.h 脚本文件或 adb shell 命令进入相应平台的终端,在shell.h脚本在/root /drivers 目录之中.在这里讲的脚本文件都是使用insmod命令安装Linux驱动的,除了该命令意外,使用modprobe命令也是可以安装Linux驱动.Insmod和modprobe 的区别是modprobe命令可以检查驱动模块的依赖性.对于一个Linux驱动程序,一开始可以在Ubuntu Linux上做前期开发和测试

Android深度探索——第八章读书笔记及心得

蜂鸣器驱动 ——第8章读书笔记及心得 通过本章的学习,学会了pwm的驱动实验,知道了蜂鸣器实现的原理.蜂鸣器是开发板上的一个硬件设备,可以通过向寄存器写入特定的值来控制蜂鸣器发出尖叫声.本实验将linux驱动区分成了多个实现文件.学会了编写Makefile文件.知道了linux驱动模块的依赖.通过实验学会了linux驱动常用的代码重用方式及强行卸载linux驱动的方法. 在C语言中编译多个源代码文件时,如果a.c使用了b.c文件中的函数,需要在a.c文件中使用extern预先定义b.c中的函数,

Android深度探索第八章

C或C++语言中编译多个源代码文件时,如果a.c使用了b.c文件中的函数,需要在a.c文件中使用extern预先定义b.c中的函数,extern的作用就是告诉编译器该函数的函数名.参数个数.参数类型和返回值类型.这些信息对于将a.c编译成a.o已经足够了.等到将a.o,b.o链接成可执行的文件或程序库时,编译器再到b.o中寻找函数的具体实现.也就是说,extern只在编译阶段起作用.除此之外,还可以使用b.h中定义b.c中的函数,然后在a.c中包含b.h文件.对于有些C/C++编译器,可以省略e

Android深度探索(卷一)HAL与驱动开发 第八章

通过学习Android深度探索(卷一)HAL与驱动开发的第八章让我知道了如何让开发板发出声音,如何编写蜂鸣器的驱动程序.了解了Linux驱动的代码重用,代码重用分为静态和动态两种. Linux驱动的代码重用有很多方法,可以采用标准C程序的方式,将重要代码的代码放在其他的文件中,如果要使用某些功能,include相应的头文件即可,这种方式称为静态重用,另外一种动态重用方式就是一个Linux驱动可以使用另一个Linux驱动中的资源. 如果在模拟器或开发板上采用动态装载.ko文件的方式测试Linux驱

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