“ELADCMSecondEdition”的版本间的差异

来自百问网嵌入式Linux wiki
(修改目录样式)
第1行: 第1行:
 +
__NOTITLE__
 +
 
__NOTITLE__
 
__NOTITLE__
  
第324行: 第326行:
 
<br>
 
<br>
  
==[[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive | 第五篇 嵌入式 Linux 驱动开发基础知识 ]]==  
+
==[[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive | 第五篇 嵌入式 Linux 驱动开发基础知识 ]]==
 
{{#menu:
 
{{#menu:
*[[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive | 嵌入式后Linux驱动开发基础知识的引导与说明 ]]
+
* 1. [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFivePartⅠ | <span>嵌入式后Linux驱动开发基础知识</span>的引导与说明 ]]
*[[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive | Hello驱动(不涉及硬件操作) ]]
+
** 1.1 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E6.89.93.E7.AE.97.E8.AE.B2.E4.BB.80.E4.B9.88.E3.80.81.E6.80.8E.E4.B9.88.E8.AE.B2.EF.BC.9F | 打算讲什么、怎么讲? ]]
*[[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive | 硬件知识_LED原理图 ]]
+
** 1.2[[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E9.9C.80.E8.A6.81.E5.81.9A.E4.BB.80.E4.B9.88.E5.87.86.E5.A4.87.E5.B7.A5.E4.BD.9C | 需要做什么准备工作 ]]
*[[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive | 普适的GPIO引脚操作方法 ]]
+
* 2. [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFivePartⅡ | Hello驱动(不涉及硬件操作) ]]
*[[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive | 具体单板的GPIO操作方法 ]]
+
** 2.1 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#APP.E6.89.93.E5.BC.80.E7.9A.84.E6.96.87.E4.BB.B6.E5.9C.A8.E5.86.85.E6.A0.B8.E4.B8.AD.E5.A6.82.E4.BD.95.E8.A1.A8.E7.A4.BA | APP打开的文件在内核中如何表示 ]]
*[[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive | LED驱动程序框架 ]]
+
** 2.2 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E6.89.93.E5.BC.80.E5.AD.97.E7.AC.A6.E8.AE.BE.E5.A4.87.E8.8A.82.E7.82.B9.E6.97.B6.EF.BC.8C.E5.86.85.E6.A0.B8.E4.B8.AD.E4.B9.9F.E6.9C.89.E5.AF.B9.E5.BA.94.E7.9A.84struct_file | 打开字符设备节点时,内核中也有对应的struct file ]]
*[[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive | 具体单板的LED驱动程序 ]]
+
** 2.3 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E8.AF.B7.E7.8C.9C.E7.8C.9C.E6.80.8E.E4.B9.88.E7.BC.96.E5.86.99.E9.A9.B1.E5.8A.A8.E7.A8.8B.E5.BA.8F | 请猜猜怎么编写驱动程序 ]]
*[[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive | 驱动设计的思想:面向对象/分层/分离 ]]
+
** 2.4 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E8.AF.B7.E4.B8.8D.E8.A6.81.E5.95.B0.E5.97.A6.EF.BC.8C.E8.A1.A8.E6.BC.94.E4.BD.A0.E7.9A.84.E4.BB.A3.E7.A0.81.E5.90.A7 | 请不要啰嗦,表演你的代码吧 ]]
*[[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive | 驱动进化之路:总线设备驱动模型 ]]
+
*** 2.4.1 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E5.86.99.E9.A9.B1.E5.8A.A8.E7.A8.8B.E5.BA.8F | 写驱动程序 ]]
*[[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive | LED模板驱动程序的改造:总线设备驱动模型 ]]
+
*** 2.4.2 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E5.86.99.E6.B5.8B.E8.AF.95.E7.A8.8B.E5.BA.8F | 写测试程序 ]]
*[[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive | 驱动进化之路:设备树的引入及简明教程 ]]
+
*** 2.4.3 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E6.B5.8B.E8.AF.95 | 测试 ]]
*[[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive | LED模板驱动程序的改造:设备树 ]]
+
** 2.5 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#Hello.E9.A9.B1.E5.8A.A8.E4.B8.AD.E7.9A.84.E4.B8.80.E4.BA.9B.E8.A1.A5.E5.85.85.E7.9F.A5.E8.AF.86 | Hello驱动中的一些补充知识 ]]
*[[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive | APP怎么读取按键值 ]]
+
*** 2.5.1 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#module_init.2Fmodule_exit.E7.9A.84.E5.AE.9E.E7.8E.B0 | module_init/module_exit的实现 ]]
*[[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive | 查询方式的按键驱动程序_编写框架 ]]
+
*** 2.5.2 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#register_chrdev.E7.9A.84.E5.86.85.E9.83.A8.E5.AE.9E.E7.8E.B0 | register_chrdev的内部实现 ]]
*[[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive | 具体单板的按键驱动程序(查询方式) ]]
+
*** 2.5.3 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#class_destroy.2Fdevice_create.E6.B5.85.E6.9E.90 | class_destroy/device_create浅析 ]]
*[[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive | 异常与中断的概念及处理流程 ]]
+
* 3. [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFivePartⅢ | 硬件知识_LED原理图 ]]
*[[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive | 常见问题 ]]
+
** 3.1 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E5.85.88.E6.9D.A5.E8.AE.B2.E8.AE.B2.E6.80.8E.E4.B9.88.E7.9C.8B.E5.8E.9F.E7.90.86.E5.9B.BE | <span>先来讲讲怎么看原理图</span> ]]
 +
* 4. [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFivePartⅣ | 普适的GPIO引脚操作方法 ]]
 +
** 4.1 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#GPIO.E6.A8.A1.E5.9D.97.E4.B8.80.E8.88.AC.E7.BB.93.E6.9E.84 | GPIO模块一般结构 ]]
 +
** 4.2 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#GPIO.E5.AF.84.E5.AD.98.E5.99.A8.E6.93.8D.E4.BD.9C | GPIO寄存器操作 ]]
 +
** 4.3 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#GPIO.E7.9A.84.E5.85.B6.E4.BB.96.E5.8A.9F.E8.83.BD.EF.BC.9A.E9.98.B2.E6.8A.96.E5.8A.A8.E3.80.81.E4.B8.AD.E6.96.AD.E3.80.81.E5.94.A4.E9.86.92 | GPIO的其他功能:防抖动、中断、唤醒 ]]
 +
* 5. [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFivePartⅤ5 | 具体单板的GPIO操作方法 ]]
 +
** 5.1 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#AM335X.E7.9A.84GPIO.E6.93.8D.E4.BD.9C.E6.96.B9.E6.B3.95 | AM335X的GPIO操作方法 ]]
 +
*** 5.1.1 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#AM335X.E7.9A.84GPIO.E6.A8.A1.E5.9D.97.E7.BB.93.E6.9E.84 | AM335X的GPIO模块结构 ]]
 +
*** 5.1.2 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#AM335X.E7.9A.84GPIO.E7.9B.B8.E5.85.B3.E5.AF.84.E5.AD.98.E5.99.A8 | AM335X的GPIO相关寄存器 ]]
 +
*** 5.1.3 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#set-and-clear.E5.8D.8F.E8.AE.AE | set-and-clear协议 ]]
 +
