社区
内核笔记的课程社区_NO_1
RK3399平台开发入门到精通系列视频
帖子详情
Linux gpio子系统详解和驱动分析
内核笔记
嵌入式领域优质创作者
博客专家认证
2023-11-20 22:43:21
课时名称
课时知识点
Linux gpio子系统详解和驱动分析
GPIO 子系统是 Linux 内核中的一个关键部分,它提供了一个框架,让用户和开发者能够通过文件系统接口来控制系统上的 GPIO 引脚。课程中的学习内容将涵盖 GPIO 子系统的架构、API、操作流程以及如何在内核中配置和管理 GPIO。
...全文
8
回复
打赏
收藏
Linux gpio子系统详解和驱动分析
课时名称课时知识点Linux gpio子系统详解和驱动分析GPIO 子系统是 Linux 内核中的一个关键部分,它提供了一个框架,让用户和开发者能够通过文件系统接口来控制系统上的 GPIO 引脚。课程中的学习内容将涵盖 GPIO 子系统的架构、API
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
基于
linux
系统NEC红外遥控器
驱动
基于
linux
系统,通过一个
gpio
中断,计算上下沿的时间,来解析NEC红外遥控器的
驱动
,然后通过input
子系统
上报按键值。
Android底层开发技术实战
详解
--内核、移植和
驱动
.(电子工业.王振丽).part3
书名:《Android底层开发技术实战
详解
——内核、移植和
驱动
》(电子工业出版社.王振丽)。本书从底层原理开始讲起,结合真实的案例向读者详细介绍了android内核、移植和
驱动
开发的整个流程。全书分为19章,依次讲解
驱动
移植的必要性,何为hal层深入
分析
,goldfish、msm、map内核和
驱动
解析,显示系统、输入系统、振动器系统、音频系统、视频输出系统的
驱动
,openmax多媒体、多媒体插件框架,传感器、照相机、wi-fi、蓝牙、gps和电话系统等。在每一章中,重点介绍了与Android
驱动
开发相关的底层知识,并对Android源码进行了剖析。 本书适合Android研发人员及Android爱好者学习,也可以作为相关培训学校和大专院校相关专业的教学用书。 全书压缩打包成3部分,这是第3部分。 目录: 第1章 Android底层开发基础 1 1.1 什么是
驱动
1 1.1.1
驱动
程序的魅力 1 1.1.2 电脑中的
驱动
2 1.1.3 手机中的
驱动
程序 2 1.2 开源还是不开源的问题 3 1.2.1 雾里看花的开源 3 1.2.2 从为什么选择java谈为什么不开源
驱动
程序 3 1.2.3 对
驱动
开发者来说是一把双刃剑 4 1.3 Android和
Linux
4 1.3.1
Linux
简介 5 1.3.2 Android和
Linux
的关系 5 1.4 简析
Linux
内核 8 1.4.1 内核的体系结构 8 1.4.2 和Android密切相关的
Linux
内核知识 10 1.5
分析
Linux
内核源代码很有必要 14 1.5.1 源代码目录结构 14 1.5.2 浏览源代码的工具 16 1.5.3 为什么用汇编语言编写内核代码 17 1.5.4
Linux
内核的显著特性 18 1.5.5 学习
Linux
内核的方法 26 第2章
分析
Android源代码 31 2.1 搭建
Linux
开发环境和工具 31 2.1.1 搭建
Linux
开发环境 31 2.1.2 设置环境变量 32 2.1.3 安装编译工具 32 2.2 获取Android源代码 33 2.3
分析
并编译Android源代码 35 2.3.1 Android源代码的结构 35 2.3.2 编译Android源代码 40 2.3.3 运行Android源代码 42 2.3.4 实践演练——演示编译Android程序的两种方法 43 2.4 编译Android kernel 47 2.4.1 获取goldfish内核代码 47 2.4.2 获取msm内核代码 50 2.4.3 获取omap内核代码 50 2.4.4 编译Android的
Linux
内核 50 2.5 运行模拟器 52 2.5.1
Linux
环境下运行模拟器的方法 53 2.5.2 模拟器辅助工具——adb 54 第3章
驱动
需要移植 57 3.1
驱动
开发需要做的工作 57 3.2 Android移植 59 3.2.1 移植的任务 60 3.2.2 移植的内容 60 3.2.3
驱动
开发的任务 61 3.3 Android对
Linux
的改造 61 3.3.1 Android对
Linux
内核文件的改动 62 3.3.2 为Android构建
Linux
的操作系统 63 3.4 内核空间和用户空间接口是一个媒介 64 3.4.1 内核空间和用户空间的相互作用 64 3.4.2 系统和硬件之间的交互 64 3.4.3 使用relay实现内核到用户空间的数据传输 66 3.5 三类
驱动
程序 70 3.5.1 字符设备
驱动
程序 70 3.5.2 块设备
驱动
程序 79 3.5.3 网络设备
驱动
程序 82 第4章 hal层深入
分析
84 4.1 认识hal层 84 4.1.1 hal层的发展 84 4.1.2 过去和现在的区别 86 4.2
分析
hal层源代码 86 4.2.1
分析
hal moudle 86 4.2.2
分析
mokoid工程 89 4.3 总结hal层的使用方法 98 4.4 传感器在hal层的表现 101 4.4.1 hal层的sensor代码 102 4.4.2 总结sensor编程的流程 104 4.4.3
分析
sensor源代码看Android api 与硬件平台的衔接 104 4.5 移植总结 116 4.5.1 移植各个Android部件的方式 116 4.5.2 移植技巧之一——不得不说的辅助工作 117 第5章 goldfish下的
驱动
解析 125 5.1 staging
驱动
125 5.1.1 staging
驱动
概述 125 5.1.2 binder
驱动
程序 126 5.1.3 logger
驱动
程序 135 5.1.4 lowmemorykiller组件 136 5.1.5 timed output
驱动
程序 137 5.1.6 timed
gpio
驱动
程序 139 5.1.7 ram console
驱动
程序 139 5.2 wakelock和early_suspend 140 5.2.1 wakelock和early_suspend的原理 140 5.2.2 Android休眠 141 5.2.3 Android唤醒 144 5.3 ashmem
驱动
程序 145 5.4 pmem
驱动
程序 148 5.5 alarm
驱动
程序 149 5.5.1 alarm简析 149 5.5.2 alarm
驱动
程序的实现 150 5.6 usb gadget
驱动
程序151 5.7 Android paranoid
驱动
程序153 5.8 goldfish设备
驱动
154 5.8.1 framebuffer
驱动
155 5.8.2 键盘
驱动
159 5.8.3 实时时钟
驱动
程序160 5.8.4 tty终端
驱动
程序161 5.8.5 nandflash
驱动
程序162 5.8.6 mmc
驱动
程序162 5.8.7 电池
驱动
程序162 第6章 msm内核和
驱动
解析164 6.1 msm基础164 6.1.1 常见msm处理器产品164 6.1.2 snapdragon内核介绍165 6.2 移植msm内核简介166 6.3 移植msm168 6.3.1 makefile文件168 6.3.2
驱动
和组件170 6.3.3 设备
驱动
172 6.3.4 高通特有的组件174 第7章 omap内核和
驱动
解析177 7.1 omap基础177 7.1.1 omap简析177 7.1.2 常见omap处理器产品177 7.1.3 开发平台178 7.2 omap内核178 7.3 移植omap体系结构180 7.3.1 移植omap平台180 7.3.2 移植omap处理器183 7.4 移植Android专用
驱动
和组件188 7.5 omap的设备
驱动
190 第8章 显示系统
驱动
应用195 8.1 显示系统介绍195 8.1.1 Android的版本195 8.1.2 不同版本的显示系统195 8.2 移植和调试前的准备196 8.2.1 framebuffer
驱动
程序196 8.2.2 硬件抽象层198 8.3 实现显示系统的
驱动
程序210 8.3.1 goldfish中的framebuffer
驱动
程序210 8.3.2 使用gralloc模块的
驱动
程序214 8.4 msm高通处理器中的显示
驱动
实现224 8.4.1 msm中的framebuffer
驱动
程序225 8.4.2 msm中的gralloc
驱动
程序227 8.5 omap处理器中的显示
驱动
实现235 第9章 输入系统
驱动
应用239 9.1 输入系统介绍239 9.1.1 Android输入系统结构元素介绍239 9.1.2 移植Android输入系统时的工作240 9.2 input(输入)
驱动
241 9.3 模拟器的输入
驱动
256 9.4 msm高通处理器中的输入
驱动
实现257 9.4.1 触摸屏
驱动
257 9.4.2 按键和轨迹球
驱动
264 9.5 omap处理器平台中的输入
驱动
实现266 9.5.1 触摸屏
驱动
267 9.5.2 键盘
驱动
267 第10章 振动器系统
驱动
269 10.1 振动器系统结构269 10.1.1 硬件抽象层271 10.1.2 jni框架部分272 10.2 开始移植273 10.2.1 移植振动器
驱动
程序273 10.2.2 实现硬件抽象层274 10.3 在msm平台实现振动器
驱动
275 第11章 音频系统
驱动
279 11.1 音频系统结构279 11.2
分析
音频系统的层次280 11.2.1 层次说明280 11.2.2 media库中的audio框架281 11.2.3 本地代码284 11.2.4 jni代码288 11.2.5 java代码289 11.3 移植audio系统的必备技术289 11.3.1 移植audio系统所要做的工作289 11.3.2
分析
硬件抽象层290 11.3.3
分析
audioflinger中的audio硬件抽象层的实现291 11.4 真正实现audio硬件抽象层298 11.5 msm平台实现audio
驱动
系统298 11.5.1 实现audio
驱动
程序298 11.5.2 实现硬件抽象层299 11.6 oss平台实现audio
驱动
系统304 11.6.1 oss
驱动
程序介绍304 11.6.2 mixer305 11.7 alsa平台实现audio系统312 11.7.1 注册音频设备和音频
驱动
312 11.7.2 在Android中使用alsa声卡313 11.7.3 在omap平台移植Android的alsa声卡
驱动
322 第12章 视频输出系统
驱动
326 12.1 视频输出系统结构326 12.2 需要移植的部分328 12.3
分析
硬件抽象层328 12.3.1 overlay系统硬件抽象层的接口328 12.3.2 实现overlay系统的硬件抽象层331 12.3.3 实现接口332 12.4 实现overlay硬件抽象层333 12.5 在omap平台实现overlay系统335 12.5.1 实现输出视频
驱动
程序335 12.5.2 实现overlay硬件抽象层337 12.6 系统层调用overlay hal的架构342 12.6.1 调用overlay hal的架构的流程342 12.6.2 s3c6410 Android overlay的测试代码346 第13章 openmax多媒体框架349 13.1 openmax基本层次结构349 13.2
分析
openmax框架构成350 13.2.1 openmax总体层次结构350 13.2.2 openmax il层的结构351 13.2.3 Android中的openmax354 13.3 实现openmax il层接口354 13.3.1 openmax il层的接口354 13.3.2 在openmax il层中需要做什么361 13.3.3 研究Android中的openmax适配层361 13.4 在omap平台实现openmax il363 13.4.1 实现文件364 13.4.2
分析
ti openmax il的核心365 13.4.3 实现ti openmax il组件实例368 第14章 多媒体插件框架373 14.1 Android多媒体插件373 14.2 需要移植的内容374 14.3 opencore引擎375 14.3.1 opencore层次结构375 14.3.2 opencore代码结构376 14.3.3 opencore编译结构377 14.3.4 opencore oscl381 14.3.5 实现opencore中的openmax部分383 14.3.6 opencore的扩展398 14.4 stagefright引擎404 14.4.1 stagefright代码结构404 14.4.2 stagefright实现openmax接口405 14.4.3 video buffer传输流程409 第15章 传感器系统415 15.1 传感器系统的结构415 15.2 需要移植的内容417 15.2.1 移植
驱动
程序417 15.2.2 移植硬件抽象层418 15.2.3 实现上层部分419 15.3 在模拟器中实现传感器424 第16章 照相机系统430 16.1 camera系统的结构430 16.2 需要移植的内容433 16.3 移植和调试433 16.3.1 v4l2
驱动
程序433 16.3.2 硬件抽象层441 16.4 实现camera系统的硬件抽象层446 16.4.1 java程序部分446 16.4.2 camera的java本地调用部分447 16.4.3 camera的本地库libui.so448 16.4.4 camera服务libcameraservice.so449 16.5 msm平台实现camera系统454 16.6 omap平台实现camera系统457 第17章 wi-fi系统、蓝牙系统和gps系统459 17.1 wi-fi系统459 17.1.1 wi-fi系统的结构459 17.1.2 需要移植的内容461 17.1.3 移植和调试461 17.1.4 omap平台实现wi-fi469 17.1.5 配置wi-fi的流程471 17.1.6 具体演练——在Android下实现ethernet473 17.2 蓝牙系统475 17.2.1 蓝牙系统的结构475 17.2.2 需要移植的内容477 17.2.3 具体移植478 17.2.4 msm平台的蓝牙
驱动
480 17.3 定位系统482 17.3.1 定位系统的结构483 17.3.2 需要移植的内容484 17.3.3 移植和调试484 第18章 电话系统498 18.1 电话系统基础498 18.1.1 电话系统简介498 18.1.2 电话系统结构500 18.2 需要移植的内容501 18.3 移植和调试502 18.3.1
驱动
程序502 18.3.2 ril接口504 18.4 电话系统实现流程
分析
507 18.4.1 初始启动流程507 18.4.2 request流程509 18.4.3 response流程512 第19章 其他系统514 19.1 alarm警报器系统514 19.1.1 alarm系统的结构514 19.1.2 需要移植的内容515 19.1.3 移植和调试516 19.1.4 模拟器环境的具体实现518 19.1.5 msm平台实现alarm518 19.2 lights光系统519 19.2.1 lights光系统的结构520 19.2.2 需要移植的内容521 19.2.3 移植和调试521 19.2.4 msm平台实现光系统523 19.3 battery电池系统524 19.3.1 battery系统的结构524 19.3.2 需要移植的内容526 19.3.3 移植和调试526 19.3.4 在模拟器中实现电池系统529
Linux
驱动
GPIO
子系统
1、韦老师依然延续一贯的教学风格,现场写代码,现场调试BUG,将
GPIO
子系统
彻底讲透,成为嵌入式
Linux
驱动
的“字典”。2、
Linux
驱动
是
驱动
框架和硬件编程的结合,使用QEMU简化硬件操作,支持IMX6ULL、STM32MP157,提高实战经验。3、0基础学习,深入浅出,注重底层逻辑,学会举一反三。
Android底层开发技术实战
详解
--内核、移植和
驱动
.(电子工业.王振丽).part1
书名:《Android底层开发技术实战
详解
——内核、移植和
驱动
》(电子工业出版社.王振丽)。本书从底层原理开始讲起,结合真实的案例向读者详细介绍了android内核、移植和
驱动
开发的整个流程。全书分为19章,依次讲解
驱动
移植的必要性,何为hal层深入
分析
,goldfish、msm、map内核和
驱动
解析,显示系统、输入系统、振动器系统、音频系统、视频输出系统的
驱动
,openmax多媒体、多媒体插件框架,传感器、照相机、wi-fi、蓝牙、gps和电话系统等。在每一章中,重点介绍了与Android
驱动
开发相关的底层知识,并对Android源码进行了剖析。 本书适合Android研发人员及Android爱好者学习,也可以作为相关培训学校和大专院校相关专业的教学用书。 全书压缩打包成3部分,这是第1部分。 目录: 第1章 Android底层开发基础 1 1.1 什么是
驱动
1 1.1.1
驱动
程序的魅力 1 1.1.2 电脑中的
驱动
2 1.1.3 手机中的
驱动
程序 2 1.2 开源还是不开源的问题 3 1.2.1 雾里看花的开源 3 1.2.2 从为什么选择java谈为什么不开源
驱动
程序 3 1.2.3 对
驱动
开发者来说是一把双刃剑 4 1.3 Android和
Linux
4 1.3.1
Linux
简介 5 1.3.2 Android和
Linux
的关系 5 1.4 简析
Linux
内核 8 1.4.1 内核的体系结构 8 1.4.2 和Android密切相关的
Linux
内核知识 10 1.5
分析
Linux
内核源代码很有必要 14 1.5.1 源代码目录结构 14 1.5.2 浏览源代码的工具 16 1.5.3 为什么用汇编语言编写内核代码 17 1.5.4
Linux
内核的显著特性 18 1.5.5 学习
Linux
内核的方法 26 第2章
分析
Android源代码 31 2.1 搭建
Linux
开发环境和工具 31 2.1.1 搭建
Linux
开发环境 31 2.1.2 设置环境变量 32 2.1.3 安装编译工具 32 2.2 获取Android源代码 33 2.3
分析
并编译Android源代码 35 2.3.1 Android源代码的结构 35 2.3.2 编译Android源代码 40 2.3.3 运行Android源代码 42 2.3.4 实践演练——演示编译Android程序的两种方法 43 2.4 编译Android kernel 47 2.4.1 获取goldfish内核代码 47 2.4.2 获取msm内核代码 50 2.4.3 获取omap内核代码 50 2.4.4 编译Android的
Linux
内核 50 2.5 运行模拟器 52 2.5.1
Linux
环境下运行模拟器的方法 53 2.5.2 模拟器辅助工具——adb 54 第3章
驱动
需要移植 57 3.1
驱动
开发需要做的工作 57 3.2 Android移植 59 3.2.1 移植的任务 60 3.2.2 移植的内容 60 3.2.3
驱动
开发的任务 61 3.3 Android对
Linux
的改造 61 3.3.1 Android对
Linux
内核文件的改动 62 3.3.2 为Android构建
Linux
的操作系统 63 3.4 内核空间和用户空间接口是一个媒介 64 3.4.1 内核空间和用户空间的相互作用 64 3.4.2 系统和硬件之间的交互 64 3.4.3 使用relay实现内核到用户空间的数据传输 66 3.5 三类
驱动
程序 70 3.5.1 字符设备
驱动
程序 70 3.5.2 块设备
驱动
程序 79 3.5.3 网络设备
驱动
程序 82 第4章 hal层深入
分析
84 4.1 认识hal层 84 4.1.1 hal层的发展 84 4.1.2 过去和现在的区别 86 4.2
分析
hal层源代码 86 4.2.1
分析
hal moudle 86 4.2.2
分析
mokoid工程 89 4.3 总结hal层的使用方法 98 4.4 传感器在hal层的表现 101 4.4.1 hal层的sensor代码 102 4.4.2 总结sensor编程的流程 104 4.4.3
分析
sensor源代码看Android api 与硬件平台的衔接 104 4.5 移植总结 116 4.5.1 移植各个Android部件的方式 116 4.5.2 移植技巧之一——不得不说的辅助工作 117 第5章 goldfish下的
驱动
解析 125 5.1 staging
驱动
125 5.1.1 staging
驱动
概述 125 5.1.2 binder
驱动
程序 126 5.1.3 logger
驱动
程序 135 5.1.4 lowmemorykiller组件 136 5.1.5 timed output
驱动
程序 137 5.1.6 timed
gpio
驱动
程序 139 5.1.7 ram console
驱动
程序 139 5.2 wakelock和early_suspend 140 5.2.1 wakelock和early_suspend的原理 140 5.2.2 Android休眠 141 5.2.3 Android唤醒 144 5.3 ashmem
驱动
程序 145 5.4 pmem
驱动
程序 148 5.5 alarm
驱动
程序 149 5.5.1 alarm简析 149 5.5.2 alarm
驱动
程序的实现 150 5.6 usb gadget
驱动
程序151 5.7 Android paranoid
驱动
程序153 5.8 goldfish设备
驱动
154 5.8.1 framebuffer
驱动
155 5.8.2 键盘
驱动
159 5.8.3 实时时钟
驱动
程序160 5.8.4 tty终端
驱动
程序161 5.8.5 nandflash
驱动
程序162 5.8.6 mmc
驱动
程序162 5.8.7 电池
驱动
程序162 第6章 msm内核和
驱动
解析164 6.1 msm基础164 6.1.1 常见msm处理器产品164 6.1.2 snapdragon内核介绍165 6.2 移植msm内核简介166 6.3 移植msm168 6.3.1 makefile文件168 6.3.2
驱动
和组件170 6.3.3 设备
驱动
172 6.3.4 高通特有的组件174 第7章 omap内核和
驱动
解析177 7.1 omap基础177 7.1.1 omap简析177 7.1.2 常见omap处理器产品177 7.1.3 开发平台178 7.2 omap内核178 7.3 移植omap体系结构180 7.3.1 移植omap平台180 7.3.2 移植omap处理器183 7.4 移植Android专用
驱动
和组件188 7.5 omap的设备
驱动
190 第8章 显示系统
驱动
应用195 8.1 显示系统介绍195 8.1.1 Android的版本195 8.1.2 不同版本的显示系统195 8.2 移植和调试前的准备196 8.2.1 framebuffer
驱动
程序196 8.2.2 硬件抽象层198 8.3 实现显示系统的
驱动
程序210 8.3.1 goldfish中的framebuffer
驱动
程序210 8.3.2 使用gralloc模块的
驱动
程序214 8.4 msm高通处理器中的显示
驱动
实现224 8.4.1 msm中的framebuffer
驱动
程序225 8.4.2 msm中的gralloc
驱动
程序227 8.5 omap处理器中的显示
驱动
实现235 第9章 输入系统
驱动
应用239 9.1 输入系统介绍239 9.1.1 Android输入系统结构元素介绍239 9.1.2 移植Android输入系统时的工作240 9.2 input(输入)
驱动
241 9.3 模拟器的输入
驱动
256 9.4 msm高通处理器中的输入
驱动
实现257 9.4.1 触摸屏
驱动
257 9.4.2 按键和轨迹球
驱动
264 9.5 omap处理器平台中的输入
驱动
实现266 9.5.1 触摸屏
驱动
267 9.5.2 键盘
驱动
267 第10章 振动器系统
驱动
269 10.1 振动器系统结构269 10.1.1 硬件抽象层271 10.1.2 jni框架部分272 10.2 开始移植273 10.2.1 移植振动器
驱动
程序273 10.2.2 实现硬件抽象层274 10.3 在msm平台实现振动器
驱动
275 第11章 音频系统
驱动
279 11.1 音频系统结构279 11.2
分析
音频系统的层次280 11.2.1 层次说明280 11.2.2 media库中的audio框架281 11.2.3 本地代码284 11.2.4 jni代码288 11.2.5 java代码289 11.3 移植audio系统的必备技术289 11.3.1 移植audio系统所要做的工作289 11.3.2
分析
硬件抽象层290 11.3.3
分析
audioflinger中的audio硬件抽象层的实现291 11.4 真正实现audio硬件抽象层298 11.5 msm平台实现audio
驱动
系统298 11.5.1 实现audio
驱动
程序298 11.5.2 实现硬件抽象层299 11.6 oss平台实现audio
驱动
系统304 11.6.1 oss
驱动
程序介绍304 11.6.2 mixer305 11.7 alsa平台实现audio系统312 11.7.1 注册音频设备和音频
驱动
312 11.7.2 在Android中使用alsa声卡313 11.7.3 在omap平台移植Android的alsa声卡
驱动
322 第12章 视频输出系统
驱动
326 12.1 视频输出系统结构326 12.2 需要移植的部分328 12.3
分析
硬件抽象层328 12.3.1 overlay系统硬件抽象层的接口328 12.3.2 实现overlay系统的硬件抽象层331 12.3.3 实现接口332 12.4 实现overlay硬件抽象层333 12.5 在omap平台实现overlay系统335 12.5.1 实现输出视频
驱动
程序335 12.5.2 实现overlay硬件抽象层337 12.6 系统层调用overlay hal的架构342 12.6.1 调用overlay hal的架构的流程342 12.6.2 s3c6410 Android overlay的测试代码346 第13章 openmax多媒体框架349 13.1 openmax基本层次结构349 13.2
分析
openmax框架构成350 13.2.1 openmax总体层次结构350 13.2.2 openmax il层的结构351 13.2.3 Android中的openmax354 13.3 实现openmax il层接口354 13.3.1 openmax il层的接口354 13.3.2 在openmax il层中需要做什么361 13.3.3 研究Android中的openmax适配层361 13.4 在omap平台实现openmax il363 13.4.1 实现文件364 13.4.2
分析
ti openmax il的核心365 13.4.3 实现ti openmax il组件实例368 第14章 多媒体插件框架373 14.1 Android多媒体插件373 14.2 需要移植的内容374 14.3 opencore引擎375 14.3.1 opencore层次结构375 14.3.2 opencore代码结构376 14.3.3 opencore编译结构377 14.3.4 opencore oscl381 14.3.5 实现opencore中的openmax部分383 14.3.6 opencore的扩展398 14.4 stagefright引擎404 14.4.1 stagefright代码结构404 14.4.2 stagefright实现openmax接口405 14.4.3 video buffer传输流程409 第15章 传感器系统415 15.1 传感器系统的结构415 15.2 需要移植的内容417 15.2.1 移植
驱动
程序417 15.2.2 移植硬件抽象层418 15.2.3 实现上层部分419 15.3 在模拟器中实现传感器424 第16章 照相机系统430 16.1 camera系统的结构430 16.2 需要移植的内容433 16.3 移植和调试433 16.3.1 v4l2
驱动
程序433 16.3.2 硬件抽象层441 16.4 实现camera系统的硬件抽象层446 16.4.1 java程序部分446 16.4.2 camera的java本地调用部分447 16.4.3 camera的本地库libui.so448 16.4.4 camera服务libcameraservice.so449 16.5 msm平台实现camera系统454 16.6 omap平台实现camera系统457 第17章 wi-fi系统、蓝牙系统和gps系统459 17.1 wi-fi系统459 17.1.1 wi-fi系统的结构459 17.1.2 需要移植的内容461 17.1.3 移植和调试461 17.1.4 omap平台实现wi-fi469 17.1.5 配置wi-fi的流程471 17.1.6 具体演练——在Android下实现ethernet473 17.2 蓝牙系统475 17.2.1 蓝牙系统的结构475 17.2.2 需要移植的内容477 17.2.3 具体移植478 17.2.4 msm平台的蓝牙
驱动
480 17.3 定位系统482 17.3.1 定位系统的结构483 17.3.2 需要移植的内容484 17.3.3 移植和调试484 第18章 电话系统498 18.1 电话系统基础498 18.1.1 电话系统简介498 18.1.2 电话系统结构500 18.2 需要移植的内容501 18.3 移植和调试502 18.3.1
驱动
程序502 18.3.2 ril接口504 18.4 电话系统实现流程
分析
507 18.4.1 初始启动流程507 18.4.2 request流程509 18.4.3 response流程512 第19章 其他系统514 19.1 alarm警报器系统514 19.1.1 alarm系统的结构514 19.1.2 需要移植的内容515 19.1.3 移植和调试516 19.1.4 模拟器环境的具体实现518 19.1.5 msm平台实现alarm518 19.2 lights光系统519 19.2.1 lights光系统的结构520 19.2.2 需要移植的内容521 19.2.3 移植和调试521 19.2.4 msm平台实现光系统523 19.3 battery电池系统524 19.3.1 battery系统的结构524 19.3.2 需要移植的内容526 19.3.3 移植和调试526 19.3.4 在模拟器中实现电池系统529
Android底层开发技术实战
详解
--内核、移植和
驱动
.(电子工业.王振丽).part2
书名:《Android底层开发技术实战
详解
——内核、移植和
驱动
》(电子工业出版社.王振丽)。本书从底层原理开始讲起,结合真实的案例向读者详细介绍了android内核、移植和
驱动
开发的整个流程。全书分为19章,依次讲解
驱动
移植的必要性,何为hal层深入
分析
,goldfish、msm、map内核和
驱动
解析,显示系统、输入系统、振动器系统、音频系统、视频输出系统的
驱动
,openmax多媒体、多媒体插件框架,传感器、照相机、wi-fi、蓝牙、gps和电话系统等。在每一章中,重点介绍了与Android
驱动
开发相关的底层知识,并对Android源码进行了剖析。 本书适合Android研发人员及Android爱好者学习,也可以作为相关培训学校和大专院校相关专业的教学用书。 全书压缩打包成3部分,这是第2部分。 目录: 第1章 Android底层开发基础 1 1.1 什么是
驱动
1 1.1.1
驱动
程序的魅力 1 1.1.2 电脑中的
驱动
2 1.1.3 手机中的
驱动
程序 2 1.2 开源还是不开源的问题 3 1.2.1 雾里看花的开源 3 1.2.2 从为什么选择java谈为什么不开源
驱动
程序 3 1.2.3 对
驱动
开发者来说是一把双刃剑 4 1.3 Android和
Linux
4 1.3.1
Linux
简介 5 1.3.2 Android和
Linux
的关系 5 1.4 简析
Linux
内核 8 1.4.1 内核的体系结构 8 1.4.2 和Android密切相关的
Linux
内核知识 10 1.5
分析
Linux
内核源代码很有必要 14 1.5.1 源代码目录结构 14 1.5.2 浏览源代码的工具 16 1.5.3 为什么用汇编语言编写内核代码 17 1.5.4
Linux
内核的显著特性 18 1.5.5 学习
Linux
内核的方法 26 第2章
分析
Android源代码 31 2.1 搭建
Linux
开发环境和工具 31 2.1.1 搭建
Linux
开发环境 31 2.1.2 设置环境变量 32 2.1.3 安装编译工具 32 2.2 获取Android源代码 33 2.3
分析
并编译Android源代码 35 2.3.1 Android源代码的结构 35 2.3.2 编译Android源代码 40 2.3.3 运行Android源代码 42 2.3.4 实践演练——演示编译Android程序的两种方法 43 2.4 编译Android kernel 47 2.4.1 获取goldfish内核代码 47 2.4.2 获取msm内核代码 50 2.4.3 获取omap内核代码 50 2.4.4 编译Android的
Linux
内核 50 2.5 运行模拟器 52 2.5.1
Linux
环境下运行模拟器的方法 53 2.5.2 模拟器辅助工具——adb 54 第3章
驱动
需要移植 57 3.1
驱动
开发需要做的工作 57 3.2 Android移植 59 3.2.1 移植的任务 60 3.2.2 移植的内容 60 3.2.3
驱动
开发的任务 61 3.3 Android对
Linux
的改造 61 3.3.1 Android对
Linux
内核文件的改动 62 3.3.2 为Android构建
Linux
的操作系统 63 3.4 内核空间和用户空间接口是一个媒介 64 3.4.1 内核空间和用户空间的相互作用 64 3.4.2 系统和硬件之间的交互 64 3.4.3 使用relay实现内核到用户空间的数据传输 66 3.5 三类
驱动
程序 70 3.5.1 字符设备
驱动
程序 70 3.5.2 块设备
驱动
程序 79 3.5.3 网络设备
驱动
程序 82 第4章 hal层深入
分析
84 4.1 认识hal层 84 4.1.1 hal层的发展 84 4.1.2 过去和现在的区别 86 4.2
分析
hal层源代码 86 4.2.1
分析
hal moudle 86 4.2.2
分析
mokoid工程 89 4.3 总结hal层的使用方法 98 4.4 传感器在hal层的表现 101 4.4.1 hal层的sensor代码 102 4.4.2 总结sensor编程的流程 104 4.4.3
分析
sensor源代码看Android api 与硬件平台的衔接 104 4.5 移植总结 116 4.5.1 移植各个Android部件的方式 116 4.5.2 移植技巧之一——不得不说的辅助工作 117 第5章 goldfish下的
驱动
解析 125 5.1 staging
驱动
125 5.1.1 staging
驱动
概述 125 5.1.2 binder
驱动
程序 126 5.1.3 logger
驱动
程序 135 5.1.4 lowmemorykiller组件 136 5.1.5 timed output
驱动
程序 137 5.1.6 timed
gpio
驱动
程序 139 5.1.7 ram console
驱动
程序 139 5.2 wakelock和early_suspend 140 5.2.1 wakelock和early_suspend的原理 140 5.2.2 Android休眠 141 5.2.3 Android唤醒 144 5.3 ashmem
驱动
程序 145 5.4 pmem
驱动
程序 148 5.5 alarm
驱动
程序 149 5.5.1 alarm简析 149 5.5.2 alarm
驱动
程序的实现 150 5.6 usb gadget
驱动
程序151 5.7 Android paranoid
驱动
程序153 5.8 goldfish设备
驱动
154 5.8.1 framebuffer
驱动
155 5.8.2 键盘
驱动
159 5.8.3 实时时钟
驱动
程序160 5.8.4 tty终端
驱动
程序161 5.8.5 nandflash
驱动
程序162 5.8.6 mmc
驱动
程序162 5.8.7 电池
驱动
程序162 第6章 msm内核和
驱动
解析164 6.1 msm基础164 6.1.1 常见msm处理器产品164 6.1.2 snapdragon内核介绍165 6.2 移植msm内核简介166 6.3 移植msm168 6.3.1 makefile文件168 6.3.2
驱动
和组件170 6.3.3 设备
驱动
172 6.3.4 高通特有的组件174 第7章 omap内核和
驱动
解析177 7.1 omap基础177 7.1.1 omap简析177 7.1.2 常见omap处理器产品177 7.1.3 开发平台178 7.2 omap内核178 7.3 移植omap体系结构180 7.3.1 移植omap平台180 7.3.2 移植omap处理器183 7.4 移植Android专用
驱动
和组件188 7.5 omap的设备
驱动
190 第8章 显示系统
驱动
应用195 8.1 显示系统介绍195 8.1.1 Android的版本195 8.1.2 不同版本的显示系统195 8.2 移植和调试前的准备196 8.2.1 framebuffer
驱动
程序196 8.2.2 硬件抽象层198 8.3 实现显示系统的
驱动
程序210 8.3.1 goldfish中的framebuffer
驱动
程序210 8.3.2 使用gralloc模块的
驱动
程序214 8.4 msm高通处理器中的显示
驱动
实现224 8.4.1 msm中的framebuffer
驱动
程序225 8.4.2 msm中的gralloc
驱动
程序227 8.5 omap处理器中的显示
驱动
实现235 第9章 输入系统
驱动
应用239 9.1 输入系统介绍239 9.1.1 Android输入系统结构元素介绍239 9.1.2 移植Android输入系统时的工作240 9.2 input(输入)
驱动
241 9.3 模拟器的输入
驱动
256 9.4 msm高通处理器中的输入
驱动
实现257 9.4.1 触摸屏
驱动
257 9.4.2 按键和轨迹球
驱动
264 9.5 omap处理器平台中的输入
驱动
实现266 9.5.1 触摸屏
驱动
267 9.5.2 键盘
驱动
267 第10章 振动器系统
驱动
269 10.1 振动器系统结构269 10.1.1 硬件抽象层271 10.1.2 jni框架部分272 10.2 开始移植273 10.2.1 移植振动器
驱动
程序273 10.2.2 实现硬件抽象层274 10.3 在msm平台实现振动器
驱动
275 第11章 音频系统
驱动
279 11.1 音频系统结构279 11.2
分析
音频系统的层次280 11.2.1 层次说明280 11.2.2 media库中的audio框架281 11.2.3 本地代码284 11.2.4 jni代码288 11.2.5 java代码289 11.3 移植audio系统的必备技术289 11.3.1 移植audio系统所要做的工作289 11.3.2
分析
硬件抽象层290 11.3.3
分析
audioflinger中的audio硬件抽象层的实现291 11.4 真正实现audio硬件抽象层298 11.5 msm平台实现audio
驱动
系统298 11.5.1 实现audio
驱动
程序298 11.5.2 实现硬件抽象层299 11.6 oss平台实现audio
驱动
系统304 11.6.1 oss
驱动
程序介绍304 11.6.2 mixer305 11.7 alsa平台实现audio系统312 11.7.1 注册音频设备和音频
驱动
312 11.7.2 在Android中使用alsa声卡313 11.7.3 在omap平台移植Android的alsa声卡
驱动
322 第12章 视频输出系统
驱动
326 12.1 视频输出系统结构326 12.2 需要移植的部分328 12.3
分析
硬件抽象层328 12.3.1 overlay系统硬件抽象层的接口328 12.3.2 实现overlay系统的硬件抽象层331 12.3.3 实现接口332 12.4 实现overlay硬件抽象层333 12.5 在omap平台实现overlay系统335 12.5.1 实现输出视频
驱动
程序335 12.5.2 实现overlay硬件抽象层337 12.6 系统层调用overlay hal的架构342 12.6.1 调用overlay hal的架构的流程342 12.6.2 s3c6410 Android overlay的测试代码346 第13章 openmax多媒体框架349 13.1 openmax基本层次结构349 13.2
分析
openmax框架构成350 13.2.1 openmax总体层次结构350 13.2.2 openmax il层的结构351 13.2.3 Android中的openmax354 13.3 实现openmax il层接口354 13.3.1 openmax il层的接口354 13.3.2 在openmax il层中需要做什么361 13.3.3 研究Android中的openmax适配层361 13.4 在omap平台实现openmax il363 13.4.1 实现文件364 13.4.2
分析
ti openmax il的核心365 13.4.3 实现ti openmax il组件实例368 第14章 多媒体插件框架373 14.1 Android多媒体插件373 14.2 需要移植的内容374 14.3 opencore引擎375 14.3.1 opencore层次结构375 14.3.2 opencore代码结构376 14.3.3 opencore编译结构377 14.3.4 opencore oscl381 14.3.5 实现opencore中的openmax部分383 14.3.6 opencore的扩展398 14.4 stagefright引擎404 14.4.1 stagefright代码结构404 14.4.2 stagefright实现openmax接口405 14.4.3 video buffer传输流程409 第15章 传感器系统415 15.1 传感器系统的结构415 15.2 需要移植的内容417 15.2.1 移植
驱动
程序417 15.2.2 移植硬件抽象层418 15.2.3 实现上层部分419 15.3 在模拟器中实现传感器424 第16章 照相机系统430 16.1 camera系统的结构430 16.2 需要移植的内容433 16.3 移植和调试433 16.3.1 v4l2
驱动
程序433 16.3.2 硬件抽象层441 16.4 实现camera系统的硬件抽象层446 16.4.1 java程序部分446 16.4.2 camera的java本地调用部分447 16.4.3 camera的本地库libui.so448 16.4.4 camera服务libcameraservice.so449 16.5 msm平台实现camera系统454 16.6 omap平台实现camera系统457 第17章 wi-fi系统、蓝牙系统和gps系统459 17.1 wi-fi系统459 17.1.1 wi-fi系统的结构459 17.1.2 需要移植的内容461 17.1.3 移植和调试461 17.1.4 omap平台实现wi-fi469 17.1.5 配置wi-fi的流程471 17.1.6 具体演练——在Android下实现ethernet473 17.2 蓝牙系统475 17.2.1 蓝牙系统的结构475 17.2.2 需要移植的内容477 17.2.3 具体移植478 17.2.4 msm平台的蓝牙
驱动
480 17.3 定位系统482 17.3.1 定位系统的结构483 17.3.2 需要移植的内容484 17.3.3 移植和调试484 第18章 电话系统498 18.1 电话系统基础498 18.1.1 电话系统简介498 18.1.2 电话系统结构500 18.2 需要移植的内容501 18.3 移植和调试502 18.3.1
驱动
程序502 18.3.2 ril接口504 18.4 电话系统实现流程
分析
507 18.4.1 初始启动流程507 18.4.2 request流程509 18.4.3 response流程512 第19章 其他系统514 19.1 alarm警报器系统514 19.1.1 alarm系统的结构514 19.1.2 需要移植的内容515 19.1.3 移植和调试516 19.1.4 模拟器环境的具体实现518 19.1.5 msm平台实现alarm518 19.2 lights光系统519 19.2.1 lights光系统的结构520 19.2.2 需要移植的内容521 19.2.3 移植和调试521 19.2.4 msm平台实现光系统523 19.3 battery电池系统524 19.3.1 battery系统的结构524 19.3.2 需要移植的内容526 19.3.3 移植和调试526 19.3.4 在模拟器中实现电池系统529
内核笔记的课程社区_NO_1
6
社区成员
46
社区内容
发帖
与我相关
我的任务
内核笔记的课程社区_NO_1
一直从业于半导体行业,曾为Linux内核开源文档社区提交过若干文档。 主要从事Linux、Android相关系统软件开发工作,负责Soc芯片BringUp及系统软件开发,喜欢阅读内核源代码,在不断的学习和工作中深入理解内存管理,进程调度,文件系统,设备驱动等内核子系统。
复制链接
扫一扫
分享
社区描述
一直从业于半导体行业,曾为Linux内核开源文档社区提交过若干文档。 主要从事Linux、Android相关系统软件开发工作,负责Soc芯片BringUp及系统软件开发,喜欢阅读内核源代码,在不断的学习和工作中深入理解内存管理,进程调度,文件系统,设备驱动等内核子系统。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章