** 5.2 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#RK3288.E7.9A.84GPIO.E6.93.8D.E4.BD.9C.E6.96.B9.E6.B3.95 | RK3288的GPIO操作方法 ]]
 +
*** 5.2.1 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#RK3288.E7.9A.84GPIO.E6.A8.A1.E5.9D.97.E7.BB.93.E6.9E.84 | RK3288的GPIO模块结构 ]]
 +
*** 5.2.2 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#RK3288.E7.9A.84GPIO.E7.9B.B8.E5.85.B3.E5.AF.84.E5.AD.98.E5.99.A8 | RK3288的GPIO相关寄存器 ]]
 +
** 5.3 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#RK3399.E7.9A.84GPIO.E6.93.8D.E4.BD.9C.E6.96.B9.E6.B3.95 | RK3399的GPIO操作方法 ]]
 +
*** 5.3.1 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#RK3399.E7.9A.84GPIO.E6.A8.A1.E5.9D.97.E7.BB.93.E6.9E.84 | RK3399的GPIO模块结构 ]]
 +
*** 5.3.2 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#RK3399.E7.9A.84GPIO.E7.9B.B8.E5.85.B3.E5.AF.84.E5.AD.98.E5.99.A8 | RK3399的GPIO相关寄存器 ]]
 +
** 5.4 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#IMX6ULL.E7.9A.84GPIO.E6.93.8D.E4.BD.9C.E6.96.B9.E6.B3.95 | IMX6ULL的GPIO操作方法 ]]
 +
*** 5.4.1 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#IMX6ULL.E7.9A.84GPIO.E6.A8.A1.E5.9D.97.E7.BB.93.E6.9E.84 | IMX6ULL的GPIO模块结构 ]]
 +
*** 5.4.2 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#CCM.E7.94.A8.E4.BA.8E.E8.AE.BE.E7.BD.AE.E6.98.AF.E5.90.A6.E5.90.91GPIO.E6.A8.A1.E5.9D.97.E6.8F.90.E4.BE.9B.E6.97.B6.E9.92.9F | CCM用于设置是否向GPIO模块提供时钟 ]]
 +
*** 5.4.3 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#IOMUXC.EF.BC.9A.E5.BC.95.E8.84.9A.E7.9A.84.E6.A8.A1.E5.BC.8F.28Mode.E3.80.81.E5.8A.9F.E8.83.BD.29 | IOMUXC:引脚的模式(Mode、功能) ]]
 +
*** 5.4.4 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#GPIO.E6.A8.A1.E5.9D.97.E5.86.85.E9.83.A8 | GPIO模块内部 ]]
 +
*** 5.4.5 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E6.80.8E.E4.B9.88.E7.BC.96.E7.A8.8B | 怎么编程 ]]
 +
**** 5.4.5.1 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E8.AF.BBGPIO | 读GPIO ]]
 +
**** 5.4.5.2 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E5.86.99GPIO | 写GPIO ]]
 +
* 6. [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFivePartⅥ | LED驱动程序框架 ]]
 +
** 6.1 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E5.9B.9E.E9.A1.BE.E5.AD.97.E7.AC.A6.E8.AE.BE.E5.A4.87.E9.A9.B1.E5.8A.A8.E7.A8.8B.E5.BA.8F.E6.A1.86.E6.9E.B6 | 回顾字符设备驱动程序框架 ]]
 +
** 6.2 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E5.AF.B9.E4.BA.8ELED.E9.A9.B1.E5.8A.A8.EF.BC.8C.E6.88.91.E4.BB.AC.E6.83.B3.E8.A6.81.E4.BB.80.E4.B9.88.E6.A0.B7.E7.9A.84.E6.8E.A5.E5.8F.A3.EF.BC.9F | 对于LED驱动,我们想要什么样的接口? ]]
 +
** 6.3 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#LED.E9.A9.B1.E5.8A.A8.E8.A6.81.E6.80.8E.E4.B9.88.E5.86.99.EF.BC.8C.E6.89.8D.E8.83.BD.E6.94.AF.E6.8C.81.E5.A4.9A.E4.B8.AA.E6.9D.BF.E5.AD.90.EF.BC.9F.E5.88.86.E5.B1.82.E3.80.82 | LED驱动要怎么写,才能支持多个板子?分层。 ]]
 +
** 6.4 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E5.86.99.E4.BB.A3.E7.A0.81 | 写代码 ]]
 +
*** 6.4.1 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E9.A9.B1.E5.8A.A8.E7.A8.8B.E5.BA.8F | 驱动程序 ]]
 +
**** 6.4.1.1  [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E6.8A.8ALED.E7.9A.84.E6.93.8D.E4.BD.9C.E6.8A.BD.E8.B1.A1.E5.87.BA.E4.B8.80.E4.B8.AAled_operations.E7.BB.93.E6.9E.84.E4.BD.93 | 把LED的操作抽象出一个led_operations结构体 ]]
 +
**** 6.4.1.2 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E9.A9.B1.E5.8A.A8.E7.A8.8B.E5.BA.8F.E7.9A.84.E4.B8.8A.E5.B1.82.EF.BC.9Afile_operations.E7.BB.93.E6.9E.84.E4.BD.93 | 驱动程序的上层:file_operations结构体 ]]
 +
*** 6.4.2 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E6.B5.8B.E8.AF.95.E7.A8.8B.E5.BA.8F | 测试程序 ]]
 +
*** 6.4.3 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E4.B8.8A.E6.9C.BA.E6.B5.8B.E8.AF.95 | 上机测试 ]]
 +
** 6.5 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E8.AF.BE.E5.90.8E.E4.BD.9C.E4.B8.9A | 课后作业 ]]
 +
* 7. [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFivePartⅦ | 具体单板的LED驱动程序 ]]
 +
** 7.1 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E6.80.8E.E4.B9.88.E5.86.99LED.E9.A9.B1.E5.8A.A8.E7.A8.8B.E5.BA.8F.EF.BC.9F | 怎么写LED驱动程序? ]]
 +
** 7.2 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#AM335X.E7.9A.84LED.E9.A9.B1.E5.8A.A8.E7.A8.8B.E5.BA.8F | AM335X的LED驱动程序 ]]
 +
*** 7.1.1 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E5.8E.9F.E7.90.86.E5.9B.BE | 原理图 ]]
 +
*** 7.1.2 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E6.89.80.E6.B6.89.E5.8F.8A.E7.9A.84.E5.AF.84.E5.AD.98.E5.99.A8.E6.93.8D.E4.BD.9C | 所涉及的寄存器操作 ]]
 +
*** 7.1.3 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E5.86.99.E7.A8.8B.E5.BA.8F | 写程序 ]]
 +
*** 7.1.4 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E9.85.8D.E7.BD.AE.E5.86.85.E6.A0.B8.E5.8E.BB.E6.8E.89.E5.8E.9F.E6.9C.89LED.E9.A9.B1.E5.8A.A8 | 配置内核去掉原有LED驱动 ]]
 +
*** 7.1.5 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E8.AF.BE.E5.90.8E.E4.BD.9C.E4.B8.9A_2 | 课后作业 ]]
 +
** 7.3 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#RK3288.E5.92.8CRK3399.E7.9A.84LED.E9.A9.B1.E5.8A.A8.E7.A8.8B.E5.BA.8F | RK3288和RK3399的LED驱动程序 ]]
 +
*** 7.3.1 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E5.8E.9F.E7.90.86.E5.9B.BE_2 | 原理图 ]]
 +
**** 7.3.1.1 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#fireflye_RK3288.E7.9A.84LED.E5.8E.9F.E7.90.86.E5.9B.BE | fireflye RK3288的LED原理图 ]]
 +
**** 7.3.1.2 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#firefly_RK3399.E7.9A.84LED.E5.8E.9F.E7.90.86.E5.9B.BE | firefly RK3399的LED原理图 ]]
 +
*** 7.3.2 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E6.89.80.E6.B6.89.E5.8F.8A.E7.9A.84.E5.AF.84.E5.AD.98.E5.99.A8.E6.93.8D.E4.BD.9C_2 | 所涉及的寄存器操作 ]]
 +
**** 7.3.2.1 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#RK3288.E7.9A.84GPIO8_A1.E5.BC.95.E8.84.9A | RK3288的GPIO8_A1引脚 ]]
 +
**** 7.3.2.2 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#RK3399.E7.9A.84GPIO2_D3.E5.BC.95.E8.84.9A | RK3399的GPIO2_D3引脚 ]]
 +
*** 7.3.3 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E5.86.99.E7.A8.8B.E5.BA.8F_2 | 写程序 ]]
 +
**** 7.3.3.1 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#RK3288 | RK3288 ]]
 +
**** 7.3.3.2 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#RK3399 | RK3399 ]]
 +
*** 7.3.4 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E4.B8.8A.E6.9C.BA.E5.AE.9E.E9.AA.8C | 上机实验 ]]
 +
**** 7.3.4.1 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#RK3288_2 | RK3288 ]]
 +
**** 7.3.4.2 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#RK3399_2 | RK3399 ]]
 +
*** 7.3.5 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E8.AF.BE.E5.90.8E.E4.BD.9C.E4.B8.9A_3 | 课后作业 ]]
 +
** 7.4 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E9.87.8E.E7.81.AB.2F.E6.AD.A3.E7.82.B9.E5.8E.9F.E5.AD.90IMX6ULL.E7.9A.84LED.E9.A9.B1.E5.8A.A8.E7.A8.8B.E5.BA.8F | 野火/正点原子IMX6ULL的LED驱动程序 ]]
 +
*** 7.4.1 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E5.8E.9F.E7.90.86.E5.9B.BE_3 | 原理图 ]]
 +
**** 7.4.1.1 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E9.87.8E.E7.81.ABfire_imx6ull-pro.E5.BC.80.E5.8F.91.E6.9D.BF | 野火fire_imx6ull-pro开发板 ]]
 +
**** 7.4.1.2 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E6.AD.A3.E7.82.B9.E5.8E.9F.E5.AD.90Atk_imx6ull-alpha.E5.BC.80.E5.8F.91.E6.9D.BF | 正点原子Atk_imx6ull-alpha开发板 ]]
 +
*** 7.4.2 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E6.89.80.E6.B6.89.E5.8F.8A.E7.9A.84.E5.AF.84.E5.AD.98.E5.99.A8.E6.93.8D.E4.BD.9C_3 | 所涉及的寄存器操作 ]]
 +
**** 7.4.2.1 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E9.87.8E.E7.81.ABfire_imx6ull-pro_.E5.BC.80.E5.8F.91.E6.9D.BF | <span>野火fire_imx6ull-pro</span> 开发板 ]]
 +
**** 7.4.2.2 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E6.AD.A3.E7.82.B9.E5.8E.9F.E5.AD.90Atk_imx6ull-alpha.E5.BC.80.E5.8F.91.E6.9D.BF_2 | <span>正点原子Atk_imx6ull-alpha</span>开发板 ]]
 +
*** 7.4.3 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E5.86.99.E7.A8.8B.E5.BA.8F_3 | 写程序 ]]
 +
**** 7.4.3.1 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E9.87.8E.E7.81.ABfire_imx6ull-pro.E5.BC.80.E5.8F.91.E6.9D.BF_2 | <span>野火fire_imx6ull-pro</span>开发板 ]]
 +
**** 7.4.3.2 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E6.AD.A3.E7.82.B9.E5.8E.9F.E5.AD.90Atk_imx6ull-alpha.E5.BC.80.E5.8F.91.E6.9D.BF_3 | <span>正点原子Atk_imx6ull-alpha</span>开发板 ]]
 +
*** 7.4.4 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E4.B8.8A.E6.9C.BA.E5.AE.9E.E9.AA.8C_2 | 上机实验 ]]
 +
**** 7.4.4.1 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E9.87.8E.E7.81.ABfire_imx6ull-pro_.E5.BC.80.E5.8F.91.E6.9D.BF_2 | <span>野火fire_imx6ull-pro</span> 开发板 ]]
 +
**** 7.4.4.2 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E6.AD.A3.E7.82.B9.E5.8E.9F.E5.AD.90Atk_imx6ull-alpha.E5.BC.80.E5.8F.91.E6.9D.BF_4 | <span>正点原子Atk_imx6ull-alpha</span>开发板 ]]
 +
*** 7.4.5 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E8.AF.BE.E5.90.8E.E4.BD.9C.E4.B8.9A_4 | 课后作业 ]]
 +
** 7.5 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E7.99.BE.E9.97.AE.E7.BD.91IMX6ULL-QEMU.E7.9A.84LED.E9.A9.B1.E5.8A.A8.E7.A8.8B.E5.BA.8F | 百问网IMX6ULL-QEMU的LED驱动程序 ]]
 +
*** 7.5.1 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E7.9C.8B.E5.8E.9F.E7.90.86.E5.9B.BE.E7.A1.AE.E5.AE.9A.E5.BC.95.E8.84.9A.E5.8F.8A.E6.93.8D.E4.BD.9C.E6.96.B9.E6.B3.95 | 看原理图确定引脚及操作方法 ]]
 +
*** 7.5.2 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E6.89.80.E6.B6.89.E5.8F.8A.E7.9A.84.E5.AF.84.E5.AD.98.E5.99.A8.E6.93.8D.E4.BD.9C_4 | 所涉及的寄存器操作 ]]
 +
*** 7.5.3 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E5.86.99.E7.A8.8B.E5.BA.8F_4 | 写程序 ]]
 +
*** 7.5.4 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E4.B8.8A.E6.9C.BA.E5.AE.9E.E9.AA.8C_3 | 上机实验 ]]
 +
*** 7.5.5 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E8.AF.BE.E5.90.8E.E4.BD.9C.E4.B8.9A_5 | 课后作业 ]]
 +
* 8 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFivePartⅧ | 驱动设计的思想:面向对象/分层/分离 ]]
 +
** 8.1 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E9.9D.A2.E5.90.91.E5.AF.B9.E8.B1.A1 | 面向对象 ]]
 +
** 8.2 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E5.88.86.E5.B1.82 | 分层 ]]
 +
** 8.3 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E5.88.86.E7.A6.BB | 分离 ]]
 +
** 8.4 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E5.86.99.E7.A4.BA.E4.BE.8B.E4.BB.A3.E7.A0.81 | 写示例代码 ]]
 +
** 8.5 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E8.AF.BE.E5.90.8E.E4.BD.9C.E4.B8.9A_6 | 课后作业 ]]
 +
* 9. [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFivePartⅨ | 驱动进化之路:总线设备驱动模型 ]]
 +
** 9.1 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E9.A9.B1.E5.8A.A8.E7.BC.96.E5.86.99.E7.9A.843.E7.A7.8D.E6.96.B9.E6.B3.95 | 驱动编写的3种方法 ]]
 +
*** 9.1.1 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E4.BC.A0.E7.BB.9F.E5.86.99.E6.B3.95 | 传统写法 ]]
 +
*** 9.1.2 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E6.80.BB.E7.BA.BF.E8.AE.BE.E5.A4.87.E9.A9.B1.E5.8A.A8.E6.A8.A1.E5.9E.8B | 总线设备驱动模型 ]]
 +
*** 9.1.3 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E8.AE.BE.E5.A4.87.E6.A0.91 | 设备树 ]]
 +
** 9.2 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E5.9C.A8Linux.E4.B8.AD.E5.AE.9E.E7.8E.B0.E2.80.9C.E5.88.86.E7.A6.BB.E2.80.9D.EF.BC.9ABus.2FDev.2FDrv.E6.A8.A1.E5.9E.8B | 在Linux中实现“分离”:Bus/Dev/Drv模型 ]]
 +
** 9.3 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E5.8C.B9.E9.85.8D.E8.A7.84.E5.88.99 | 匹配规则 ]]
 +
*** 9.3.1 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E6.9C.80.E5.85.88.E6.AF.94.E8.BE.83.EF.BC.9Aplatform_device._driver_override.E5.92.8Cplatform_driver.driver.name | 最先比较:platform_device. driver_override和platform_driver.driver.name ]]
 +
*** 9.3.2 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E7.84.B6.E5.90.8E.E6.AF.94.E8.BE.83.EF.BC.9Aplatform_device._name.E5.92.8Cplatform_driver.id_table.5Bi.5D.name | 然后比较:platform_device. name和platform_driver.id_table[i].name ]]
 +
*** 9.3.3 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E6.9C.80.E5.90.8E.E6.AF.94.E8.BE.83.EF.BC.9Aplatform_device.name.E5.92.8Cplatform_driver.driver.name | 最后比较:platform_device.name和platform_driver.driver.name ]]
 +
*** 9.3.4 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E5.87.BD.E6.95.B0.E8.B0.83.E7.94.A8.E5.85.B3.E7.B3.BB | 函数调用关系 ]]
 +
** 9.4 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E5.B8.B8.E7.94.A8.E5.87.BD.E6.95.B0 | 常用函数 ]]
 +
*** 9.4.1 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E6.B3.A8.E5.86.8C.2F.E5.8F.8D.E6.B3.A8.E5.86.8C | 注册/反注册 ]]
 +
*** 9.4.2 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E8.8E.B7.E5.BE.97.E8.B5.84.E6.BA.90 | 获得资源 ]]
 +
** 9.5 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E6.80.8E.E4.B9.88.E5.86.99.E7.A8.8B.E5.BA.8F | 怎么写程序 ]]
 +
*** 9.5.1 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E5.88.86.E9.85.8D.2F.E8.AE.BE.E7.BD.AE.2F.E6.B3.A8.E5.86.8Cplatform_device.E7.BB.93.E6.9E.84.E4.BD.93 | 分配/设置/注册platform_device结构体 ]]
 +
*** 9.5.2 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E5.88.86.E9.85.8D.2F.E8.AE.BE.E7.BD.AE.2F.E6.B3.A8.E5.86.8Cplatform_driver.E7.BB.93.E6.9E.84.E4.BD.93 | 分配/设置/注册platform_driver结构体 ]]
 +
** 9.6 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E8.AF.BE.E5.90.8E.E4.BD.9C.E4.B8.9A_7 | 课后作业 ]]
 +
* 10. [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFivePartⅩ | LED模板驱动程序的改造:总线设备驱动模型 ]]
 +
** 10.1 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E5.8E.9F.E6.9D.A5.E7.9A.84.E6.A1.86.E6.9E.B6 | 原来的框架 ]]
 +
** 10.2 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E8.A6.81.E5.AE.9E.E7.8E.B0.E7.9A.84.E6.A1.86.E6.9E.B6 | 要实现的框架 ]]
 +
** 10.3 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E5.86.99.E4.BB.A3.E7.A0.81_2 | 写代码 ]]
 +
*** 10.3.1 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E6.B3.A8.E6.84.8F.E4.BA.8B.E9.A1.B9 | 注意事项 ]]
 +
*** 10.3.2 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E5.AE.9E.E7.8E.B0platform_device.E7.BB.93.E6.9E.84.E4.BD.93 | 实现platform_device结构体 ]]
 +
*** 10.3.3 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E5.AE.9E.E7.8E.B0platform_driver.E7.BB.93.E6.9E.84.E4.BD.93 | 实现platform_driver结构体 ]]
 +
** 10.4 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E8.AF.BE.E5.90.8E.E4.BD.9C.E4.B8.9A_8 | 课后作业 ]]
 +
* 11.[[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFivePartⅪ | 驱动进化之路:设备树的引入及简明教程 ]]
 +
** 11.1 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E8.AE.BE.E5.A4.87.E6.A0.91.E7.9A.84.E5.BC.95.E5.85.A5.E4.B8.8E.E4.BD.9C.E7.94.A8 | 设备树的引入与作用 ]]
 +
** 11.2 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E8.AE.BE.E5.A4.87.E6.A0.91.E7.9A.84.E8.AF.AD.E6.B3.95 | 设备树的语法 ]]
 +
*** 11.2.1 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#Devicetree.E6.A0.BC.E5.BC.8F | Devicetree格式 ]]
 +
**** 11.2.1.1 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#DTS.E6.96.87.E4.BB.B6.E7.9A.84.E6.A0.BC.E5.BC.8F | DTS文件的格式 ]]
 +
**** 11.2.1.2 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#node.E7.9A.84.E6.A0.BC.E5.BC.8F | node的格式 ]]
 +
**** 11.2.1.3 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#properties.E7.9A.84.E6.A0.BC.E5.BC.8F | properties的格式 ]]
 +
*** 11.2.2 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#dts.E6.96.87.E4.BB.B6.E5.8C.85.E5.90.ABdtsi.E6.96.87.E4.BB.B6 | dts文件包含dtsi文件 ]]
 +
*** 11.2.3 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E5.B8.B8.E7.94.A8.E7.9A.84.E5.B1.9E.E6.80.A7 | 常用的属性 ]]
 +
**** 11.2.3.1 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.23address-cells.E3.80.81.23size-cells | #address-cells、#size-cells ]]
 +
**** 11.2.3.2 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#compatible | compatible ]]
 +
**** 11.2.3.3 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#model | model ]]
 +
**** 11.2.3.4 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#status | status ]]
 +
**** 11.2.3.5 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#reg | reg ]]
 +
**** 11.2.3.6 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#name.28.E8.BF.87.E6.97.B6.E4.BA.86.EF.BC.8C.E5.BB.BA.E8.AE.AE.E4.B8.8D.E7.94.A8.29 | name(过时了,建议不用) ]]
 +
**** 11.2.3.7 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#device_type.28.E8.BF.87.E6.97.B6.E4.BA.86.EF.BC.8C.E5.BB.BA.E8.AE.AE.E4.B8.8D.E7.94.A8.29 | device_type(过时了,建议不用) ]]
 +
*** 11.2.4 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E5.B8.B8.E7.94.A8.E7.9A.84.E8.8A.82.E7.82.B9.28node.29 | 常用的节点(node) ]]
 +
**** 11.2.4.1 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E6.A0.B9.E8.8A.82.E7.82.B9 | 根节点 ]]
 +
**** 11.2.4.2 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#CPU.E8.8A.82.E7.82.B9 | CPU节点 ]]
 +
**** 11.2.4.3 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#memory.E8.8A.82.E7.82.B9 | memory节点 ]]
 +
**** 11.2.4.4 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#chosen.E8.8A.82.E7.82.B9 | chosen节点 ]]
 +
** 11.3 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E7.BC.96.E8.AF.91.E3.80.81.E6.9B.B4.E6.8D.A2.E8.AE.BE.E5.A4.87.E6.A0.91 | 编译、更换设备树 ]]
 +
*** 11.3.1 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E5.9C.A8.E5.86.85.E6.A0.B8.E4.B8.AD.E7.9B.B4.E6.8E.A5make | 在内核中直接make ]]
 +
*** 11.3.2 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E6.89.8B.E5.B7.A5.E7.BC.96.E8.AF.91 | 手工编译 ]]
 +
*** 11.3.3 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E7.BB.99.E5.BC.80.E5.8F.91.E6.9D.BF.E6.9B.B4.E6.8D.A2.E8.AE.BE.E5.A4.87.E6.A0.91.E6.96.87.E4.BB.B6 | 给开发板更换设备树文件 ]]
 +
**** 11.3.3.1 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E5.AF.B9.E4.BA.8E100ask-am335x_.E5.8D.95.E6.9D.BF | 对于100ask-am335x 单板 ]]
 +
**** 11.3.3.2 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E5.AF.B9.E4.BA.8Efirefly-rk3288 | 对于firefly-rk3288 ]]
 +
**** 11.3.3.3 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E5.AF.B9.E4.BA.8Efirefly.E7.9A.84roc-rk3399-pc | 对于firefly的roc-rk3399-pc ]]
 +
**** 11.3.3.4 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E5.AF.B9.E4.BA.8E.E7.99.BE.E9.97.AE.E7.BD.91.E4.BD.BF.E7.94.A8QEMU.E6.A8.A1.E6.8B.9F.E7.9A.84IMX6ULL.E6.9D.BF.E5.AD.90 | 对于百问网使用QEMU模拟的IMX6ULL板子 ]]
 +
**** 11.3.3.5 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E5.AF.B9.E4.BA.8E.E9.87.8E.E7.81.ABimx6ull-pro | 对于野火imx6ull-pro ]]
 +
**** 11.3.3.6 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E5.AF.B9.E4.BA.8E.E6.AD.A3.E7.82.B9.E5.8E.9F.E5.AD.90imx6ull-alpha | 对于正点原子imx6ull-alpha ]]
 +
*** 11.3.4 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E6.9D.BF.E5.AD.90.E5.90.AF.E5.8A.A8.E5.90.8E.E6.9F.A5.E7.9C.8B.E8.AE.BE.E5.A4.87.E6.A0.91 | 板子启动后查看设备树 ]]
 +
** 11.4 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E5.86.85.E6.A0.B8.E5.AF.B9.E8.AE.BE.E5.A4.87.E6.A0.91.E7.9A.84.E5.A4.84.E7.90.86 | 内核对设备树的处理 ]]
 +
*** 11.4.1 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#dtb.E4.B8.AD.E6.AF.8F.E4.B8.80.E4.B8.AA.E8.8A.82.E7.82.B9.E9.83.BD.E8.A2.AB.E8.BD.AC.E6.8D.A2.E4.B8.BAdevice_node.E7.BB.93.E6.9E.84.E4.BD.93 | dtb中每一个节点都被转换为device_node结构体 ]]
 +
*** 11.4.2 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E5.93.AA.E4.BA.9B.E8.AE.BE.E5.A4.87.E6.A0.91.E8.8A.82.E7.82.B9.E4.BC.9A.E8.A2.AB.E8.BD.AC.E6.8D.A2.E4.B8.BAplatform_device | 哪些设备树节点会被转换为platform_device ]]
 +
*** 11.4.3 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E6.80.8E.E4.B9.88.E8.BD.AC.E6.8D.A2.E4.B8.BAplatform_device | 怎么转换为platform_device ]]
 +
** 11.5 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#platform_device.E5.A6.82.E4.BD.95.E4.B8.8Eplatform_driver.E9.85.8D.E5.AF.B9 | platform_device如何与platform_driver配对 ]]
 +
*** 11.5.1 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E6.9C.80.E5.85.88.E6.AF.94.E8.BE.83.EF.BC.9A.E6.98.AF.E5.90.A6.E5.BC.BA.E5.88.B6.E9.80.89.E6.8B.A9.E6.9F.90.E4.B8.AAdriver | 最先比较:是否强制选择某个driver ]]
 +
*** 11.5.2 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E7.84.B6.E5.90.8E.E6.AF.94.E8.BE.83.EF.BC.9A.E8.AE.BE.E5.A4.87.E6.A0.91.E4.BF.A1.E6.81.AF | 然后比较:设备树信息 ]]
 +
*** 11.5.3 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E6.8E.A5.E4.B8.8B.E6.9D.A5.E6.AF.94.E8.BE.83.EF.BC.9Aplatform_device_id | 接下来比较:platform_device_id ]]
 +
*** 11.5.4 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E6.9C.80.E5.90.8E.E6.AF.94.E8.BE.83.EF.BC.9Aplatform_device.name.E5.92.8Cplatform_driver.driver.name_2 | 最后比较:platform_device.name和platform_driver.driver.name ]]
 +
*** 11.5.5 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E4.B8.80.E4.B8.AA.E5.9B.BE.E6.A6.82.E6.8B.AC.E6.89.80.E6.9C.89.E7.9A.84.E9.85.8D.E5.AF.B9.E8.BF.87.E7.A8.8B | 一个图概括所有的配对过程 ]]
 +
** 11.6 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E6.B2.A1.E6.9C.89.E8.BD.AC.E6.8D.A2.E4.B8.BAplatform_device.E7.9A.84.E8.8A.82.E7.82.B9.EF.BC.8C.E5.A6.82.E4.BD.95.E4.BD.BF.E7.94.A8 | 没有转换为platform_device的节点,如何使用 ]]
 +
** 11.7 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E5.86.85.E6.A0.B8.E9.87.8C.E6.93.8D.E4.BD.9C.E8.AE.BE.E5.A4.87.E6.A0.91.E7.9A.84.E5.B8.B8.E7.94.A8.E5.87.BD.E6.95.B0 | 内核里操作设备树的常用函数 ]]
 +
*** 11.7.1 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E5.86.85.E6.A0.B8.E4.B8.AD.E8.AE.BE.E5.A4.87.E6.A0.91.E7.9B.B8.E5.85.B3.E7.9A.84.E5.A4.B4.E6.96.87.E4.BB.B6.E4.BB.8B.E7.BB.8D | 内核中设备树相关的头文件介绍 ]]
 +
**** 11.7.1.1 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E5.A4.84.E7.90.86DTB | 处理DTB ]]
 +
**** 11.7.1.2 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E5.A4.84.E7.90.86device_node | 处理device_node ]]
 +
**** 11.7.1.3 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E5.A4.84.E7.90.86_platform_device | 处理 platform_device ]]
 +
*** 11.7.2 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#platform_device.E7.9B.B8.E5.85.B3.E7.9A.84.E5.87.BD.E6.95.B0 | platform_device相关的函数 ]]
 +
**** 11.7.2.1 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#of_find_device_by_node | of_find_device_by_node ]]
 +
**** 11.7.2.2 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#platform_get_resource | platform_get_resource ]]
 +
*** 11.7.3 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E6.9C.89.E4.BA.9B.E8.8A.82.E7.82.B9.E4.B8.8D.E4.BC.9A.E7.94.9F.E6.88.90platform_device.EF.BC.8C.E6.80.8E.E4.B9.88.E8.AE.BF.E9.97.AE.E5.AE.83.E4.BB.AC | 有些节点不会生成platform_device,怎么访问它们 ]]
 +
**** 11.7.3.1 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E6.89.BE.E5.88.B0.E8.8A.82.E7.82.B9 | 找到节点 ]]
 +
**** 11.7.3.2 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E6.89.BE.E5.88.B0.E5.B1.9E.E6.80.A7 | 找到属性 ]]
 +
**** 11.7.3.3 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E8.8E.B7.E5.8F.96.E5.B1.9E.E6.80.A7.E7.9A.84.E5.80.BC | 获取属性的值 ]]
 +
** 11.8 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E6.80.8E.E4.B9.88.E4.BF.AE.E6.94.B9.E8.AE.BE.E5.A4.87.E6.A0.91.E6.96.87.E4.BB.B6 | 怎么修改设备树文件 ]]
 +
*** 11.8.1 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E4.BD.BF.E7.94.A8.E8.8A.AF.E7.89.87.E5.8E.82.E5.AE.B6.E6.8F.90.E4.BE.9B.E7.9A.84.E5.B7.A5.E5.85.B7 | 使用芯片厂家提供的工具 ]]
 +
*** 11.8.2 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E7.9C.8B.E7.BB.91.E5.AE.9A.E6.96.87.E6.A1.A3 | 看绑定文档 ]]
 +
*** 11.8.3 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E5.8F.82.E8.80.83.E5.90.8C.E7.B1.BB.E5.9E.8B.E5.8D.95.E6.9D.BF.E7.9A.84.E8.AE.BE.E5.A4.87.E6.A0.91.E6.96.87.E4.BB.B6 | 参考同类型单板的设备树文件 ]]
 +
*** 11.8.4 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E7.BD.91.E4.B8.8A.E6.90.9C.E7.B4.A2 | 网上搜索 ]]
 +
*** 11.8.5 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E5.AE.9E.E5.9C.A8.E6.B2.A1.E5.8A.9E.E6.B3.95.E6.97.B6.2C_.E5.8F.AA.E8.83.BD.E5.8E.BB.E7.A0.94.E7.A9.B6.E9.A9.B1.E5.8A.A8.E6.BA.90.E7.A0.81 | 实在没办法时, 只能去研究驱动源码 ]]
 +
* 12. [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFivePartⅫ | LED模板驱动程序的改造:设备树 ]]
 +
** 12.1 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E6.80.BB.E7.BB.933.E7.A7.8D.E5.86.99.E9.A9.B1.E5.8A.A8.E7.A8.8B.E5.BA.8F.E7.9A.84.E6.96.B9.E6.B3.95 | 总结3种写驱动程序的方法 ]]
 +
** 12.2 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E6.80.8E.E4.B9.88.E4.BD.BF.E7.94.A8.E8.AE.BE.E5.A4.87.E6.A0.91.E5.86.99.E9.A9.B1.E5.8A.A8.E7.A8.8B.E5.BA.8F | 怎么使用设备树写驱动程序 ]]
 +
*** 12.2.1 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E8.AE.BE.E5.A4.87.E6.A0.91.E8.8A.82.E7.82.B9.E8.A6.81.E4.B8.8Eplatform_driver.E8.83.BD.E5.8C.B9.E9.85.8D | 设备树节点要与platform_driver能匹配 ]]
 +
*** 12.2.2 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E8.AE.BE.E5.A4.87.E6.A0.91.E8.8A.82.E7.82.B9.E6.8C.87.E5.AE.9A.E8.B5.84.E6.BA.90.EF.BC.8Cplatform_driver.E8.8E.B7.E5.BE.97.E8.B5.84.E6.BA.90 | 设备树节点指定资源,platform_driver获得资源 ]]
 +
** 12.3 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E5.BC.80.E5.A7.8B.E7.BC.96.E7.A8.8B | 开始编程 ]]
 +
*** 12.3.1 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E4.BF.AE.E6.94.B9.E8.AE.BE.E5.A4.87.E6.A0.91.E6.B7.BB.E5.8A.A0led.E8.AE.BE.E5.A4.87.E8.8A.82.E7.82.B9 | 修改设备树添加led设备节点 ]]
 +
**** 12.3.1.1 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E5.AF.B9.E4.BA.8E100ask-am335x_.E5.8D.95.E6.9D.BF_2 | 对于100ask-am335x 单板 ]]
 +
**** 12.3.1.2 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E5.AF.B9.E4.BA.8Efirefly-rk3288_2 | 对于firefly-rk3288 ]]
 +
**** 12.3.1.3 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E5.AF.B9.E4.BA.8Efirefly.E7.9A.84roc-rk3399-pc_2 | 对于firefly的roc-rk3399-pc ]]
 +
**** 12.3.1.4 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E5.AF.B9.E4.BA.8E.E7.99.BE.E9.97.AE.E7.BD.91.E4.BD.BF.E7.94.A8QEMU.E6.A8.A1.E6.8B.9F.E7.9A.84IMX6ULL.E6.9D.BF.E5.AD.90_2 | 对于百问网使用QEMU模拟的IMX6ULL板子 ]]
 +
**** 12.3.1.5 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E5.AF.B9.E4.BA.8E.E9.87.8E.E7.81.ABimx6ull-pro_2 | 对于野火imx6ull-pro ]]
 +
**** 12.3.1.6 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E5.AF.B9.E4.BA.8E.E6.AD.A3.E7.82.B9.E5.8E.9F.E5.AD.90imx6ull-alpha_2 | 对于正点原子imx6ull-alpha ]]
 +
*** 12.3.2 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E4.BF.AE.E6.94.B9platform_driver.E7.9A.84.E6.BA.90.E7.A0.81.3D | 修改platform_driver的源码= ]]
 +
** 12.4 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E4.B8.8A.E6.9C.BA.E5.AE.9E.E9.AA.8C_4 | 上机实验 ]]
 +
** 12.5 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E8.B0.83.E8.AF.95.E6.8A.80.E5.B7.A7 | 调试技巧 ]]
 +
*** 12.5.1 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E8.AE.BE.E5.A4.87.E6.A0.91.E7.9A.84.E4.BF.A1.E6.81.AF | 设备树的信息 ]]
 +
*** 12.5.2 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#platform_device.E7.9A.84.E4.BF.A1.E6.81.AF | platform_device的信息 ]]
 +
*** 12.5.3 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#platform_driver.E7.9A.84.E4.BF.A1.E6.81.AF | platform_driver的信息 ]]
 +
** 12.6 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E8.AF.BE.E5.90.8E.E4.BD.9C.E4.B8.9A_9 | 课后作业 ]]
 +
* 13. [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFivePartXIII | APP怎么读取按键值 ]]
 +
** 13.1 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E5.A6.88.E5.A6.88.E6.80.8E.E4.B9.88.E7.9F.A5.E9.81.93.E5.AD.A9.E5.AD.90.E9.86.92.E4.BA.86 | 妈妈怎么知道孩子醒了 ]]
 +
** 13.2 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#APP.E8.AF.BB.E5.8F.96.E6.8C.89.E9.94.AE.E7.9A.844.E7.A7.8D.E6.96.B9.E6.B3.95 | APP读取按键的4种方法 ]]
 +
*** 13.2.1 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E6.9F.A5.E8.AF.A2.E6.96.B9.E5.BC.8F | 查询方式 ]]
 +
*** 13.2.2 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E4.BC.91.E7.9C.A0-.E5.94.A4.E9.86.92.E6.96.B9.E5.BC.8F | 休眠-唤醒方式 ]]
 +
*** 13.2.3 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#poll.E6.96.B9.E5.BC.8F | poll方式 ]]
 +
*** 13.2.4 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E5.BC.82.E6.AD.A5.E9.80.9A.E7.9F.A5.E6.96.B9.E5.BC.8F | 异步通知方式 ]]
 +
**** 13.2.4.1 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E5.BC.82.E6.AD.A5.E9.80.9A.E7.9F.A5.E7.9A.84.E5.8E.9F.E7.90.86.EF.BC.9A.E5.8F.91.E4.BF.A1.E5.8F.B7 | 异步通知的原理:发信号 ]]
 +
**** 13.2.4.2 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E5.BA.94.E7.94.A8.E7.A8.8B.E5.BA.8F.E4.B9.8B.E9.97.B4.E5.8F.91.E4.BF.A1.E5.8F.B7.E7.A4.BA.E4.BE.8B.E4.BB.A3.E7.A0.81 | 应用程序之间发信号示例代码 ]]
 +
*** 13.2.5 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E9.A9.B1.E5.8A.A8.E7.A8.8B.E5.BA.8F.E6.8F.90.E4.BE.9B.E8.83.BD.E5.8A.9B.EF.BC.8C.E4.B8.8D.E6.8F.90.E4.BE.9B.E7.AD.96.E7.95.A5 | 驱动程序提供能力,不提供策略 ]]
 +
* 14. [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFivePartXIV | 查询方式的按键驱动程序_编写框架 ]]
 +
** 14.1 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#LED.E9.A9.B1.E5.8A.A8.E5.9B.9E.E9.A1.BE | LED驱动回顾 ]]
 +
** 14.2 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E6.8C.89.E9.94.AE.E9.A9.B1.E5.8A.A8.E7.BC.96.E5.86.99.E6.80.9D.E8.B7.AF | 按键驱动编写思路 ]]
 +
** 14.3 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E7.BC.96.E7.A8.8B.EF.BC.9A.E5.85.88.E5.86.99.E6.A1.86.E6.9E.B6 | 编程:先写框架 ]]
 +
*** 14.3.1[[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E6.8A.8A.E6.8C.89.E9.94.AE.E7.9A.84.E6.93.8D.E4.BD.9C.E6.8A.BD.E8.B1.A1.E5.87.BA.E4.B8.80.E4.B8.AAbutton_operations.E7.BB.93.E6.9E.84.E4.BD.93 | 把按键的操作抽象出一个button_operations结构体 ]]
 +
*** 14.3.2 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E9.A9.B1.E5.8A.A8.E7.A8.8B.E5.BA.8F.E7.9A.84.E4.B8.8A.E5.B1.82.EF.BC.9Afile_operations.E7.BB.93.E6.9E.84.E4.BD.93_2 | 驱动程序的上层:file_operations结构体 ]]
 +
** 14.4 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E6.B5.8B.E8.AF.95_2 | 测试 ]]
 +
** 14.5 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E8.AF.BE.E5.90.8E.E6.80.8E.E4.B8.9A | 课后怎业 ]]
 +
* 15. [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFivePartXV | 具体单板的按键驱动程序(查询方式) ]]
 +
** 15.1 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#GPIO.E6.93.8D.E4.BD.9C.E5.9B.9E.E9.A1.BE | GPIO操作回顾 ]]
 +
** 15.2 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#AM335X.E7.9A.84.E6.8C.89.E9.94.AE.E9.A9.B1.E5.8A.A8.E7.A8.8B.E5.BA.8F.28.E6.9F.A5.E8.AF.A2.E6.96.B9.E5.BC.8F.29 | AM335X的按键驱动程序(查询方式) ]]
 +
*** 15.2.1 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E5.85.88.E7.9C.8B.E5.8E.9F.E7.90.86.E5.9B.BE.E7.A1.AE.E5.AE.9A.E5.BC.95.E8.84.9A.E5.8F.8A.E6.93.8D.E4.BD.9C.E6.96.B9.E6.B3.95 | 先看原理图确定引脚及操作方法 ]]
 +
*** 15.2.2 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E5.86.8D.E7.9C.8B.E8.8A.AF.E7.89.87.E6.89.8B.E5.86.8C.E7.A1.AE.E5.AE.9A.E5.AF.84.E5.AD.98.E5.99.A8.E5.8F.8A.E6.93.8D.E4.BD.9C.E6.96.B9.E6.B3.95 | 再看芯片手册确定寄存器及操作方法 ]]
 +
*** 15.2.3 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E7.BC.96.E7.A8.8B | 编程 ]]
 +
**** 15.2.3.1 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E7.A8.8B.E5.BA.8F.E6.A1.86.E6.9E.B6 | 程序框架 ]]
 +
**** 15.2.3.2 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E7.A1.AC.E4.BB.B6.E7.9B.B8.E5.85.B3.E7.9A.84.E4.BB.A3.E7.A0.81 | 硬件相关的代码 ]]
 +
*** 15.2.4 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E6.B5.8B.E8.AF.95_3 | 测试 ]]
 +
*** 15.2.5 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E8.AF.BE.E5.90.8E.E4.BD.9C.E4.B8.9A_10 | 课后作业 ]]
 +
** 15.3 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#RK3288.E7.9A.84.E6.8C.89.E9.94.AE.E9.A9.B1.E5.8A.A8.E7.A8.8B.E5.BA.8F.28.E6.9F.A5.E8.AF.A2.E6.96.B9.E5.BC.8F.29 | RK3288的按键驱动程序(查询方式) ]]
 +
*** 15.3.1 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E5.85.88.E7.9C.8B.E5.8E.9F.E7.90.86.E5.9B.BE.E7.A1.AE.E5.AE.9A.E5.BC.95.E8.84.9A.E5.8F.8A.E6.93.8D.E4.BD.9C.E6.96.B9.E6.B3.95_2 | 先看原理图确定引脚及操作方法 ]]
 +
*** 15.3.2 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E5.86.8D.E7.9C.8B.E8.8A.AF.E7.89.87.E6.89.8B.E5.86.8C.E7.A1.AE.E5.AE.9A.E5.AF.84.E5.AD.98.E5.99.A8.E5.8F.8A.E6.93.8D.E4.BD.9C.E6.96.B9.E6.B3.95_2 | 再看芯片手册确定寄存器及操作方法 ]]
 +
*** 15.3.3 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E7.BC.96.E7.A8.8B_2 | 编程 ]]
 +
**** 15.3.3.1 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E7.A8.8B.E5.BA.8F.E6.A1.86.E6.9E.B6_2 | 程序框架 ]]
 +
**** 15.3.3.2 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E7.A1.AC.E4.BB.B6.E7.9B.B8.E5.85.B3.E7.9A.84.E4.BB.A3.E7.A0.81_2 | 硬件相关的代码 ]]
 +
*** 15.3.4 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E6.B5.8B.E8.AF.95_4 | 测试 ]]
 +
*** 15.3.5 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E8.AF.BE.E5.90.8E.E4.BD.9C.E4.B8.9A_11 | 课后作业 ]]
 +
** 15.4 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#RK3399.E7.9A.84.E6.8C.89.E9.94.AE.E9.A9.B1.E5.8A.A8.E7.A8.8B.E5.BA.8F.28.E6.9F.A5.E8.AF.A2.E6.96.B9.E5.BC.8F.29 | RK3399的按键驱动程序(查询方式) ]]
 +
*** 15.4.1 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E5.85.88.E7.9C.8B.E5.8E.9F.E7.90.86.E5.9B.BE.E7.A1.AE.E5.AE.9A.E5.BC.95.E8.84.9A.E5.8F.8A.E6.93.8D.E4.BD.9C.E6.96.B9.E6.B3.95_3 | 先看原理图确定引脚及操作方法 ]]
 +
*** 15.4.2 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E5.86.8D.E7.9C.8B.E8.8A.AF.E7.89.87.E6.89.8B.E5.86.8C.E7.A1.AE.E5.AE.9A.E5.AF.84.E5.AD.98.E5.99.A8.E5.8F.8A.E6.93.8D.E4.BD.9C.E6.96.B9.E6.B3.95_3 | 再看芯片手册确定寄存器及操作方法 ]]
 +
*** 15.4.3 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E7.BC.96.E7.A8.8B_3 | 编程 ]]
 +
**** 15.4.3.1 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E7.A8.8B.E5.BA.8F.E6.A1.86.E6.9E.B6_3 | 程序框架 ]]
 +
**** 15.4.3.2 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E7.A1.AC.E4.BB.B6.E7.9B.B8.E5.85.B3.E7.9A.84.E4.BB.A3.E7.A0.81_3 | 硬件相关的代码 ]]
 +
*** 15.4.4 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E6.B5.8B.E8.AF.95_5 | 测试 ]]
 +
*** 15.4.5 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E8.AF.BE.E5.90.8E.E4.BD.9C.E4.B8.9A_12 | 课后作业 ]]
 +
** 15.5 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E7.99.BE.E9.97.AE.E7.BD.91IMX6ULL-QEMU.E7.9A.84.E6.8C.89.E9.94.AE.E9.A9.B1.E5.8A.A8.E7.A8.8B.E5.BA.8F.28.E6.9F.A5.E8.AF.A2.E6.96.B9.E5.BC.8F.29 | 百问网IMX6ULL-QEMU的按键驱动程序(查询方式) ]]
 +
*** 15.5.1 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E5.85.88.E7.9C.8B.E5.8E.9F.E7.90.86.E5.9B.BE.E7.A1.AE.E5.AE.9A.E5.BC.95.E8.84.9A.E5.8F.8A.E6.93.8D.E4.BD.9C.E6.96.B9.E6.B3.95_4 | 先看原理图确定引脚及操作方法 ]]
 +
*** 15.5.2 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E5.86.8D.E7.9C.8B.E8.8A.AF.E7.89.87.E6.89.8B.E5.86.8C.E7.A1.AE.E5.AE.9A.E5.AF.84.E5.AD.98.E5.99.A8.E5.8F.8A.E6.93.8D.E4.BD.9C.E6.96.B9.E6.B3.95_4 | 再看芯片手册确定寄存器及操作方法 ]]
 +
*** 15.5.3 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E7.BC.96.E7.A8.8B_4 | 编程 ]]
 +
**** 15.5.3.1 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E7.A8.8B.E5.BA.8F.E6.A1.86.E6.9E.B6_4 | 程序框架 ]]
 +
**** 15.5.3.2 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E7.A1.AC.E4.BB.B6.E7.9B.B8.E5.85.B3.E7.9A.84.E4.BB.A3.E7.A0.81_4 | 硬件相关的代码 ]]
 +
*** 15.5.4 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E6.B5.8B.E8.AF.95_6 | 测试 ]]
 +
*** 15.5.5 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E8.AF.BE.E5.90.8E.E4.BD.9C.E4.B8.9A_13 | 课后作业 ]]
 +
* 16. [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFivePartXVI | 异常与中断的概念及处理流程 ]]
 +
** 16.1 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E4.B8.AD.E6.96.AD.E7.9A.84.E5.BC.95.E5.85.A5 | 中断的引入 ]]
 +
*** 16.1.1 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E5.A6.88.E5.A6.88.E6.80.8E.E4.B9.88.E7.9F.A5.E9.81.93.E5.AD.A9.E5.AD.90.E9.86.92.E4.BA.86_2 | 妈妈怎么知道孩子醒了 ]]
 +
*** 16.1.2 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E5.B5.8C.E5.85.A5.E7.B3.BB.E7.BB.9F.E4.B8.AD.E4.B9.9F.E6.9C.89.E7.B1.BB.E4.BC.BC.E7.9A.84.E6.83.85.E5.86.B5 | 嵌入系统中也有类似的情况 ]]
 +
** 16.2 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E4.B8.AD.E6.96.AD.E7.9A.84.E5.A4.84.E7.90.86.E6.B5.81.E7.A8.8B | 中断的处理流程 ]]
 +
** 16.3 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E5.BC.82.E5.B8.B8.E5.90.91.E9.87.8F.E8.A1.A8 | 异常向量表 ]]
 +
** 16.4 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFivePartXVII | 参考资料 ]]
 +
* 17 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E5.B8.B8.E8.A7.81.E9.97.AE.E9.A2.98 | 常见问题 ]]
 +
** 17.1 [[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterFive#.E5.AE.89.E8.A3.85.E9.A9.B1.E5.8A.A8.E6.97.B6version_magic.E4.B8.8D.E5.8C.B9.E9.85.8D | 安装驱动时version magic不匹配 ]]
 
<br>
 
<br>
 
<br>
 
<br>
第348行: 第600行:
 
}}<br>
 
}}<br>
 
<br>
 
<br>
 
  
 
[[ Category:嵌入式Linux应用开发完全手册第2版 ]]
 
[[ Category:嵌入式Linux应用开发完全手册第2版 ]]

2019年12月16日 (一) 14:38的版本

__NOTITLE__

__NOTITLE__

《嵌入式Linux应用开发完全手册第2版 韦东山全系列视频文档全集》目录索引

第一篇 韦东山全系列视频介绍及资料下载




第二篇 Linux 基本操作与开发工具使用








第三篇 开发板快速上手










第四篇 嵌入式 Linux 应用开发基础知识








第五篇 嵌入式 Linux 驱动开发基础知识