“ELADCMSecondEdition”的版本间的差异

来自百问网嵌入式Linux wiki
 
(未显示2个用户的13个中间版本)
第1行: 第1行:
=《嵌入式Linux应用开发完全手册第2版 韦东山全系列视频文档全集》目录索引=
 
==[[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterOne | 第一篇 韦东山全系列视频介绍及资料下载 ]]==
 
#[[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterOne | 全系列视频介绍 ]]
 
#[[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterOne | 资源下载方法 ]]
 
==[[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterTwo | 第二篇 Linux 基本操作与开发工具使用 ]]==
 
#[[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterTwo | 介绍与引导 ]]
 
#[[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterTwo | Linux基本操作 ]]
 
#[[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterTwo | 虚拟机和Ubuntu的网络设置 ]]
 
#[[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionChapterTwo | 开发工具的使用 ]]
 
==[[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionThirdChapter| 第三篇 开发板快速上手 ]]==
 
#[[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionThirdChapter| 资料下载 ]]
 
#[[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionThirdChapter| 接线与启动 ]]
 
#[[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionThirdChapter| 系统烧写 ]]
 
#[[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionThirdChapter| 部件实验 ]]
 
#[[ EmbeddedLinuxApplicationDevelopmentCompleteManualSecondEditionThirdChapter| 后续开发准备工作:准备交叉编译工具链,编译内核 ]]
 
==第四篇 嵌入式 Linux 应用开发基础知识==
 
  
==第五篇 嵌入式 Linux 驱动开发基础知识==
+
=[[ ELADCMSecondEdition| 《嵌入式Linux应用开发完全手册第2版 韦东山全系列视频文档全集》目录索引]]=
 +
==[[ ELADCMSecondEditionChapterOne | 第一篇 韦东山全系列视频介绍及资料下载 ]]==
 +
{{#menu:
 +
* 1. [[ ELADCMSecondEditionChapterOne#.E5.85.A8.E7.B3.BB.E5.88.97.E8.A7.86.E9.A2.91.E4.BB.8B.E7.BB.8D | 全系列视频介绍 ]]
 +
** 1.1 [[ ELADCMSecondEditionChapterOne#.E5.B5.8C.E5.85.A5.E5.BC.8FLinux.E5.8F.91.E5.B1.95.E8.BF.85.E9.80.9F.EF.BC.8C.E5.AD.A6.E4.B9.A0.E6.96.B9.E6.B3.95.E8.A6.81.E4.B8.8E.E6.97.B6.E4.BF.B1.E8.BF.9B | 嵌入式Linux发展迅速,学习方法要与时俱进 ]]
 +
*** 1.1.1 [[ ELADCMSecondEditionChapterOne#.E5.B5.8C.E5.85.A5.E5.BC.8FLinux.E5.8F.98.E5.8C.96.E5.B7.A8.E5.A4.A7 | 嵌入式Linux变化巨大 ]]
 +
**** 1.1.1.1 [[ ELADCMSecondEditionChapterOne#.E5.9F.BA.E6.9C.AC.E7.B3.BB.E7.BB.9F.E8.83.BD.E7.94.A8 | 基本系统能用 ]]
 +
**** 1.1.1.2 [[ ELADCMSecondEditionChapterOne#.E5.9F.BA.E7.A1.80.E9.A9.B1.E5.8A.A8.E5.BC.B1.E5.8C.96.EF.BC.9B.E9.AB.98.E7.BA.A7.E9.A9.B1.E5.8A.A8.E4.B8.93.E4.B8.9A.E5.8C.96 | 基础驱动弱化;高级驱动专业化 ]]
 +
**** 1.1.1.3 [[ ELADCMSecondEditionChapterOne#.E9.A1.B9.E7.9B.AE.E4.B8.BA.E7.8E.8B | 项目为王 ]]
 +
**** 1.1.1.4 [[ ELADCMSecondEditionChapterOne#.E8.B0.83.E8.AF.95.E5.BE.88.E9.87.8D.E8.A6.81 | 调试很重要 ]]
 +
*** 1.1.2 [[ ELADCMSecondEditionChapterOne#.E5.B5.8C.E5.85.A5.E5.BC.8F_Linux_.E7.9A.84.E5.AD.A6.E4.B9.A0.E6.96.B9.E6.B3.95.E8.A6.81.E4.B8.8E.E6.97.B6.E4.BF.B1.E8.BF.9B | 嵌入式 Linux 的学习方法要与时俱进 ]]
 +
** 1.2 [[ ELADCMSecondEditionChapterOne#.E5.BF.AB.E9.80.9F.E5.85.A5.E9.97.A8 | 快速入门 ]]
 +
*** 1.2.1 [[ ELADCMSecondEditionChapterOne#.E8.AE.B2.E5.93.AA.E4.BA.9B.E5.86.85.E5.AE.B9.EF.BC.9F | 讲哪些内容? ]]
 +
*** 1.2.2 [[ ELADCMSecondEditionChapterOne#.E6.80.8E.E4.B9.88.E8.AE.B2.E5.91.A2.EF.BC.9F | 怎么讲呢? ]]
 +
** 1.3 [[ ELADCMSecondEditionChapterOne#.E5.AE.9E.E6.88.98.E9.A1.B9.E7.9B.AE | 实战项目 ]]
 +
** 1.4 [[ ELADCMSecondEditionChapterOne#.E9.A9.B1.E5.8A.A8.E5.A4.A7.E5.85.A8 | 驱动大全 ]]
 +
** 1.5 [[ ELADCMSecondEditionChapterOne#.E4.B8.93.E9.A2.98 | 专题 ]]
 +
* 2. [[ ELADCMSecondEditionChapterOne#.E8.B5.84.E6.BA.90.E4.B8.8B.E8.BD.BD.E6.96.B9.E6.B3.95 | 资源下载方法 ]]
 +
** 2.1 [[ ELADCMSecondEditionChapterOne#.E4.BD.BF.E7.94.A8.E7.AE.80.E6.98.8E.E6.95.99.E7.A8.8B | GIT使用简明教程 ]]
 +
*** 2.1.1 [[ ELADCMSecondEditionChapterOne#.E5.AE.89.E8.A3.85git | 安装git ]]
 +
*** 2.1.2 [[ ELADCMSecondEditionChapterOne#.E4.BD.BF.E7.94.A8.E7.A4.BA.E4.BE.8B.EF.BC.9A.E8.8E.B7.E5.BE.97.E5.85.A8.E9.83.A8.E6.BA.90.E7.A0.81 | 使用示例:获得全部源码 ]]
 +
** 2.2 [[ ELADCMSecondEditionChapterOne#.E7.99.BE.E5.BA.A6.E7.BD.91.E7.9B.98.E4.BD.BF.E7.94.A8.E6.95.99.E7.A8.8B | 百度网盘使用教程 ]]
 +
*** 2.2.1 [[ ELADCMSecondEditionChapterOne#.E6.B3.A8.E5.86.8C | 注册 ]]
 +
*** 2.2.2 [[ ELADCMSecondEditionChapterOne#.E8.BD.AC.E5.AD.98 | 转存 ]]
 +
*** 2.2.3 [[ ELADCMSecondEditionChapterOne#.E4.B8.8B.E8.BD.BD | 下载 ]]
 +
** 2.3 [[ ELADCMSecondEditionChapterOne#.E6.9C.AC.E6.95.99.E7.A8.8B.E6.89.80.E6.9C.89.E8.B5.84.E6.96.99.E4.BB.8B.E7.BB.8D | 本教程所有资料介绍 ]]
 +
*** 2.3.1 [[ ELADCMSecondEditionChapterOne#.E5.BD.95.E5.88.B6.E8.A7.86.E9.A2.91.E8.BF.87.E7.A8.8B.E4.B8.AD.E7.BC.96.E5.86.99.E7.9A.84.E6.96.87.E6.A1.A3.E3.80.81.E6.BA.90.E7.A0.81 | 录制视频过程中编写的文档、源码 ]]
 +
*** 2.3.2 [[ ELADCMSecondEditionChapterOne#.E5.BD.95.E5.88.B6.E7.9A.84.E8.A7.86.E9.A2.91_.E5.92.8C_.E5.BC.80.E5.8F.91.E6.9D.BF.E7.9A.84_BSP_.E5.8C.85 | 录制的视频 和 开发板的 BSP 包 ]]
 +
** 2.4 [[ ELADCMSecondEditionChapterOne#.E6.89.8B.E5.86.8C.E3.80.81.E6.96.87.E6.A1.A3.E3.80.81.E6.BA.90.E7.A0.81.E7.9A.84.E4.B8.8B.E8.BD.BD.E4.B8.8E.E6.9B.B4.E6.96.B0.3D | 手册、文档、源码的下载与更新 ]]
 +
<br>
 +
}}<br>
 +
<br>
  
 +
==[[ ELADCMSecondEditionChapterTwo | 第二篇 Linux 基本操作与开发工具使用 ]]==
 +
{{#menu:
 +
* 1. [[ ELADCMSecondEditionChapterTwo#.E4.BB.8B.E7.BB.8D.E4.B8.8E.E5.BC.95.E5.AF.BC | 介绍与引导 ]]
 +
** 1.1 [[ ELADCMSecondEditionChapterTwo#.E4.B8.8B.E8.BD.BD.E5.AE.89.E8.A3.85VMWARE.EF.BC.8C.E4.B8.8B.E8.BD.BDubuntu.E6.98.A0.E8.B1.A1.E3.80.81.E6.89.93.E5.BC.80 | 下载安装VMWARE,下载ubuntu映象、打开 ]]
 +
** 1.2 [[ ELADCMSecondEditionChapterTwo#.E5.9C.A8ubuntu.E4.B8.AD.E7.BB.83.E4.B9.A0.E5.B8.B8.E7.94.A8Linux.E5.91.BD.E4.BB.A4 | 在ubuntu中练习常用Linux命令 ]]
 +
** 1.3 [[ ELADCMSecondEditionChapterTwo#.E8.99.9A.E6.8B.9F.E6.9C.BA.E5.92.8CUbuntu.E7.9A.84.E7.BD.91.E7.BB.9C.E8.AE.BE.E7.BD.AE | 虚拟机和Ubuntu的网络设置 ]]
 +
* 2. [[ ELADCMSecondEditionChapterTwo#Linux.E5.9F.BA.E6.9C.AC.E6.93.8D.E4.BD.9C | Linux基本操作 ]]
 +
** 2.1 [[ ELADCMSecondEditionChapterTwo#Ubuntu.E6.A1.8C.E9.9D.A2.E7.AE.80.E5.8D.95.E6.93.8D.E4.BD.9C | Ubuntu桌面简单操作 ]]
 +
*** 2.1.1 [[ ELADCMSecondEditionChapterTwo#Ubuntu.E5.92.8CWindows.E7.9A.84.E6.9C.80.E5.A4.A7.E5.B7.AE.E5.88.AB.EF.BC.9A.E7.9B.AE.E5.BD.95 | Ubuntu和Windows的最大差别:目录 ]]
 +
*** 2.1.2 [[ ELADCMSecondEditionChapterTwo#.E5.90.AF.E5.8A.A8.E7.BB.88.E7.AB.AF | 启动终端 ]]
 +
*** 2.1.3 [[ ELADCMSecondEditionChapterTwo#.E8.AE.BE.E7.BD.AE.E5.B1.8F.E5.B9.95 | 设置屏幕 ]]
 +
*** 2.1.4 [[ ELADCMSecondEditionChapterTwo#.E8.AE.BE.E7.BD.AE.E7.BD.91.E7.BB.9C | 设置网络 ]]
 +
** 2.2 [[ ELADCMSecondEditionChapterTwo#Linux.E5.91.BD.E4.BB.A4 | Linux命令 ]]
 +
*** 2.2.1 [[ ELADCMSecondEditionChapterTwo#Linux.E5.91.BD.E4.BB.A4.E7.9A.84.E6.8F.90.E7.A4.BA.E7.AC.A6 | Linux命令的提示符 ]]
 +
*** 2.2.2 [[ ELADCMSecondEditionChapterTwo#Linux.E5.91.BD.E4.BB.A4.E7.9A.84.E6.A0.BC.E5.BC.8F | Linux命令的格式 ]]
 +
*** 2.2.3 [[ ELADCMSecondEditionChapterTwo#.E8.AE.B0.E4.BD.8F.E5.91.BD.E4.BB.A4.E5.B9.B6.E4.B8.8D.E9.9A.BE.2C_.E5.85.88.E8.83.8C.E5.87.A0.E4.B8.AA.E5.8D.95.E8.AF.8D | 记住命令并不难, 先背几个单词 ]]
 +
*** 2.2.4 [[ ELADCMSecondEditionChapterTwo#.E7.BB.9D.E5.AF.B9.E8.B7.AF.E5.BE.84.E5.92.8C.E7.9B.B8.E5.AF.B9.E8.B7.AF.E5.BE.84 | 绝对路径和相对路径 ]]
 +
*** 2.2.5 [[ ELADCMSecondEditionChapterTwo#.E7.9B.AE.E5.BD.95.2F.E6.96.87.E4.BB.B6.E6.93.8D.E4.BD.9C.E5.91.BD.E4.BB.A4 | 目录/文件操作命令 ]]
 +
*** 2.2.6 [[ ELADCMSecondEditionChapterTwo#.E6.9F.A5.E6.89.BE.2F.E6.90.9C.E7.B4.A2.E5.91.BD.E4.BB.A4 | 查找/搜索命令 ]]
 +
*** 2.2.7 [[ ELADCMSecondEditionChapterTwo#.E5.8E.8B.E7.BC.A9.2F.E8.A7.A3.E5.8E.8B.E5.91.BD.E4.BB.A4 | 压缩/解压命令 ]]
 +
*** 2.2.8 [[ ELADCMSecondEditionChapterTwo#.E7.BD.91.E7.BB.9C.E5.91.BD.E4.BB.A4 | 网络命令 ]]
 +
*** 2.2.9 [[ ELADCMSecondEditionChapterTwo#.E5.85.B6.E4.BB.96.E5.91.BD.E4.BB.A4 | 其他命令 ]]
 +
** 2.3 [[ ELADCMSecondEditionChapterTwo#vi.E7.BC.96.E8.BE.91.E5.99.A8 | vi编辑器 ]]
 +
* 3. [[ ELADCMSecondEditionChapterTwo#.E8.99.9A.E6.8B.9F.E6.9C.BA.E5.92.8CUbuntu.E7.9A.84.E7.BD.91.E7.BB.9C.E8.AE.BE.E7.BD.AE_2 | 虚拟机和Ubuntu的网络设置 ]]
 +
** 3.1 [[ ELADCMSecondEditionChapterTwo#Windows.E9.80.9A.E8.BF.87WIFI.E4.B8.8A.E7.BD.91.EF.BC.8C.E5.BC.80.E5.8F.91.E6.9D.BF.E7.A6.BB.E6.97.A0.E7.BA.BF.E8.B7.AF.E7.94.B1.E5.99.A8.E5.BE.88.E8.BF.91 | Windows通过WIFI上网,开发板离无线路由器很近 ]]
 +
*** 3.1.1 [[ ELADCMSecondEditionChapterTwo#.E8.BF.9E.E6.8E.A5.E7.BD.91.E7.BA.BF | 连接网线 ]]
 +
*** 3.1.2 [[ ELADCMSecondEditionChapterTwo#VMWare.E9.87.8C.E9.80.89.E6.8B.A9WIFI.E7.BD.91.E5.8D.A1 | VMWare里选择WIFI网卡 ]]
 +
*** 3.1.3 [[ ELADCMSecondEditionChapterTwo#.E8.AE.BE.E7.BD.AEIP | 设置IP ]]
 +
**** 3.1.3.1 [[ ELADCMSecondEditionChapterTwo#.E8.AE.BE.E7.BD.AEWindows_IP | 设置Windows IP ]]
 +
**** 3.1.3.2 [[ ELADCMSecondEditionChapterTwo#.E8.AE.BE.E7.BD.AEUbuntu_IP | 设置Ubuntu IP ]]
 +
**** 3.1.3.3 [[ ELADCMSecondEditionChapterTwo#.E8.AE.BE.E7.BD.AE.E5.BC.80.E5.8F.91.E6.9D.BFIP | 设置开发板IP ]]
 +
*** 3.1.4 [[ ELADCMSecondEditionChapterTwo#.E9.AA.8C.E8.AF.81 | 验证 ]]
 +
** 3.2 [[ ELADCMSecondEditionChapterTwo#Windows.E9.80.9A.E8.BF.87WIFI.E4.B8.8A.E7.BD.91.EF.BC.8C.E5.BC.80.E5.8F.91.E6.9D.BF.E7.A6.BB.E6.97.A0.E7.BA.BF.E8.B7.AF.E7.94.B1.E5.99.A8.E5.BE.88.E8.BF.9C | Windows通过WIFI上网,开发板离无线路由器很远 ]]
 +
*** 3.2.1 [[ ELADCMSecondEditionChapterTwo#.E8.BF.9E.E6.8E.A5.E7.BD.91.E7.BA.BF_2 | 连接网线 ]]
 +
**** 3.2.1.1 [[ ELADCMSecondEditionChapterTwo#Windows.E7.94.B5.E8.84.91.E5.92.8C.E5.BC.80.E5.8F.91.E6.9D.BF.E7.9A.84.E7.BD.91.E7.BA.BF.EF.BC.8C.E9.83.BD.E6.8E.A5.E5.88.B0.E5.8F.A6.E4.B8.80.E4.B8.AA.E9.9B.86.E7.BA.BF.E5.99.A8.E6.88.96.E8.B7.AF.E7.94.B1.E5.99.A8 | Windows电脑和开发板的网线,都接到另一个集线器或路由器 ]]
 +
**** 3.2.1.2 [[ ELADCMSecondEditionChapterTwo#.E7.94.B5.E8.84.91.E5.92.8C.E5.BC.80.E5.8F.91.E6.9D.BF.E7.94.A8.E7.BD.91.E7.BA.BF.E7.9B.B4.E8.BF.9E.28.E7.BB.9D.E5.AF.B9.E4.B8.8D.E5.BB.BA.E8.AE.AE.29 | 电脑和开发板用网线直连(绝对不建议) ]]
 +
*** 3.2.2 [[ ELADCMSecondEditionChapterTwo#VMWare.E9.87.8C.E9.80.89.E6.8B.A9.E6.9C.89.E7.BA.BF.E7.BD.91.E5.8D.A1 | VMWare里选择有线网卡 ]]
 +
*** 3.2.3 [[ ELADCMSecondEditionChapterTwo#.E8.AE.BE.E7.BD.AEIP_2 | 设置IP ]]
 +
**** 3.2.3.1 [[ ELADCMSecondEditionChapterTwo#.E8.AE.BE.E7.BD.AEWindows_IP_2 | 设置Windows IP ]]
 +
**** 3.2.3.2 [[ ELADCMSecondEditionChapterTwo#.E8.AE.BE.E7.BD.AEUbuntu_IP_2 | 设置Ubuntu IP ]]
 +
**** 3.2.3.3 [[ ELADCMSecondEditionChapterTwo#.E8.AE.BE.E7.BD.AE.E5.BC.80.E5.8F.91.E6.9D.BFIP_2 | 设置开发板IP ]]
 +
*** 3.2.4 [[ ELADCMSecondEditionChapterTwo#.E9.AA.8C.E8.AF.81_2 | 验证 ]]
 +
** 3.3 [[ ELADCMSecondEditionChapterTwo#Windows.E4.B8.8D.E4.BD.BF.E7.94.A8WIFI.E7.BD.91.E5.8D.A1 | Windows不使用WIFI网卡 ]]
 +
*** 3.3.1 [[ ELADCMSecondEditionChapterTwo#.E8.BF.9E.E6.8E.A5.E7.BD.91.E7.BA.BF_3 | 连接网线 ]]
 +
**** 3.3.1.1 [[ ELADCMSecondEditionChapterTwo#Windows.E9.80.9A.E8.BF.87.E6.9C.89.E7.BA.BF.E7.BD.91.E5.8D.A1.E6.8E.A5.E8.B7.AF.E7.94.B1.E5.99.A8.E4.B8.8A.E7.BD.91.EF.BC.8C.E5.BC.80.E5.8F.91.E6.9D.BF.E7.A6.BB.E8.B7.AF.E7.94.B1.E5.99.A8.E5.BE.88.E8.BF.91 | Windows通过有线网卡接路由器上网,开发板离路由器很近 ]]
 +
**** 3.3.1.2 [[ ELADCMSecondEditionChapterTwo#Windows.E9.80.9A.E8.BF.87.E6.9C.89.E7.BA.BF.E7.BD.91.E5.8D.A1.E6.8E.A5.E8.B7.AF.E7.94.B1.E5.99.A8.E4.B8.8A.E7.BD.91.EF.BC.8C.E5.BC.80.E5.8F.91.E6.9D.BF.E7.A6.BB.E8.B7.AF.E7.94.B1.E5.99.A8.E5.BE.88.E8.BF.9C | Windows通过有线网卡接路由器上网,开发板离路由器很远 ]]
 +
**** 3.3.1.3 [[ ELADCMSecondEditionChapterTwo#.E4.B8.8D.E4.B8.8A.E7.BD.91.EF.BC.8CWindows.E7.94.B5.E8.84.91.E5.92.8C.E5.BC.80.E5.8F.91.E6.9D.BF.E7.9A.84.E7.BD.91.E7.BA.BF.EF.BC.8C.E9.83.BD.E6.8E.A5.E5.88.B0.E9.9B.86.E7.BA.BF.E5.99.A8.E6.88.96.E8.B7.AF.E7.94.B1.E5.99.A8 | 不上网,Windows电脑和开发板的网线,都接到集线器或路由器 ]]
 +
**** 3.3.1.4 [[ ELADCMSecondEditionChapterTwo#.E7.94.B5.E8.84.91.E5.92.8C.E5.BC.80.E5.8F.91.E6.9D.BF.E7.94.A8.E7.BD.91.E7.BA.BF.E7.9B.B4.E8.BF.9E.28.E4.B8.8D.E5.BB.BA.E8.AE.AE.29 | 电脑和开发板用网线直连(不建议) ]]
 +
*** 3.3.2 [[ ELADCMSecondEditionChapterTwo#VMWare.E9.87.8C.E9.80.89.E6.8B.A9.E6.9C.89.E7.BA.BF.E7.BD.91.E5.8D.A1_2 | VMWare里选择有线网卡 ]]
 +
*** 3.3.3 [[ ELADCMSecondEditionChapterTwo#.E8.AE.BE.E7.BD.AEIP_3 | 设置IP ]]
 +
**** 3.3.3.2 [[ ELADCMSecondEditionChapterTwo#.E8.AE.BE.E7.BD.AEWindows_IP_3 | 设置Windows IP ]]
 +
**** 3.3.3.3 [[ ELADCMSecondEditionChapterTwo#.E8.AE.BE.E7.BD.AEUbuntu_IP_3 | 设置Ubuntu IP ]]
 +
**** 3.3.3.4 [[ ELADCMSecondEditionChapterTwo#.E8.AE.BE.E7.BD.AE.E5.BC.80.E5.8F.91.E6.9D.BFIP_3 | 设置开发板IP ]]
 +
*** 3.3.4 [[ ELADCMSecondEditionChapterTwo#.E9.AA.8C.E8.AF.81_3 | 验证 ]]
 +
** 3.3.4 [[ ELADCMSecondEditionChapterTwo#.E5.8F.AA.E6.83.B3.E8.AE.A9Ubuntu.E8.83.BD.E4.B8.8A.E7.BD.91.E3.80.81.E8.83.BD.E8.B7.9FWindows.E4.BA.92.E8.81.94.28.E6.A0.A1.E5.9B.AD.E7.BD.91.E5.BF.85.E7.9C.8B.29 | 只想让Ubuntu能上网、能跟Windows互联(校园网必看) ]]
 +
*** 3.3.4.1 [[ ELADCMSecondEditionChapterTwo#VMWare.E7.9A.843.E7.A7.8D.E7.BD.91.E7.BB.9C.E6.A8.A1.E5.BC.8F.E7.AE.80.E4.BB.8B | VMWare的3种网络模式简介 ]]
 +
*** 3.3.4.2 [[ ELADCMSecondEditionChapterTwo#NAT.E6.A8.A1.E5.BC.8F.E9.80.82.E7.94.A8.E6.83.85.E5.86.B5 | NAT模式适用情况 ]]
 +
*** 3.3.4.3 [[ ELADCMSecondEditionChapterTwo#NAT.E6.A8.A1.E5.BC.8F.E7.9A.84.E4.BD.BF.E7.94.A8.EF.BC.9AVMWare.E5.92.8CUbuntu.E7.9A.84.E8.AE.BE.E7.BD.AE | NAT模式的使用:VMWare和Ubuntu的设置 ]]
 +
*** 3.3.4.4 [[ ELADCMSecondEditionChapterTwo#.E6.B5.8B.E8.AF.95 | 测试 ]]
 +
** 3.5 [[ ELADCMSecondEditionChapterTwo#Windows.E5.92.8CUbuntu.E4.B9.8B.E9.97.B4.E8.BF.9C.E7.A8.8B.E6.93.8D.E4.BD.9C | Windows和Ubuntu之间远程操作 ]]
 +
*** 3.5.1 [[ ELADCMSecondEditionChapterTwo#.E4.BD.BF.E7.94.A8MobaXterm.E7.99.BB.E5.BD.95Ubuntu | 使用MobaXterm登录Ubuntu ]]
 +
*** 3.5.2 [[ ELADCMSecondEditionChapterTwo#.E4.BD.BF.E7.94.A8FileZilla.E4.B8.8EUbuntu.E4.BC.A0.E8.BE.93.E6.96.87.E4.BB.B6 | 使用FileZilla与Ubuntu传输文件 ]]
 +
** 3.6 [[ ELADCMSecondEditionChapterTwo#.E5.BC.80.E5.8F.91.E6.9D.BF.E5.92.8CUbuntu.E4.B9.8B.E9.97.B4.E4.BC.A0.E6.96.87.E4.BB.B6 | 开发板和Ubuntu之间传文件 ]]
 +
*** 3.6.1 [[ ELADCMSecondEditionChapterTwo#.E5.BC.80.E5.8F.91.E6.9D.BF.E9.80.9A.E8.BF.87NFS.E6.8C.82.E8.BD.BDUbuntu.E7.9A.84.E7.9B.AE.E5.BD.95 | 开发板通过NFS挂载Ubuntu的目录 ]]
 +
**** 3.6.1.1 [[ ELADCMSecondEditionChapterTwo#.E5.9C.A8Ubuntu.E4.B8.8A.E5.AE.89.E8.A3.85.E3.80.81.E9.85.8D.E7.BD.AENFS.E6.9C.8D.E5.8A.A1 | 在Ubuntu上安装、配置NFS服务 ]]
 +
**** 3.6.1.2 [[ ELADCMSecondEditionChapterTwo#.E5.9C.A8.E5.BC.80.E5.8F.91.E6.9D.BF.E4.B8.8A.E6.8C.82.E8.BD.BDUbuntu.E7.9A.84NFS.E6.96.87.E4.BB.B6.E7.B3.BB.E7.BB.9F | 在开发板上挂载Ubuntu的NFS文件系统 ]]
 +
** 3.7 [[ ELADCMSecondEditionChapterTwo#.E5.B8.B8.E8.A7.81.E9.97.AE.E9.A2.98 | 常见问题 ]]
 +
* 4. [[ ELADCMSecondEditionChapterTwo#.E5.BC.80.E5.8F.91.E5.B7.A5.E5.85.B7.E7.9A.84.E4.BD.BF.E7.94.A8 | 开发工具的使用 ]]
 +
** 4.1 [[ ELADCMSecondEditionChapterTwo#MobaXterm.E7.9A.84.E4.BD.BF.E7.94.A8 | MobaXterm的使用 ]]
 +
*** 4.1.1 [[ ELADCMSecondEditionChapterTwo#.E5.AE.89.E8.A3.85.E5.8F.8A.E8.8E.B7.E5.8F.96ubuntuIP.E5.9C.B0.E5.9D.80 | 安装及获取ubuntuIP地址 ]]
 +
*** 4.1.2 [[ ELADCMSecondEditionChapterTwo#.E6.96.B0.E5.BB.BASSH.E8.BF.9E.E6.8E.A5 | 新建SSH连接 ]]
 +
*** 4.1.3 [[ ELADCMSecondEditionChapterTwo#.E6.96.B0.E5.BB.BA.E4.B8.B2.E5.8F.A3.E8.BF.9E.E6.8E.A5 | 新建串口连接 ]]
 +
**** 4.1.3.1 [[ ELADCMSecondEditionChapterTwo#.E5.AE.89.E8.A3.85USB.E4.B8.B2.E5.8F.A3.E6.A8.A1.E5.9D.97.E9.A9.B1.E5.8A.A8 | 安装USB串口模块驱动 ]]
 +
**** 4.1.3.2 [[ ELADCMSecondEditionChapterTwo#.E8.BF.9E.E6.8E.A5.E4.B8.B2.E5.8F.A3.E7.BA.BF | 连接串口线 ]]
 +
**** 4.1.3.3 [[ ELADCMSecondEditionChapterTwo#.E8.AE.BE.E7.BD.AE.E4.BD.BF.E7.94.A8MobaXterm | 设置使用MobaXterm ]]
 +
** 4.3 [[ ELADCMSecondEditionChapterTwo#.E4.BD.BF.E7.94.A8FileZilla.E5.9C.A8Windows.E5.92.8CUbuntu.E4.B9.8B.E9.97.B4.E4.BC.A0.E6.96.87.E4.BB.B6 | 使用FileZilla在Windows和Ubuntu之间传文件 ]]
 +
** 4.4 [[ ELADCMSecondEditionChapterTwo#.E4.BD.BF.E7.94.A8SourceInsight.E9.98.85.E8.AF.BB.E3.80.81.E7.BC.96.E8.BE.91.E6.BA.90.E7.A0.81 | 使用SourceInsight阅读、编辑源码 ]]
 +
*** 4.4.1 [[ ELADCMSecondEditionChapterTwo#.E5.AE.89.E8.A3.85.E5.B9.B6.E6.96.B0.E5.BB.BA.E9.A1.B9.E7.9B.AE | 安装并新建项目 ]]
 +
*** 4.4.2 [[ ELADCMSecondEditionChapterTwo#Source_Insight.E6.93.8D.E4.BD.9C.E7.A4.BA.E4.BE.8B | Source Insight操作示例 ]]
 +
*** 4.4.3 [[ ELADCMSecondEditionChapterTwo#Source_Insight.E5.BF.AB.E6.8D.B7.E9.94.AE | Source Insight快捷键 ]]
 +
<br>
 +
<br>
 +
<br>
 +
<br>
 +
<br>
 +
}}<br>
 +
<br>
  
__NOTITLE__
+
==[[ ELADCMSecondEditionThirdChapter| 第三篇 开发板快速上手 ]]==
 +
{{#menu:
 +
* 1. [[ ELADCMSecondEditionThirdChapter#.E8.B5.84.E6.96.99.E4.B8.8B.E8.BD.BD | 资料下载 ]]
 +
* 2. [[ ELADCMSecondEditionThirdChapter#.E6.8E.A5.E7.BA.BF.E4.B8.8E.E5.90.AF.E5.8A.A8 | 接线与启动 ]]
 +
** 2.1 [[ ELADCMSecondEditionThirdChapter#100ASK_AM335X.E5.BC.80.E5.8F.91.E6.9D.BF | 100ASK_AM335X开发板 ]]
 +
*** 2.1.1 [[ ELADCMSecondEditionThirdChapter#.E4.B8.B2.E5.8F.A3.E8.BF.9E.E6.8E.A5 | 串口连接 ]]
 +
*** 2.1.2 [[ ELADCMSecondEditionThirdChapter#.E5.90.AF.E5.8A.A8.E6.96.B9.E5.BC.8F.E9.80.89.E6.8B.A9 | 启动方式选择 ]]
 +
** 2.2 [[ ELADCMSecondEditionThirdChapter#Firefly-rk3288.E5.BC.80.E5.8F.91.E6.9D.BF | Firefly-rk3288开发板 ]]
 +
*** 2.2.1 [[ ELADCMSecondEditionThirdChapter#.E4.B8.B2.E5.8F.A3.E8.BF.9E.E6.8E.A5_2 | 串口连接 ]]
 +
*** 2.2.2 [[ ELADCMSecondEditionThirdChapter#.E5.90.AF.E5.8A.A8.E6.96.B9.E5.BC.8F.E9.80.89.E6.8B.A9_2 | 启动方式选择 ]]
 +
** 2.3 [[ ELADCMSecondEditionThirdChapter#roc-rk3399-pc.E5.BC.80.E5.8F.91.E6.9D.BF | roc-rk3399-pc开发板 ]]
 +
*** 2.3.1 [[ ELADCMSecondEditionThirdChapter#.E4.B8.B2.E5.8F.A3.E8.BF.9E.E6.8E.A5_3 | 串口连接 ]]
 +
*** 2.3.2 [[ ELADCMSecondEditionThirdChapter#.E5.90.AF.E5.8A.A8.E6.96.B9.E5.BC.8F.E9.80.89.E6.8B.A9_3 | 启动方式选择 ]]
 +
** 2.4 [[ ELADCMSecondEditionThirdChapter#IMX6ULL.E5.BC.80.E5.8F.91.E6.9D.BF | IMX6ULL开发板 ]]
 +
* 3. [[ ELADCMSecondEditionThirdChapter#.E7.B3.BB.E7.BB.9F.E7.83.A7.E5.86.99 | 系统烧写 ]]
 +
** 3.1 [[ ELADCMSecondEditionThirdChapter#100ASK_AM335X.E5.BC.80.E5.8F.91.E6.9D.BF_2 | 100ASK_AM335X开发板 ]]
 +
*** 3.1.1 [[ ELADCMSecondEditionThirdChapter#NandFlash.E5.90.AF.E5.8A.A8.2F.E6.9B.B4.E6.96.B0.E7.B3.BB.E7.BB.9F | NandFlash启动/更新系统 ]]
 +
**** 3.1.1.1 [[ ELADCMSecondEditionThirdChapter#.E6.A0.BC.E5.BC.8F.E5.8C.96SD.E5.8D.A1 | 格式化SD卡 ]]
 +
**** 3.1.1.2 [[ ELADCMSecondEditionThirdChapter#.E6.9B.B4.E6.96.B0.E7.B3.BB.E7.BB.9F | 更新系统 ]]
 +
*** 3.1.2 [[ ELADCMSecondEditionThirdChapter#SD.E5.8D.A1.E5.90.AF.E5.8A.A8 | SD卡启动 ]]
 +
**** 3.1.2.1 [[ ELADCMSecondEditionThirdChapter#.E6.A0.BC.E5.BC.8F.E5.8C.96sd.E5.8D.A1_2 | 格式化sd卡 ]]
 +
**** 3.1.2.2 [[ ELADCMSecondEditionThirdChapter#.E7.83.A7.E5.86.99sd.E5.8D.A1.E7.B3.BB.E7.BB.9F.E9.95.9C.E5.83.8F | 烧写sd卡系统镜像 ]]
 +
** 3.2 [[ ELADCMSecondEditionThirdChapter#Firefly-rk3288.E5.BC.80.E5.8F.91.E6.9D.BF_2 | Firefly-rk3288开发板 ]]
 +
*** 3.2.1 [[ ELADCMSecondEditionThirdChapter#SD.E5.8D.A1.E5.90.AF.E5.8A.A8_2 | SD卡启动 ]]
 +
**** 3.2.1.1 [[ ELADCMSecondEditionThirdChapter#.E6.A0.BC.E5.BC.8F.E5.8C.96sd.E5.8D.A1_3 | 格式化sd卡 ]]
 +
**** 3.2.1.2 [[ ELADCMSecondEditionThirdChapter#.E7.83.A7.E5.86.99sd.E5.8D.A1.E7.B3.BB.E7.BB.9F.E9.95.9C.E5.83.8F_2 | 烧写sd卡系统镜像 ]]
 +
** 3.3 [[ ELADCMSecondEditionThirdChapter#roc-rk3399-pc_.E5.BC.80.E5.8F.91.E6.9D.BF | roc-rk3399-pc 开发板 ]]
 +
*** 3.3.1 [[ ELADCMSecondEditionThirdChapter#SD.E5.8D.A1.E5.90.AF.E5.8A.A8_3 | SD卡启动 ]]
 +
**** 3.3.1.1 [[ ELADCMSecondEditionThirdChapter#.E6.A0.BC.E5.BC.8F.E5.8C.96sd.E5.8D.A1_4 | 格式化sd卡 ]]
 +
**** 3.3.1.2 [[ ELADCMSecondEditionThirdChapter#.E7.83.A7.E5.86.99sd.E5.8D.A1.E7.B3.BB.E7.BB.9F.E9.95.9C.E5.83.8F_3 | 烧写sd卡系统镜像 ]]
 +
** 3.4 [[ ELADCMSecondEditionThirdChapter#IMX6ULL.E5.BC.80.E5.8F.91.E6.9D.BF_2 | IMX6ULL开发板 ]]
 +
* 4 [[ ELADCMSecondEditionThirdChapter#.E9.83.A8.E4.BB.B6.E5.AE.9E.E9.AA.8C | 部件实验 ]]
 +
** 4.1 [[ ELADCMSecondEditionThirdChapter#100ASK_AM335X.E5.BC.80.E5.8F.91.E6.9D.BF_3 | 100ASK_AM335X开发板 ]]
 +
*** 4.1.1 [[ ELADCMSecondEditionThirdChapter#.E7.BD.91.E5.8D.A1.E6.8E.A5.E5.8F.A3.E6.B5.8B.E8.AF.95 | 网卡接口测试 ]]
 +
*** 4.1.2 [[ ELADCMSecondEditionThirdChapter#USBhost.E6.8E.A5.E5.8F.A3.E6.B5.8B.E8.AF.95 | USBhost接口测试 ]]
 +
*** 4.1.3 [[ ELADCMSecondEditionThirdChapter#OTG.E6.8E.A5.E5.8F.A3.E6.B5.8B.E8.AF.95 | OTG接口测试 ]]
 +
**** 4.1.3.1 [[ ELADCMSecondEditionThirdChapter#otg_device.E6.A8.A1.E5.BC.8F.E6.B5.8B.E8.AF.95 | otg device模式测试 ]]
 +
**** 4.1.3.2 [[ ELADCMSecondEditionThirdChapter#otg_host.E6.A8.A1.E5.BC.8F | otg host模式 ]]
 +
*** 4.1.4 [[ ELADCMSecondEditionThirdChapter#.E8.80.B3.E6.9C.BA.E6.8E.A5.E5.8F.A3.E6.B5.8B.E8.AF.95 | 耳机接口测试 ]]
 +
**** 4.1.4.1 [[ ELADCMSecondEditionThirdChapter#.E5.BD.95.E5.88.B6.E9.9F.B3.E9.A2.91.E6.B5.8B.E8.AF.95 | 录制音频测试 ]]
 +
**** 4.1.4.2 [[ ELADCMSecondEditionThirdChapter#.E6.92.AD.E6.94.BE.E9.9F.B3.E9.A2.91.E6.B5.8B.E8.AF.95 | 播放音频测试 ]]
 +
*** 4.1.5 [[ ELADCMSecondEditionThirdChapter#LCD.E6.98.BE.E7.A4.BA.E6.B5.8B.E8.AF.95 | LCD显示测试 ]]
 +
**** 4.1.5.1 [[ ELADCMSecondEditionThirdChapter#lcd.E6.98.BE.E7.A4.BA.E7.BA.A2.E8.89.B2 | lcd显示红色 ]]
 +
**** 4.1.5.2 [[ ELADCMSecondEditionThirdChapter#lcd.E6.98.BE.E7.A4.BA.E6.89.80.E6.9C.89 | lcd显示所有 ]]
 +
*** 4.1.6 [[ ELADCMSecondEditionThirdChapter#.E8.A7.A6.E6.91.B8.E5.B1.8F.E6.A0.A1.E5.87.86.E6.B5.8B.E8.AF.95 | 触摸屏校准测试 ]]
 +
*** 4.1.7 [[ ELADCMSecondEditionThirdChapter#.E5.B1.8F.E5.B9.95.E8.83.8C.E5.85.89.E8.B0.83.E8.8A.82 | 屏幕背光调节 ]]
 +
*** 4.1.8 [[ ELADCMSecondEditionThirdChapter#RTC.E6.B5.8B.E8.AF.95 | RTC测试 ]]
 +
*** 4.1.9 [[ ELADCMSecondEditionThirdChapter#.E6.8C.89.E9.94.AE.E6.B5.8B.E8.AF.95 | 按键测试 ]]
 +
*** 4.1.10 [[ ELADCMSecondEditionThirdChapter#LED.E7.81.AF.E6.B5.8B.E8.AF.95 | LED灯测试 ]]
 +
*** 4.1.11 [[ ELADCMSecondEditionThirdChapter#.E4.B8.B2.E5.8F.A3.E6.B5.8B.E8.AF.95 | 串口测试 ]]
 +
**** 4.1.11.1 [[ ELADCMSecondEditionThirdChapter#.E5.8E.8B.E5.8A.9B.E6.B5.8B.E8.AF.95 | 压力测试 ]]
 +
**** 4.1.11.2 [[ ELADCMSecondEditionThirdChapter#.E5.85.A8.E9.80.9F.E5.8E.8B.E5.8A.9B.E6.B5.8B.E8.AF.95 | 全速压力测试 ]]
 +
*** 4.1.12 [[ ELADCMSecondEditionThirdChapter#RS485.E6.B5.8B.E8.AF.95 | RS485测试 ]]
 +
**** 4.1.12.1 [[ ELADCMSecondEditionThirdChapter#.E6.8E.A5.E6.94.B6.E7.AB.AF | 接收端 ]]
 +
**** 4.1.12.2 [[ ELADCMSecondEditionThirdChapter#.E5.8F.91.E9.80.81.E7.AB.AF | 发送端 ]]
 +
*** 4.1.13 [[ ELADCMSecondEditionThirdChapter#Can.E5.8A.9F.E8.83.BD.E6.B5.8B.E8.AF.95 | Can功能测试 ]]
 +
**** 4.1.13.1 [[ ELADCMSecondEditionThirdChapter#.E5.8F.91.E9.80.81.E7.AB.AF_2 | 发送端 ]]
 +
**** 4.1.13.2 [[ ELADCMSecondEditionThirdChapter#.E6.8E.A5.E6.94.B6.E7.AB.AF_2 | 接收端 ]]
 +
** 4.2 [[ ELADCMSecondEditionThirdChapter#Firefly-rk3288.E5.BC.80.E5.8F.91.E6.9D.BF_3 | Firefly-rk3288开发板 ]]
 +
*** 4.2.1 [[ ELADCMSecondEditionThirdChapter#.E7.BD.91.E5.8D.A1.E6.8E.A5.E5.8F.A3.E6.B5.8B.E8.AF.95_2 | 网卡接口测试 ]]
 +
*** 4.2.2 [[ ELADCMSecondEditionThirdChapter#4.2.2_USB_Host.E6.8E.A5.E5.8F.A3.E6.B5.8B.E8.AF.95 | 4.2.2 USB Host接口测试 ]]
 +
*** 4.2.3 [[ ELADCMSecondEditionThirdChapter#OTG.E6.8E.A5.E5.8F.A3.E6.B5.8B.E8.AF.95_2 | OTG接口测试 ]]
 +
**** 4.2.3.1 [[ ELADCMSecondEditionThirdChapter#otg_device.E6.A8.A1.E5.BC.8F.E6.B5.8B.E8.AF.95.EF.BC.9A | otg device模式测试: ]]
 +
**** 4.2.3.2 [[ ELADCMSecondEditionThirdChapter#otg_host.E6.A8.A1.E5.BC.8F.EF.BC.9A | otg host模式: ]]
 +
*** 4.2.4 [[ ELADCMSecondEditionThirdChapter#.E8.80.B3.E6.9C.BA.E6.8E.A5.E5.8F.A3.E6.B5.8B.E8.AF.95_2 | 耳机接口测试 ]]
 +
**** 4.2.4.1 [[ ELADCMSecondEditionThirdChapter#.E6.92.AD.E6.94.BE.E9.9F.B3.E9.A2.91.EF.BC.9A | 播放音频: ]]
 +
**** 4.2.4.2 [[ ELADCMSecondEditionThirdChapter#.E5.BD.95.E5.88.B6.E9.9F.B3.E9.A2.91.EF.BC.9A | 录制音频: ]]
 +
*** 4.2.5 [[ ELADCMSecondEditionThirdChapter#RTC.E6.B5.8B.E8.AF.95_2 | RTC测试 ]]
 +
*** 4.2.6 [[ ELADCMSecondEditionThirdChapter#.E6.8C.89.E9.94.AE.E6.B5.8B.E8.AF.95_2 | 按键测试 ]]
 +
*** 4.2.7 [[ ELADCMSecondEditionThirdChapter#LED.E7.81.AF.E6.B5.8B.E8.AF.95_2 | LED灯测试 ]]
 +
*** 4.2.8 [[ ELADCMSecondEditionThirdChapter#.E4.B8.B2.E5.8F.A3.E6.B5.8B.E8.AF.95_2 | 串口测试 ]]
 +
**** 4.2.8.1 [[ ELADCMSecondEditionThirdChapter#.E5.8E.8B.E5.8A.9B.E6.B5.8B.E8.AF.95.EF.BC.9A | 压力测试: ]]
 +
**** 4.2.8.2 [[ ELADCMSecondEditionThirdChapter#.E5.85.A8.E9.80.9F.E5.8E.8B.E5.8A.9B.E6.B5.8B.E8.AF.95_2 | 全速压力测试 ]]
 +
** 4.3 [[ ELADCMSecondEditionThirdChapter#roc-rk3399-pc_.E5.BC.80.E5.8F.91.E6.9D.BF_2 | roc-rk3399-pc 开发板 ]]
 +
*** 4.3.1 [[ ELADCMSecondEditionThirdChapter#.E7.BD.91.E5.8D.A1.E6.8E.A5.E5.8F.A3.E6.B5.8B.E8.AF.95_3 | 网卡接口测试 ]]
 +
*** 4.3.2 [[ ELADCMSecondEditionThirdChapter#USB_Host.E6.8E.A5.E5.8F.A3.E6.B5.8B.E8.AF.95 | USB Host接口测试 ]]
 +
*** 4.3.3 [[ ELADCMSecondEditionThirdChapter#OTG.E6.8E.A5.E5.8F.A3.E6.B5.8B.E8.AF.95_3 | OTG接口测试 ]]
 +
**** 4.3.3.1 [[ ELADCMSecondEditionThirdChapter#otg_device.E6.A8.A1.E5.BC.8F.E6.B5.8B.E8.AF.95_2 | otg device模式测试 ]]
 +
**** 4.3.3.2 [[ ELADCMSecondEditionThirdChapter#otg_host.E6.A8.A1.E5.BC.8F_2 | otg host模式 ]]
 +
*** 4.3.4 [[ ELADCMSecondEditionThirdChapter#RTC.E6.B5.8B.E8.AF.95_3 | RTC测试 ]]
 +
*** 4.3.5 [[ ELADCMSecondEditionThirdChapter#.E6.8C.89.E9.94.AE.E6.B5.8B.E8.AF.95_3 | 按键测试 ]]
 +
*** 4.3.6 [[ ELADCMSecondEditionThirdChapter#LED.E7.81.AF.E6.B5.8B.E8.AF.95_3 | LED灯测试 ]]
 +
*** 4.3.7 [[ ELADCMSecondEditionThirdChapter#.E4.B8.B2.E5.8F.A3.E6.B5.8B.E8.AF.95_3 | 串口测试 ]]
 +
**** 4.3.7.1 [[ ELADCMSecondEditionThirdChapter#.E5.8E.8B.E5.8A.9B.E6.B5.8B.E8.AF.95_2 | 压力测试 ]]
 +
**** 4.3.7.2 [[ ELADCMSecondEditionThirdChapter#.E5.85.A8.E9.80.9F.E5.8E.8B.E5.8A.9B.E6.B5.8B.E8.AF.95_3 | 全速压力测试 ]]
 +
* 5. [[ ELADCMSecondEditionThirdChapter#.E5.90.8E.E7.BB.AD.E5.BC.80.E5.8F.91.E5.87.86.E5.A4.87.E5.B7.A5.E4.BD.9C.EF.BC.9A.E5.87.86.E5.A4.87.E4.BA.A4.E5.8F.89.E7.BC.96.E8.AF.91.E5.B7.A5.E5.85.B7.E9.93.BE.E3.80.81.E7.BC.96.E8.AF.91.E5.86.85.E6.A0.B8 | 后续开发准备工作:准备交叉编译工具链、编译内核 ]]
 +
** 5.1 [[ ELADCMSecondEditionThirdChapter#100ASK_AM335X.E5.BC.80.E5.8F.91.E6.9D.BF_4 | 100ASK_AM335X开发板 ]]
 +
*** 5.1.1 [[ ELADCMSecondEditionThirdChapter#.E8.8E.B7.E5.8F.96.E6.BA.90.E7.A0.81 | 获取源码 ]]
 +
**** 5.1.1.1 [[ ELADCMSecondEditionThirdChapter#.E6.9C.AC.E5.9C.B0.E6.8B.B7.E8.B4.9D | 本地拷贝 ]]
 +
**** 5.1.1.2 [[ ELADCMSecondEditionThirdChapter#.E5.9C.A8.E7.BA.BF.E4.B8.8B.E8.BD.BD | 在线下载 ]]
 +
*** 5.1.2 [[ ELADCMSecondEditionThirdChapter#.E9.85.8D.E7.BD.AE.E4.BA.A4.E5.8F.89.E7.BC.96.E8.AF.91.E5.B7.A5.E5.85.B7.E9.93.BE | 配置交叉编译工具链 ]]
 +
**** 5.1.2.1 [[ ELADCMSecondEditionThirdChapter#.E8.AE.BE.E7.BD.AE.E4.BA.A4.E5.8F.89.E7.BC.96.E8.AF.91.E5.B7.A5.E5.85.B7.E9.93.BE | 设置交叉编译工具链 ]]
 +
**** 5.1.2.2 [[ ELADCMSecondEditionThirdChapter#.E6.B5.8B.E8.AF.95.E4.BA.A4.E5.8F.89.E7.BC.96.E8.AF.91.E5.B7.A5.E5.85.B7.E9.93.BE | 测试交叉编译工具链 ]]
 +
*** 5.1.3 [[ ELADCMSecondEditionThirdChapter#.E7.BC.96.E8.AF.91.E5.86.85.E6.A0.B8 | 编译内核 ]]
 +
**** 5.1.3.1 [[ ELADCMSecondEditionThirdChapter#5.E5.8E.8Bkernel.E6.BA.90.E7.A0.81 | 5压kernel源码 ]]
 +
**** 5.1.3.2 [[ ELADCMSecondEditionThirdChapter#.E7.BC.96.E8.AF.91.E5.86.85.E6.A0.B8_2 | 编译内核 ]]
 +
** 5.2 [[ ELADCMSecondEditionThirdChapter#Firefly-rk3288_.E5.BC.80.E5.8F.91.E6.9D.BF | Firefly-rk3288 开发板 ]]
 +
*** 5.2.1 [[ ELADCMSecondEditionThirdChapter#.E8.8E.B7.E5.8F.96.E6.BA.90.E7.A0.81_2 | 获取源码 ]]
 +
**** 5.2.1.1 [[ ELADCMSecondEditionThirdChapter#.E6.9C.AC.E5.9C.B0.E6.8B.B7.E8.B4.9D_2 | 本地拷贝 ]]
 +
**** 5.2.1.2 [[ ELADCMSecondEditionThirdChapter#.E5.9C.A8.E7.BA.BF.E4.B8.8B.E8.BD.BD_2 | 在线下载 ]]
 +
*** 5.2.2 [[ ELADCMSecondEditionThirdChapter#.E9.85.8D.E7.BD.AE.E4.BA.A4.E5.8F.89.E7.BC.96.E8.AF.91.E5.B7.A5.E5.85.B7.E9.93.BE_2 | 配置交叉编译工具链 ]]
 +
**** 5.2.2.1 [[ ELADCMSecondEditionThirdChapter#.E8.AE.BE.E7.BD.AE.E4.BA.A4.E5.8F.89.E7.BC.96.E8.AF.91.E5.B7.A5.E5.85.B7.E9.93.BE_2 | 设置交叉编译工具链 ]]
 +
**** 5.2.2.2 [[ ELADCMSecondEditionThirdChapter#.E6.B5.8B.E8.AF.95.E4.BA.A4.E5.8F.89.E7.BC.96.E8.AF.91.E5.B7.A5.E5.85.B7.E9.93.BE_2 | 测试交叉编译工具链 ]]
 +
*** 5.2.3 [[ ELADCMSecondEditionThirdChapter#.E7.BC.96.E8.AF.91.E5.86.85.E6.A0.B8_3 | 编译内核 ]]
 +
**** 5.2.3.1 [[ ELADCMSecondEditionThirdChapter#.E8.A7.A3.E5.8E.8Bkernel.E6.BA.90.E7.A0.81 | 解压kernel源码 ]]
 +
**** 5.2.3.2 [[ ELADCMSecondEditionThirdChapter#.E7.BC.96.E8.AF.91.E5.86.85.E6.A0.B8_4 | 编译内核 ]]
 +
** 5.3 [[ ELADCMSecondEditionThirdChapter#Roc-rk3399-pc_.E5.BC.80.E5.8F.91.E6.9D.BF_3 | Roc-rk3399-pc 开发板 ]]
 +
*** 5.3.1 [[ ELADCMSecondEditionThirdChapter#.E8.8E.B7.E5.8F.96.E6.BA.90.E7.A0.81_3 | 获取源码 ]]
 +
**** 5.3.1.1 [[ ELADCMSecondEditionThirdChapter#.E6.9C.AC.E5.9C.B0.E6.8B.B7.E8.B4.9D_3 | 本地拷贝 ]]
 +
**** 5.3.1.2 [[ ELADCMSecondEditionThirdChapter#.E5.9C.A8.E7.BA.BF.E4.B8.8B.E8.BD.BD_3 | 在线下载 ]]
 +
*** 5.3.2 [[ ELADCMSecondEditionThirdChapter#.E9.85.8D.E7.BD.AE.E4.BA.A4.E5.8F.89.E7.BC.96.E8.AF.91.E5.B7.A5.E5.85.B7.E9.93.BE_3 | 配置交叉编译工具链 ]]
 +
**** 5.3.2.1 [[ ELADCMSecondEditionThirdChapter#.E8.AE.BE.E7.BD.AE.E4.BA.A4.E5.8F.89.E7.BC.96.E8.AF.91.E5.B7.A5.E5.85.B7.E9.93.BE_3 | 设置交叉编译工具链 ]]
 +
**** 5.3.2.2 [[ ELADCMSecondEditionThirdChapter#.E6.B5.8B.E8.AF.95.E4.BA.A4.E5.8F.89.E7.BC.96.E8.AF.91.E5.B7.A5.E5.85.B7.E9.93.BE_3 | 测试交叉编译工具链 ]]
 +
*** 5.3.3 [[ ELADCMSecondEditionThirdChapter#.E7.BC.96.E8.AF.91.E5.86.85.E6.A0.B8_5 | 编译内核 ]]
 +
**** 5.3.3.1 [[ ELADCMSecondEditionThirdChapter#.E8.A7.A3.E5.8E.8Bkernel.E6.BA.90.E7.A0.81_2 | 解压kernel源码 ]]
 +
**** 5.3.3.2 [[ ELADCMSecondEditionThirdChapter#.E7.BC.96.E8.AF.91.E5.86.85.E6.A0.B8_6 | 编译内核 ]]
 +
** 5.4 [[ ELADCMSecondEditionThirdChapter#IMX6ULL.E5.BC.80.E5.8F.91.E6.9D.BF_3 | IMX6ULL开发板 ]]
 +
*** 5.4.1 [[ ELADCMSecondEditionThirdChapter#.E8.8E.B7.E5.8F.96.E6.BA.90.E7.A0.81_4 | 获取源码 ]]
 +
**** 5.4.1.1 [[ ELADCMSecondEditionThirdChapter#.E6.9C.AC.E5.9C.B0.E6.8B.B7.E8.B4.9D_4 | 本地拷贝 ]]
 +
**** 5.4.1.2 [[ ELADCMSecondEditionThirdChapter#.E5.9C.A8.E7.BA.BF.E4.B8.8B.E8.BD.BD_4 | 在线下载 ]]
 +
*** 5.4.2 [[ ELADCMSecondEditionThirdChapter#.E9.85.8D.E7.BD.AE.E4.BA.A4.E5.8F.89.E7.BC.96.E8.AF.91.E5.B7.A5.E5.85.B7.E9.93.BE_4 | 配置交叉编译工具链 ]]
 +
**** 5.4.2.1 [[ ELADCMSecondEditionThirdChapter#.E8.AE.BE.E7.BD.AE.E4.BA.A4.E5.8F.89.E7.BC.96.E8.AF.91.E5.B7.A5.E5.85.B7.E9.93.BE_4 | 设置交叉编译工具链 ]]
 +
**** 5.4.2.2 [[ ELADCMSecondEditionThirdChapter#.E6.B5.8B.E8.AF.95.E4.BA.A4.E5.8F.89.E7.BC.96.E8.AF.91.E5.B7.A5.E5.85.B7.E9.93.BE_4 | 测试交叉编译工具链 ]]
 +
*** 5.4.3 [[ ELADCMSecondEditionThirdChapter#.E7.BC.96.E8.AF.91.E5.86.85.E6.A0.B8_7 | 编译内核 ]]
 +
**** 5.4.3.1 [[ ELADCMSecondEditionThirdChapter#.E8.A7.A3.E5.8E.8Bkernel.E6.BA.90.E7.A0.81_3 | 解压kernel源码 ]]
 +
**** 5.4.3.2 [[ ELADCMSecondEditionThirdChapter#.E7.BC.96.E8.AF.91.E5.86.85.E6.A0.B8_8 | 编译内核 ]]
 +
<br>
 +
<br>
 +
<br>
 +
<br>
 +
<br>
 +
<br>
 +
}}<br>
 +
<br>
  
[[Category:嵌入式Linux应用开发完全手册第2版]]
+
 
 +
==[[ ELADCMSecondEditionChapterFour | 第四篇 嵌入式 Linux 应用开发基础知识 ]]==
 +
{{#menu:
 +
* 1. [[ ELADCMSecondEditionChapterFour#HelloWorld.E8.83.8C.E5.90.8E.E6.B2.A1.E9.82.A3.E4.B9.88.E7.AE.80.E5.8D.95 | HelloWorld背后没那么简单 ]]
 +
** 1.1 [[ ELADCMSecondEditionChapterFour#.E4.BA.A4.E5.8F.89.E7.BC.96.E8.AF.91hello.c | 交叉编译hello.c ]]
 +
** 1.2 [[ ELADCMSecondEditionChapterFour#.E8.AF.B7.E5.9B.9E.E7.AD.94.E8.BF.99.E5.87.A0.E4.B8.AA.E9.97.AE.E9.A2.98 | 请回答这几个问题 ]]
 +
** 1.3 [[ ELADCMSecondEditionChapterFour#.E6.BC.94.E7.A4.BA | 演示 ]]
 +
* 2 [[ ELADCMSecondEditionChapterFour#GCC.E7.BC.96.E8.AF.91.E5.99.A8.E7.9A.84.E4.BD.BF.E7.94.A8 | GCC编译器的使用 ]]
 +
** 2.1 [[ ELADCMSecondEditionChapterFour#.E9.85.8D.E5.A5.97.E8.A7.86.E9.A2.91.E5.86.85.E5.AE.B9.E5.A4.A7.E7.BA.B2 | 配套视频内容大纲 ]]
 +
*** 2.1.1 [[ ELADCMSecondEditionChapterFour#GCC.E7.BC.96.E8.AF.91.E8.BF.87.E7.A8.8B.28.E7.B2.BE.E7.AE.80.E7.89.88.29 | <span>GCC编译过程</span>(精简版) ]]
 +
*** 2.1.2 [[ ELADCMSecondEditionChapterFour#.E5.B8.B8.E7.94.A8.E7.BC.96.E8.AF.91.E9.80.89.E9.A1.B9 | <span>常用编译选项</span> ]]
 +
*** 2.1.3 [[ ELADCMSecondEditionChapterFour#.E6.80.8E.E4.B9.88.E7.BC.96.E8.AF.91.E5.A4.9A.E4.B8.AA.E6.96.87.E4.BB.B6 | <span>怎么编译多个文件</span> ]]
 +
*** 2.1.4 [[ ELADCMSecondEditionChapterFour#.E5.88.B6.E4.BD.9C.E3.80.81.E4.BD.BF.E7.94.A8.E5.8A.A8.E6.80.81.E5.BA.93 | <span>制作、使用动态库</span> ]]
 +
*** 2.1.5 [[ ELADCMSecondEditionChapterFour#.E5.88.B6.E4.BD.9C.E3.80.81.E4.BD.BF.E7.94.A8.E9.9D.99.E6.80.81.E5.BA.93 | <span>制作、使用静态库</span> ]]
 +
*** 2.1.6 [[ ELADCMSecondEditionChapterFour#.E5.BE.88.E6.9C.89.E7.94.A8.E7.9A.84.E9.80.89.E9.A1.B9 | <span>很有用的选项</span> ]]
 +
** 2.1 [[ ELADCMSecondEditionChapterFour#GCC.E7.BC.96.E8.AF.91.E8.BF.87.E7.A8.8B | GCC编译过程 ]]
 +
** 2.2 [[ ELADCMSecondEditionChapterFour#GCC.E6.80.BB.E4.BD.93.E9.80.89.E9.A1.B9.28Overall_Option.29 | GCC总体选项(Overall Option) ]]
 +
** 2.3 [[ ELADCMSecondEditionChapterFour#.E8.AD.A6.E5.91.8A.E9.80.89.E9.A1.B9.28Warning_Option.29 | 警告选项(Warning Option) ]]
 +
** 2.4 [[ ELADCMSecondEditionChapterFour#.E8.B0.83.E8.AF.95.E9.80.89.E9.A1.B9.28Debugging_Option.29 | 调试选项(Debugging Option) ]]
 +
** 2.5 [[ ELADCMSecondEditionChapterFour#.E4.BC.98.E5.8C.96.E9.80.89.E9.A1.B9.28Optimization_Option.29 | 优化选项(Optimization Option) ]]
 +
** 2.5 [[ ELADCMSecondEditionChapterFour#.E9.93.BE.E6.8E.A5.E5.99.A8.E9.80.89.E9.A1.B9.28Linker_Option.29 | 链接器选项(Linker Option) ]]
 +
** 2.7 [[ ELADCMSecondEditionChapterFour#.E7.9B.AE.E5.BD.95.E9.80.89.E9.A1.B9.28Directory_Option.29 | 目录选项(Directory Option) ]]
 +
** 2.8  [[ ELADCMSecondEditionChapterFour#ld.2Fobjdump.2Fobjcopy.E9.80.89.E9.A1.B9 | ld/objdump/objcopy选项 ]]
 +
* 3. [[ ELADCMSecondEditionChapterFour#Makefile.E7.9A.84.E4.BD.BF.E7.94.A8 | Makefile的使用 ]]
 +
** 3.1 [[ ELADCMSecondEditionChapterFour#.E9.85.8D.E5.A5.97.E8.A7.86.E9.A2.91.E5.86.85.E5.AE.B9.E5.A4.A7.E7.BA.B2_2 | 配套视频内容大纲 ]]
 +
*** 3.1.1 [[ ELADCMSecondEditionChapterFour#Makefile.E8.A7.84.E5.88.99.E4.B8.8E.E7.A4.BA.E4.BE.8B | Makefile规则与示例 ]]
 +
**** 3.1.2 [[ ELADCMSecondEditionChapterFour#.E2.91.A0_.E4.B8.BA.E4.BB.80.E4.B9.88.E9.9C.80.E8.A6.81Makefile | ① 为什么需要Makefile ]]
 +
**** 3.1.3 [[ ELADCMSecondEditionChapterFour#.E2.91.A1_Makefile.E5.85.B6.E5.AE.9E.E6.8C.BA.E7.AE.80.E5.8D.95 | ② Makefile其实挺简单 ]]
 +
**** 3.1.3 [[ ELADCMSecondEditionChapterFour#.E2.91.A2_.E5.85.88.E4.BB.8B.E7.BB.8DMakefile.E7.9A.842.E4.B8.AA.E5.87.BD.E6.95.B0 | ③ 先介绍Makefile的2个函数 ]]
 +
**** 3.1.4 [[ ELADCMSecondEditionChapterFour#.E2.91.A3_.E4.B8.80.E6.AD.A5.E4.B8.80.E6.AD.A5.E5.AE.8C.E5.96.84Makefile | ④ 一步一步完善Makefile ]]
 +
*** 3.1.2 [[ ELADCMSecondEditionChapterFour#.E9.80.9A.E7.94.A8Makefile.E7.9A.84.E4.BD.BF.E7.94.A8 | 通用Makefile的使用 ]]
 +
*** 3.1.3 [[ ELADCMSecondEditionChapterFour#.E9.80.9A.E7.94.A8Makefile.E7.9A.84.E8.A7.A3.E6.9E.90 | 通用Makefile的解析 ]]
 +
**** [[ ELADCMSecondEditionChapterFour#.E2.91.A0_.E9.9B.B6.E6.98.9F.E7.9F.A5.E8.AF.86.E7.82.B9 | ① 零星知识点 ]]
 +
***** [[ ELADCMSecondEditionChapterFour#A._make.E5.91.BD.E4.BB.A4.E7.9A.84.E4.BD.BF.E7.94.A8.EF.BC.9A | A. make命令的使用: ]]
 +
***** [[ ELADCMSecondEditionChapterFour#B._.E5.8D.B3.E6.97.B6.E5.8F.98.E9.87.8F.E3.80.81.E5.BB.B6.E6.97.B6.E5.8F.98.E9.87.8F.EF.BC.9A | B. 即时变量、延时变量: ]]
 +
***** [[ ELADCMSecondEditionChapterFour#C._.E5.8F.98.E9.87.8F.E7.9A.84.E5.AF.BC.E5.87.BA.28export.29.EF.BC.9A | C. 变量的导出(export): ]]
 +
***** [[ ELADCMSecondEditionChapterFour#D._Makefile.E4.B8.AD.E5.8F.AF.E4.BB.A5.E4.BD.BF.E7.94.A8shell.E5.91.BD.E4.BB.A4.EF.BC.9A | D. Makefile中可以使用shell命令: ]]
 +
***** [[ ELADCMSecondEditionChapterFour#E._.E5.9C.A8Makefile.E4.B8.AD.E6.80.8E.E4.B9.88.E6.94.BE.E7.BD.AE.E7.AC.AC1.E4.B8.AA.E7.9B.AE.E6.A0.87.EF.BC.9A | E. 在Makefile中怎么放置第1个目标: ]]
 +
***** [[ ELADCMSecondEditionChapterFour#F._.E5.81.87.E6.83.B3.E7.9B.AE.E6.A0.87.EF.BC.9A | F. 假想目标: ]]
 +
***** [[ ELADCMSecondEditionChapterFour#G._.E5.B8.B8.E7.94.A8.E7.9A.84.E5.87.BD.E6.95.B0.EF.BC.9A | G. 常用的函数: ]]
 +
**** 3.1.3.2 [[ ELADCMSecondEditionChapterFour#.E2.91.A1_.E9.80.9A.E7.94.A8Makefile.E7.9A.84.E8.AE.BE.E8.AE.A1.E6.80.9D.E6.83.B3 | ② 通用Makefile的设计思想 ]]
 +
***** [[ ELADCMSecondEditionChapterFour#A._.E5.9C.A8Makefile.E6.96.87.E4.BB.B6.E4.B8.AD.E7.A1.AE.E5.AE.9A.E8.A6.81.E7.BC.96.E8.AF.91.E7.9A.84.E6.96.87.E4.BB.B6.E3.80.81.E7.9B.AE.E5.BD.95.EF.BC.8C.E6.AF.94.E5.A6.82.EF.BC.9A | A. 在Makefile文件中确定要编译的文件、目录,比如: ]]
 +
***** [[ ELADCMSecondEditionChapterFour#B._.E5.9C.A8Makefile.build.E4.B8.AD.E8.AE.BE.E7.BD.AE.E7.BC.96.E8.AF.91.E8.A7.84.E5.88.99.EF.BC.8C.E6.9C.893.E6.9D.A1.E7.BC.96.E8.AF.91.E8.A7.84.E5.88.99.EF.BC.9A | B. 在Makefile.build中设置编译规则,有3条编译规则: ]]
 +
***** [[ ELADCMSecondEditionChapterFour#C._.E9.A1.B6.E5.B1.82Makefile.E4.B8.AD.E6.8A.8A.E9.A1.B6.E5.B1.82.E7.9B.AE.E5.BD.95.E7.9A.84built-in.o.E9.93.BE.E6.8E.A5.E6.88.90APP.EF.BC.9A | C. 顶层Makefile中把顶层目录的built-in.o链接成APP: ]]
 +
**** 3.1.3.2 [[ ELADCMSecondEditionChapterFour#.E2.91.A2_.E6.83.85.E6.99.AF.E6.BC.94.E7.BB.8E | ③ 情景演绎 ]]
 +
** 3.1 [[ ELADCMSecondEditionChapterFour#Makefile.E8.A7.84.E5.88.99 | Makefile规则 ]]
 +
** 3.2 [[ ELADCMSecondEditionChapterFour#Makefile.E6.96.87.E4.BB.B6.E9.87.8C.E7.9A.84.E8.B5.8B.E5.80.BC.E6.96.B9.E6.B3.95 | Makefile文件里的赋值方法 ]]
 +
** 3.3 [[ ELADCMSecondEditionChapterFour#Makefile.E5.B8.B8.E7.94.A8.E5.87.BD.E6.95.B0 | Makefile常用函数 ]]
 +
*** 3.1.1 [[ ELADCMSecondEditionChapterFour#.E5.AD.97.E7.AC.A6.E4.B8.B2.E6.9B.BF.E6.8D.A2.E5.92.8C.E5.88.86.E6.9E.90.E5.87.BD.E6.95.B0 | 字符串替换和分析函数 ]]
 +
*** 3.1.2 [[ ELADCMSecondEditionChapterFour#.E6.96.87.E4.BB.B6.E5.90.8D.E5.87.BD.E6.95.B0 | 文件名函数 ]]
 +
*** 3.1.3 [[ ELADCMSecondEditionChapterFour#.E5.85.B6.E4.BB.96.E5.87.BD.E6.95.B0 | 其他函数 ]]
 +
* 4. [[ ELADCMSecondEditionChapterFour#.E6.96.87.E4.BB.B6IO | 文件IO ]]
 +
** 4.1  [[ ELADCMSecondEditionChapterFour#.E6.96.87.E4.BB.B6.E4.BB.8E.E5.93.AA.E6.9D.A5.EF.BC.9F | 文件从哪来? ]]
 +
** 4.2 [[ ELADCMSecondEditionChapterFour#.E6.80.8E.E4.B9.88.E8.AE.BF.E9.97.AE.E6.96.87.E4.BB.B6.EF.BC.9F | 怎么访问文件? ]]
 +
*** 4.2.1 [[ ELADCMSecondEditionChapterFour#.E9.80.9A.E7.94.A8.E7.9A.84IO.E6.A8.A1.E5.9E.8B.EF.BC.9Aopen.2Fread.2Fwrite.2Flseek.2Fclose | 通用的IO模型:open/read/write/lseek/close ]]
 +
*** 4.2.2  [[ ELADCMSecondEditionChapterFour#.E4.B8.8D.E6.98.AF.E9.80.9A.E7.94.A8.E7.9A.84.E5.87.BD.E6.95.B0.EF.BC.9Aioctl.2Fmmap | 不是通用的函数:ioctl/mmap ]]
 +
** 4.3  [[ ELADCMSecondEditionChapterFour#.E6.80.8E.E4.B9.88.E7.9F.A5.E9.81.93.E8.BF.99.E4.BA.9B.E5.87.BD.E6.95.B0.E7.9A.84.E7.94.A8.E6.B3.95.EF.BC.9F | 怎么知道这些函数的用法? ]]
 +
** 4.4 [[ ELADCMSecondEditionChapterFour#.E7.B3.BB.E7.BB.9F.E8.B0.83.E7.94.A8.E5.87.BD.E6.95.B0.E6.80.8E.E4.B9.88.E8.BF.9B.E5.85.A5.E5.86.85.E6.A0.B8.EF.BC.9F | 系统调用函数怎么进入内核? ]]
 +
** 4.5 [[ ELADCMSecondEditionChapterFour#.E5.86.85.E6.A0.B8.E7.9A.84sys_open.E3.80.81sys_read.E4.BC.9A.E5.81.9A.E4.BB.80.E4.B9.88.EF.BC.9F | 内核的sys_open、sys_read会做什么? ]]
 +
<br>
 +
<br>
 +
<br>
 +
<br>
 +
<br>
 +
}}<br>
 +
<br>
 +
 
 +
==[[ ELADCMSecondEditionChapterFive | 第五篇 嵌入式 Linux 驱动开发基础知识 ]]==
 +
{{#menu:
 +
* 1. [[ ELADCMSecondEditionChapterFivePartⅠ | <span>嵌入式后Linux驱动开发基础知识</span>的引导与说明 ]]
 +
** 1.1 [[ ELADCMSecondEditionChapterFive#.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 | 打算讲什么、怎么讲? ]]
 +
** 1.2[[ ELADCMSecondEditionChapterFive#.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 | 需要做什么准备工作 ]]
 +
* 2. [[ ELADCMSecondEditionChapterFivePartⅡ | Hello驱动(不涉及硬件操作) ]]
 +
** 2.1 [[ ELADCMSecondEditionChapterFive#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打开的文件在内核中如何表示 ]]
 +
** 2.2 [[ ELADCMSecondEditionChapterFive#.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 ]]
 +
** 2.3 [[ ELADCMSecondEditionChapterFive#.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 | 请猜猜怎么编写驱动程序 ]]
 +
** 2.4 [[ ELADCMSecondEditionChapterFive#.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 | 请不要啰嗦,表演你的代码吧 ]]
 +
*** 2.4.1 [[ ELADCMSecondEditionChapterFive#.E5.86.99.E9.A9.B1.E5.8A.A8.E7.A8.8B.E5.BA.8F | 写驱动程序 ]]
 +
*** 2.4.2 [[ ELADCMSecondEditionChapterFive#.E5.86.99.E6.B5.8B.E8.AF.95.E7.A8.8B.E5.BA.8F | 写测试程序 ]]
 +
*** 2.4.3 [[ ELADCMSecondEditionChapterFive#.E6.B5.8B.E8.AF.95 | 测试 ]]
 +
** 2.5 [[ ELADCMSecondEditionChapterFive#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驱动中的一些补充知识 ]]
 +
*** 2.5.1 [[ ELADCMSecondEditionChapterFive#module_init.2Fmodule_exit.E7.9A.84.E5.AE.9E.E7.8E.B0 | module_init/module_exit的实现 ]]
 +
*** 2.5.2 [[ ELADCMSecondEditionChapterFive#register_chrdev.E7.9A.84.E5.86.85.E9.83.A8.E5.AE.9E.E7.8E.B0 | register_chrdev的内部实现 ]]
 +
*** 2.5.3 [[ ELADCMSecondEditionChapterFive#class_destroy.2Fdevice_create.E6.B5.85.E6.9E.90 | class_destroy/device_create浅析 ]]
 +
* 3. [[ ELADCMSecondEditionChapterFivePartⅢ | 硬件知识_LED原理图 ]]
 +
** 3.1 [[ ELADCMSecondEditionChapterFive#.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. [[ ELADCMSecondEditionChapterFivePartⅣ | 普适的GPIO引脚操作方法 ]]
 +
** 4.1 [[ ELADCMSecondEditionChapterFive#GPIO.E6.A8.A1.E5.9D.97.E4.B8.80.E8.88.AC.E7.BB.93.E6.9E.84 | GPIO模块一般结构 ]]
 +
** 4.2 [[ ELADCMSecondEditionChapterFive#GPIO.E5.AF.84.E5.AD.98.E5.99.A8.E6.93.8D.E4.BD.9C | GPIO寄存器操作 ]]
 +
** 4.3 [[ ELADCMSecondEditionChapterFive#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. [[ ELADCMSecondEditionChapterFivePartⅤ | 具体单板的GPIO操作方法 ]]
 +
** 5.1 [[ ELADCMSecondEditionChapterFive#AM335X.E7.9A.84GPIO.E6.93.8D.E4.BD.9C.E6.96.B9.E6.B3.95 | AM335X的GPIO操作方法 ]]
 +
*** 5.1.1 [[ ELADCMSecondEditionChapterFive#AM335X.E7.9A.84GPIO.E6.A8.A1.E5.9D.97.E7.BB.93.E6.9E.84 | AM335X的GPIO模块结构 ]]
 +
*** 5.1.2 [[ ELADCMSecondEditionChapterFive#AM335X.E7.9A.84GPIO.E7.9B.B8.E5.85.B3.E5.AF.84.E5.AD.98.E5.99.A8 | AM335X的GPIO相关寄存器 ]]
 +
*** 5.1.3 [[ ELADCMSecondEditionChapterFive#set-and-clear.E5.8D.8F.E8.AE.AE | set-and-clear协议 ]]
 +
** 5.2 [[ ELADCMSecondEditionChapterFive#RK3288.E7.9A.84GPIO.E6.93.8D.E4.BD.9C.E6.96.B9.E6.B3.95 | RK3288的GPIO操作方法 ]]
 +
*** 5.2.1 [[ ELADCMSecondEditionChapterFive#RK3288.E7.9A.84GPIO.E6.A8.A1.E5.9D.97.E7.BB.93.E6.9E.84 | RK3288的GPIO模块结构 ]]
 +
*** 5.2.2 [[ ELADCMSecondEditionChapterFive#RK3288.E7.9A.84GPIO.E7.9B.B8.E5.85.B3.E5.AF.84.E5.AD.98.E5.99.A8 | RK3288的GPIO相关寄存器 ]]
 +
** 5.3 [[ ELADCMSecondEditionChapterFive#RK3399.E7.9A.84GPIO.E6.93.8D.E4.BD.9C.E6.96.B9.E6.B3.95 | RK3399的GPIO操作方法 ]]
 +
*** 5.3.1 [[ ELADCMSecondEditionChapterFive#RK3399.E7.9A.84GPIO.E6.A8.A1.E5.9D.97.E7.BB.93.E6.9E.84 | RK3399的GPIO模块结构 ]]
 +
*** 5.3.2 [[ ELADCMSecondEditionChapterFive#RK3399.E7.9A.84GPIO.E7.9B.B8.E5.85.B3.E5.AF.84.E5.AD.98.E5.99.A8 | RK3399的GPIO相关寄存器 ]]
 +
** 5.4 [[ ELADCMSecondEditionChapterFive#IMX6ULL.E7.9A.84GPIO.E6.93.8D.E4.BD.9C.E6.96.B9.E6.B3.95 | IMX6ULL的GPIO操作方法 ]]
 +
*** 5.4.1 [[ ELADCMSecondEditionChapterFive#IMX6ULL.E7.9A.84GPIO.E6.A8.A1.E5.9D.97.E7.BB.93.E6.9E.84 | IMX6ULL的GPIO模块结构 ]]
 +
*** 5.4.2 [[ ELADCMSecondEditionChapterFive#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 [[ ELADCMSecondEditionChapterFive#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 [[ ELADCMSecondEditionChapterFive#GPIO.E6.A8.A1.E5.9D.97.E5.86.85.E9.83.A8 | GPIO模块内部 ]]
 +
*** 5.4.5 [[ ELADCMSecondEditionChapterFive#.E6.80.8E.E4.B9.88.E7.BC.96.E7.A8.8B | 怎么编程 ]]
 +
**** 5.4.5.1 [[ ELADCMSecondEditionChapterFive#.E8.AF.BBGPIO | 读GPIO ]]
 +
**** 5.4.5.2 [[ ELADCMSecondEditionChapterFive#.E5.86.99GPIO | 写GPIO ]]
 +
* 6. [[ ELADCMSecondEditionChapterFivePartⅥ | LED驱动程序框架 ]]
 +
** 6.1 [[ ELADCMSecondEditionChapterFive#.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 [[ ELADCMSecondEditionChapterFive#.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 [[ ELADCMSecondEditionChapterFive#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 [[ ELADCMSecondEditionChapterFive#.E5.86.99.E4.BB.A3.E7.A0.81 | 写代码 ]]
 +
*** 6.4.1 [[ ELADCMSecondEditionChapterFive#.E9.A9.B1.E5.8A.A8.E7.A8.8B.E5.BA.8F | 驱动程序 ]]
 +
**** 6.4.1.1  [[ ELADCMSecondEditionChapterFive#.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 [[ ELADCMSecondEditionChapterFive#.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 [[ ELADCMSecondEditionChapterFive#.E6.B5.8B.E8.AF.95.E7.A8.8B.E5.BA.8F | 测试程序 ]]
 +
*** 6.4.3 [[ ELADCMSecondEditionChapterFive#.E4.B8.8A.E6.9C.BA.E6.B5.8B.E8.AF.95 | 上机测试 ]]
 +
** 6.5 [[ ELADCMSecondEditionChapterFive#.E8.AF.BE.E5.90.8E.E4.BD.9C.E4.B8.9A | 课后作业 ]]
 +
* 7. [[ ELADCMSecondEditionChapterFivePartⅦ | 具体单板的LED驱动程序 ]]
 +
** 7.1 [[ ELADCMSecondEditionChapterFive#.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 [[ ELADCMSecondEditionChapterFive#AM335X.E7.9A.84LED.E9.A9.B1.E5.8A.A8.E7.A8.8B.E5.BA.8F | AM335X的LED驱动程序 ]]
 +
*** 7.1.1 [[ ELADCMSecondEditionChapterFive#.E5.8E.9F.E7.90.86.E5.9B.BE | 原理图 ]]
 +
*** 7.1.2 [[ ELADCMSecondEditionChapterFive#.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 [[ ELADCMSecondEditionChapterFive#.E5.86.99.E7.A8.8B.E5.BA.8F | 写程序 ]]
 +
*** 7.1.4 [[ ELADCMSecondEditionChapterFive#.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 [[ ELADCMSecondEditionChapterFive#.E8.AF.BE.E5.90.8E.E4.BD.9C.E4.B8.9A_2 | 课后作业 ]]
 +
** 7.3 [[ ELADCMSecondEditionChapterFive#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 [[ ELADCMSecondEditionChapterFive#.E5.8E.9F.E7.90.86.E5.9B.BE_2 | 原理图 ]]
 +
**** 7.3.1.1 [[ ELADCMSecondEditionChapterFive#fireflye_RK3288.E7.9A.84LED.E5.8E.9F.E7.90.86.E5.9B.BE | fireflye RK3288的LED原理图 ]]
 +
**** 7.3.1.2 [[ ELADCMSecondEditionChapterFive#firefly_RK3399.E7.9A.84LED.E5.8E.9F.E7.90.86.E5.9B.BE | firefly RK3399的LED原理图 ]]
 +
*** 7.3.2 [[ ELADCMSecondEditionChapterFive#.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 [[ ELADCMSecondEditionChapterFive#RK3288.E7.9A.84GPIO8_A1.E5.BC.95.E8.84.9A | RK3288的GPIO8_A1引脚 ]]
 +
**** 7.3.2.2 [[ ELADCMSecondEditionChapterFive#RK3399.E7.9A.84GPIO2_D3.E5.BC.95.E8.84.9A | RK3399的GPIO2_D3引脚 ]]
 +
*** 7.3.3 [[ ELADCMSecondEditionChapterFive#.E5.86.99.E7.A8.8B.E5.BA.8F_2 | 写程序 ]]
 +
**** 7.3.3.1 [[ ELADCMSecondEditionChapterFive#RK3288 | RK3288 ]]
 +
**** 7.3.3.2 [[ ELADCMSecondEditionChapterFive#RK3399 | RK3399 ]]
 +
*** 7.3.4 [[ ELADCMSecondEditionChapterFive#.E4.B8.8A.E6.9C.BA.E5.AE.9E.E9.AA.8C | 上机实验 ]]
 +
**** 7.3.4.1 [[ ELADCMSecondEditionChapterFive#RK3288_2 | RK3288 ]]
 +
**** 7.3.4.2 [[ ELADCMSecondEditionChapterFive#RK3399_2 | RK3399 ]]
 +
*** 7.3.5 [[ ELADCMSecondEditionChapterFive#.E8.AF.BE.E5.90.8E.E4.BD.9C.E4.B8.9A_3 | 课后作业 ]]
 +
** 7.4 [[ ELADCMSecondEditionChapterFive#.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 [[ ELADCMSecondEditionChapterFive#.E5.8E.9F.E7.90.86.E5.9B.BE_3 | 原理图 ]]
 +
**** 7.4.1.1 [[ ELADCMSecondEditionChapterFive#.E9.87.8E.E7.81.ABfire_imx6ull-pro.E5.BC.80.E5.8F.91.E6.9D.BF | 野火fire_imx6ull-pro开发板 ]]
 +
**** 7.4.1.2 [[ ELADCMSecondEditionChapterFive#.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 [[ ELADCMSecondEditionChapterFive#.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 [[ ELADCMSecondEditionChapterFive#.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 [[ ELADCMSecondEditionChapterFive#.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 [[ ELADCMSecondEditionChapterFive#.E5.86.99.E7.A8.8B.E5.BA.8F_3 | 写程序 ]]
 +
**** 7.4.3.1 [[ ELADCMSecondEditionChapterFive#.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 [[ ELADCMSecondEditionChapterFive#.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 [[ ELADCMSecondEditionChapterFive#.E4.B8.8A.E6.9C.BA.E5.AE.9E.E9.AA.8C_2 | 上机实验 ]]
 +
**** 7.4.4.1 [[ ELADCMSecondEditionChapterFive#.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 [[ ELADCMSecondEditionChapterFive#.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 [[ ELADCMSecondEditionChapterFive#.E8.AF.BE.E5.90.8E.E4.BD.9C.E4.B8.9A_4 | 课后作业 ]]
 +
** 7.5 [[ ELADCMSecondEditionChapterFive#.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 [[ ELADCMSecondEditionChapterFive#.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 [[ ELADCMSecondEditionChapterFive#.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 [[ ELADCMSecondEditionChapterFive#.E5.86.99.E7.A8.8B.E5.BA.8F_4 | 写程序 ]]
 +
*** 7.5.4 [[ ELADCMSecondEditionChapterFive#.E4.B8.8A.E6.9C.BA.E5.AE.9E.E9.AA.8C_3 | 上机实验 ]]
 +
*** 7.5.5 [[ ELADCMSecondEditionChapterFive#.E8.AF.BE.E5.90.8E.E4.BD.9C.E4.B8.9A_5 | 课后作业 ]]
 +
* 8 [[ ELADCMSecondEditionChapterFivePartⅧ | 驱动设计的思想:面向对象/分层/分离 ]]
 +
** 8.1 [[ ELADCMSecondEditionChapterFive#.E9.9D.A2.E5.90.91.E5.AF.B9.E8.B1.A1 | 面向对象 ]]
 +
** 8.2 [[ ELADCMSecondEditionChapterFive#.E5.88.86.E5.B1.82 | 分层 ]]
 +
** 8.3 [[ ELADCMSecondEditionChapterFive#.E5.88.86.E7.A6.BB | 分离 ]]
 +
** 8.4 [[ ELADCMSecondEditionChapterFive#.E5.86.99.E7.A4.BA.E4.BE.8B.E4.BB.A3.E7.A0.81 | 写示例代码 ]]
 +
** 8.5 [[ ELADCMSecondEditionChapterFive#.E8.AF.BE.E5.90.8E.E4.BD.9C.E4.B8.9A_6 | 课后作业 ]]
 +
* 9. [[ ELADCMSecondEditionChapterFivePartⅨ | 驱动进化之路:总线设备驱动模型 ]]
 +
** 9.1 [[ ELADCMSecondEditionChapterFive#.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 [[ ELADCMSecondEditionChapterFive#.E4.BC.A0.E7.BB.9F.E5.86.99.E6.B3.95 | 传统写法 ]]
 +
*** 9.1.2 [[ ELADCMSecondEditionChapterFive#.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 [[ ELADCMSecondEditionChapterFive#.E8.AE.BE.E5.A4.87.E6.A0.91 | 设备树 ]]
 +
** 9.2 [[ ELADCMSecondEditionChapterFive#.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 [[ ELADCMSecondEditionChapterFive#.E5.8C.B9.E9.85.8D.E8.A7.84.E5.88.99 | 匹配规则 ]]
 +
*** 9.3.1 [[ ELADCMSecondEditionChapterFive#.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 [[ ELADCMSecondEditionChapterFive#.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 [[ ELADCMSecondEditionChapterFive#.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 [[ ELADCMSecondEditionChapterFive#.E5.87.BD.E6.95.B0.E8.B0.83.E7.94.A8.E5.85.B3.E7.B3.BB | 函数调用关系 ]]
 +
** 9.4 [[ ELADCMSecondEditionChapterFive#.E5.B8.B8.E7.94.A8.E5.87.BD.E6.95.B0 | 常用函数 ]]
 +
*** 9.4.1 [[ ELADCMSecondEditionChapterFive#.E6.B3.A8.E5.86.8C.2F.E5.8F.8D.E6.B3.A8.E5.86.8C | 注册/反注册 ]]
 +
*** 9.4.2 [[ ELADCMSecondEditionChapterFive#.E8.8E.B7.E5.BE.97.E8.B5.84.E6.BA.90 | 获得资源 ]]
 +
** 9.5 [[ ELADCMSecondEditionChapterFive#.E6.80.8E.E4.B9.88.E5.86.99.E7.A8.8B.E5.BA.8F | 怎么写程序 ]]
 +
*** 9.5.1 [[ ELADCMSecondEditionChapterFive#.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 [[ ELADCMSecondEditionChapterFive#.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 [[ ELADCMSecondEditionChapterFive#.E8.AF.BE.E5.90.8E.E4.BD.9C.E4.B8.9A_7 | 课后作业 ]]
 +
* 10. [[ ELADCMSecondEditionChapterFivePartⅩ | LED模板驱动程序的改造:总线设备驱动模型 ]]
 +
** 10.1 [[ ELADCMSecondEditionChapterFive#.E5.8E.9F.E6.9D.A5.E7.9A.84.E6.A1.86.E6.9E.B6 | 原来的框架 ]]
 +
** 10.2 [[ ELADCMSecondEditionChapterFive#.E8.A6.81.E5.AE.9E.E7.8E.B0.E7.9A.84.E6.A1.86.E6.9E.B6 | 要实现的框架 ]]
 +
** 10.3 [[ ELADCMSecondEditionChapterFive#.E5.86.99.E4.BB.A3.E7.A0.81_2 | 写代码 ]]
 +
*** 10.3.1 [[ ELADCMSecondEditionChapterFive#.E6.B3.A8.E6.84.8F.E4.BA.8B.E9.A1.B9 | 注意事项 ]]
 +
*** 10.3.2 [[ ELADCMSecondEditionChapterFive#.E5.AE.9E.E7.8E.B0platform_device.E7.BB.93.E6.9E.84.E4.BD.93 | 实现platform_device结构体 ]]
 +
*** 10.3.3 [[ ELADCMSecondEditionChapterFive#.E5.AE.9E.E7.8E.B0platform_driver.E7.BB.93.E6.9E.84.E4.BD.93 | 实现platform_driver结构体 ]]
 +
** 10.4 [[ ELADCMSecondEditionChapterFive#.E8.AF.BE.E5.90.8E.E4.BD.9C.E4.B8.9A_8 | 课后作业 ]]
 +
* 11.[[ ELADCMSecondEditionChapterFivePartⅪ | 驱动进化之路:设备树的引入及简明教程 ]]
 +
** 11.1 [[ ELADCMSecondEditionChapterFive#.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 [[ ELADCMSecondEditionChapterFive#.E8.AE.BE.E5.A4.87.E6.A0.91.E7.9A.84.E8.AF.AD.E6.B3.95 | 设备树的语法 ]]
 +
*** 11.2.1 [[ ELADCMSecondEditionChapterFive#Devicetree.E6.A0.BC.E5.BC.8F | Devicetree格式 ]]
 +
**** 11.2.1.1 [[ ELADCMSecondEditionChapterFive#DTS.E6.96.87.E4.BB.B6.E7.9A.84.E6.A0.BC.E5.BC.8F | DTS文件的格式 ]]
 +
**** 11.2.1.2 [[ ELADCMSecondEditionChapterFive#node.E7.9A.84.E6.A0.BC.E5.BC.8F | node的格式 ]]
 +
**** 11.2.1.3 [[ ELADCMSecondEditionChapterFive#properties.E7.9A.84.E6.A0.BC.E5.BC.8F | properties的格式 ]]
 +
*** 11.2.2 [[ ELADCMSecondEditionChapterFive#dts.E6.96.87.E4.BB.B6.E5.8C.85.E5.90.ABdtsi.E6.96.87.E4.BB.B6 | dts文件包含dtsi文件 ]]
 +
*** 11.2.3 [[ ELADCMSecondEditionChapterFive#.E5.B8.B8.E7.94.A8.E7.9A.84.E5.B1.9E.E6.80.A7 | 常用的属性 ]]
 +
**** 11.2.3.1 [[ ELADCMSecondEditionChapterFive#.23address-cells.E3.80.81.23size-cells | #address-cells、#size-cells ]]
 +
**** 11.2.3.2 [[ ELADCMSecondEditionChapterFive#compatible | compatible ]]
 +
**** 11.2.3.3 [[ ELADCMSecondEditionChapterFive#model | model ]]
 +
**** 11.2.3.4 [[ ELADCMSecondEditionChapterFive#status | status ]]
 +
**** 11.2.3.5 [[ ELADCMSecondEditionChapterFive#reg | reg ]]
 +
**** 11.2.3.6 [[ ELADCMSecondEditionChapterFive#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 [[ ELADCMSecondEditionChapterFive#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 [[ ELADCMSecondEditionChapterFive#.E5.B8.B8.E7.94.A8.E7.9A.84.E8.8A.82.E7.82.B9.28node.29 | 常用的节点(node) ]]
 +
**** 11.2.4.1 [[ ELADCMSecondEditionChapterFive#.E6.A0.B9.E8.8A.82.E7.82.B9 | 根节点 ]]
 +
**** 11.2.4.2 [[ ELADCMSecondEditionChapterFive#CPU.E8.8A.82.E7.82.B9 | CPU节点 ]]
 +
**** 11.2.4.3 [[ ELADCMSecondEditionChapterFive#memory.E8.8A.82.E7.82.B9 | memory节点 ]]
 +
**** 11.2.4.4 [[ ELADCMSecondEditionChapterFive#chosen.E8.8A.82.E7.82.B9 | chosen节点 ]]
 +
** 11.3 [[ ELADCMSecondEditionChapterFive#.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 [[ ELADCMSecondEditionChapterFive#.E5.9C.A8.E5.86.85.E6.A0.B8.E4.B8.AD.E7.9B.B4.E6.8E.A5make | 在内核中直接make ]]
 +
*** 11.3.2 [[ ELADCMSecondEditionChapterFive#.E6.89.8B.E5.B7.A5.E7.BC.96.E8.AF.91 | 手工编译 ]]
 +
*** 11.3.3 [[ ELADCMSecondEditionChapterFive#.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 [[ ELADCMSecondEditionChapterFive#.E5.AF.B9.E4.BA.8E100ask-am335x_.E5.8D.95.E6.9D.BF | 对于100ask-am335x 单板 ]]
 +
**** 11.3.3.2 [[ ELADCMSecondEditionChapterFive#.E5.AF.B9.E4.BA.8Efirefly-rk3288 | 对于firefly-rk3288 ]]
 +
**** 11.3.3.3 [[ ELADCMSecondEditionChapterFive#.E5.AF.B9.E4.BA.8Efirefly.E7.9A.84roc-rk3399-pc | 对于firefly的roc-rk3399-pc ]]
 +
**** 11.3.3.4 [[ ELADCMSecondEditionChapterFive#.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 [[ ELADCMSecondEditionChapterFive#.E5.AF.B9.E4.BA.8E.E9.87.8E.E7.81.ABimx6ull-pro | 对于野火imx6ull-pro ]]
 +
**** 11.3.3.6 [[ ELADCMSecondEditionChapterFive#.E5.AF.B9.E4.BA.8E.E6.AD.A3.E7.82.B9.E5.8E.9F.E5.AD.90imx6ull-alpha | 对于正点原子imx6ull-alpha ]]
 +
*** 11.3.4 [[ ELADCMSecondEditionChapterFive#.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 [[ ELADCMSecondEditionChapterFive#.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 [[ ELADCMSecondEditionChapterFive#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 [[ ELADCMSecondEditionChapterFive#.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 [[ ELADCMSecondEditionChapterFive#.E6.80.8E.E4.B9.88.E8.BD.AC.E6.8D.A2.E4.B8.BAplatform_device | 怎么转换为platform_device ]]
 +
** 11.5 [[ ELADCMSecondEditionChapterFive#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 [[ ELADCMSecondEditionChapterFive#.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 [[ ELADCMSecondEditionChapterFive#.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 [[ ELADCMSecondEditionChapterFive#.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 [[ ELADCMSecondEditionChapterFive#.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 [[ ELADCMSecondEditionChapterFive#.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 [[ ELADCMSecondEditionChapterFive#.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 [[ ELADCMSecondEditionChapterFive#.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 [[ ELADCMSecondEditionChapterFive#.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 [[ ELADCMSecondEditionChapterFive#.E5.A4.84.E7.90.86DTB | 处理DTB ]]
 +
**** 11.7.1.2 [[ ELADCMSecondEditionChapterFive#.E5.A4.84.E7.90.86device_node | 处理device_node ]]
 +
**** 11.7.1.3 [[ ELADCMSecondEditionChapterFive#.E5.A4.84.E7.90.86_platform_device | 处理 platform_device ]]
 +
*** 11.7.2 [[ ELADCMSecondEditionChapterFive#platform_device.E7.9B.B8.E5.85.B3.E7.9A.84.E5.87.BD.E6.95.B0 | platform_device相关的函数 ]]
 +
**** 11.7.2.1 [[ ELADCMSecondEditionChapterFive#of_find_device_by_node | of_find_device_by_node ]]
 +
**** 11.7.2.2 [[ ELADCMSecondEditionChapterFive#platform_get_resource | platform_get_resource ]]
 +
*** 11.7.3 [[ ELADCMSecondEditionChapterFive#.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 [[ ELADCMSecondEditionChapterFive#.E6.89.BE.E5.88.B0.E8.8A.82.E7.82.B9 | 找到节点 ]]
 +
**** 11.7.3.2 [[ ELADCMSecondEditionChapterFive#.E6.89.BE.E5.88.B0.E5.B1.9E.E6.80.A7 | 找到属性 ]]
 +
**** 11.7.3.3 [[ ELADCMSecondEditionChapterFive#.E8.8E.B7.E5.8F.96.E5.B1.9E.E6.80.A7.E7.9A.84.E5.80.BC | 获取属性的值 ]]
 +
** 11.8 [[ ELADCMSecondEditionChapterFive#.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 [[ ELADCMSecondEditionChapterFive#.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 [[ ELADCMSecondEditionChapterFive#.E7.9C.8B.E7.BB.91.E5.AE.9A.E6.96.87.E6.A1.A3 | 看绑定文档 ]]
 +
*** 11.8.3 [[ ELADCMSecondEditionChapterFive#.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 [[ ELADCMSecondEditionChapterFive#.E7.BD.91.E4.B8.8A.E6.90.9C.E7.B4.A2 | 网上搜索 ]]
 +
*** 11.8.5 [[ ELADCMSecondEditionChapterFive#.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. [[ ELADCMSecondEditionChapterFivePartⅫ | LED模板驱动程序的改造:设备树 ]]
 +
** 12.1 [[ ELADCMSecondEditionChapterFive#.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 [[ ELADCMSecondEditionChapterFive#.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 [[ ELADCMSecondEditionChapterFive#.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 [[ ELADCMSecondEditionChapterFive#.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 [[ ELADCMSecondEditionChapterFive#.E5.BC.80.E5.A7.8B.E7.BC.96.E7.A8.8B | 开始编程 ]]
 +
*** 12.3.1 [[ ELADCMSecondEditionChapterFive#.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 [[ ELADCMSecondEditionChapterFive#.E5.AF.B9.E4.BA.8E100ask-am335x_.E5.8D.95.E6.9D.BF_2 | 对于100ask-am335x 单板 ]]
 +
**** 12.3.1.2 [[ ELADCMSecondEditionChapterFive#.E5.AF.B9.E4.BA.8Efirefly-rk3288_2 | 对于firefly-rk3288 ]]
 +
**** 12.3.1.3 [[ ELADCMSecondEditionChapterFive#.E5.AF.B9.E4.BA.8Efirefly.E7.9A.84roc-rk3399-pc_2 | 对于firefly的roc-rk3399-pc ]]
 +
**** 12.3.1.4 [[ ELADCMSecondEditionChapterFive#.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 [[ ELADCMSecondEditionChapterFive#.E5.AF.B9.E4.BA.8E.E9.87.8E.E7.81.ABimx6ull-pro_2 | 对于野火imx6ull-pro ]]
 +
**** 12.3.1.6 [[ ELADCMSecondEditionChapterFive#.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 [[ ELADCMSecondEditionChapterFive#.E4.BF.AE.E6.94.B9platform_driver.E7.9A.84.E6.BA.90.E7.A0.81.3D | 修改platform_driver的源码= ]]
 +
** 12.4 [[ ELADCMSecondEditionChapterFive#.E4.B8.8A.E6.9C.BA.E5.AE.9E.E9.AA.8C_4 | 上机实验 ]]
 +
** 12.5 [[ ELADCMSecondEditionChapterFive#.E8.B0.83.E8.AF.95.E6.8A.80.E5.B7.A7 | 调试技巧 ]]
 +
*** 12.5.1 [[ ELADCMSecondEditionChapterFive#.E8.AE.BE.E5.A4.87.E6.A0.91.E7.9A.84.E4.BF.A1.E6.81.AF | 设备树的信息 ]]
 +
*** 12.5.2 [[ ELADCMSecondEditionChapterFive#platform_device.E7.9A.84.E4.BF.A1.E6.81.AF | platform_device的信息 ]]
 +
*** 12.5.3 [[ ELADCMSecondEditionChapterFive#platform_driver.E7.9A.84.E4.BF.A1.E6.81.AF | platform_driver的信息 ]]
 +
** 12.6 [[ ELADCMSecondEditionChapterFive#.E8.AF.BE.E5.90.8E.E4.BD.9C.E4.B8.9A_9 | 课后作业 ]]
 +
* 13. [[ ELADCMSecondEditionChapterFivePartXIII | APP怎么读取按键值 ]]
 +
** 13.1 [[ ELADCMSecondEditionChapterFive#.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 [[ ELADCMSecondEditionChapterFive#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 [[ ELADCMSecondEditionChapterFive#.E6.9F.A5.E8.AF.A2.E6.96.B9.E5.BC.8F | 查询方式 ]]
 +
*** 13.2.2 [[ ELADCMSecondEditionChapterFive#.E4.BC.91.E7.9C.A0-.E5.94.A4.E9.86.92.E6.96.B9.E5.BC.8F | 休眠-唤醒方式 ]]
 +
*** 13.2.3 [[ ELADCMSecondEditionChapterFive#poll.E6.96.B9.E5.BC.8F | poll方式 ]]
 +
*** 13.2.4 [[ ELADCMSecondEditionChapterFive#.E5.BC.82.E6.AD.A5.E9.80.9A.E7.9F.A5.E6.96.B9.E5.BC.8F | 异步通知方式 ]]
 +
**** 13.2.4.1 [[ ELADCMSecondEditionChapterFive#.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 [[ ELADCMSecondEditionChapterFive#.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 [[ ELADCMSecondEditionChapterFive#.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. [[ ELADCMSecondEditionChapterFivePartXIV | 查询方式的按键驱动程序_编写框架 ]]
 +
** 14.1 [[ ELADCMSecondEditionChapterFive#LED.E9.A9.B1.E5.8A.A8.E5.9B.9E.E9.A1.BE | LED驱动回顾 ]]
 +
** 14.2 [[ ELADCMSecondEditionChapterFive#.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 [[ ELADCMSecondEditionChapterFive#.E7.BC.96.E7.A8.8B.EF.BC.9A.E5.85.88.E5.86.99.E6.A1.86.E6.9E.B6 | 编程:先写框架 ]]
 +
*** 14.3.1[[ ELADCMSecondEditionChapterFive#.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 [[ ELADCMSecondEditionChapterFive#.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 [[ ELADCMSecondEditionChapterFive#.E6.B5.8B.E8.AF.95_2 | 测试 ]]
 +
** 14.5 [[ ELADCMSecondEditionChapterFive#.E8.AF.BE.E5.90.8E.E6.80.8E.E4.B8.9A | 课后怎业 ]]
 +
* 15. [[ ELADCMSecondEditionChapterFivePartXV | 具体单板的按键驱动程序(查询方式) ]]
 +
** 15.1 [[ ELADCMSecondEditionChapterFive#GPIO.E6.93.8D.E4.BD.9C.E5.9B.9E.E9.A1.BE | GPIO操作回顾 ]]
 +
** 15.2 [[ ELADCMSecondEditionChapterFive#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 [[ ELADCMSecondEditionChapterFive#.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 [[ ELADCMSecondEditionChapterFive#.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 [[ ELADCMSecondEditionChapterFive#.E7.BC.96.E7.A8.8B | 编程 ]]
 +
**** 15.2.3.1 [[ ELADCMSecondEditionChapterFive#.E7.A8.8B.E5.BA.8F.E6.A1.86.E6.9E.B6 | 程序框架 ]]
 +
**** 15.2.3.2 [[ ELADCMSecondEditionChapterFive#.E7.A1.AC.E4.BB.B6.E7.9B.B8.E5.85.B3.E7.9A.84.E4.BB.A3.E7.A0.81 | 硬件相关的代码 ]]
 +
*** 15.2.4 [[ ELADCMSecondEditionChapterFive#.E6.B5.8B.E8.AF.95_3 | 测试 ]]
 +
*** 15.2.5 [[ ELADCMSecondEditionChapterFive#.E8.AF.BE.E5.90.8E.E4.BD.9C.E4.B8.9A_10 | 课后作业 ]]
 +
** 15.3 [[ ELADCMSecondEditionChapterFive#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 [[ ELADCMSecondEditionChapterFive#.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 [[ ELADCMSecondEditionChapterFive#.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 [[ ELADCMSecondEditionChapterFive#.E7.BC.96.E7.A8.8B_2 | 编程 ]]
 +
**** 15.3.3.1 [[ ELADCMSecondEditionChapterFive#.E7.A8.8B.E5.BA.8F.E6.A1.86.E6.9E.B6_2 | 程序框架 ]]
 +
**** 15.3.3.2 [[ ELADCMSecondEditionChapterFive#.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 [[ ELADCMSecondEditionChapterFive#.E6.B5.8B.E8.AF.95_4 | 测试 ]]
 +
*** 15.3.5 [[ ELADCMSecondEditionChapterFive#.E8.AF.BE.E5.90.8E.E4.BD.9C.E4.B8.9A_11 | 课后作业 ]]
 +
** 15.4 [[ ELADCMSecondEditionChapterFive#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 [[ ELADCMSecondEditionChapterFive#.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 [[ ELADCMSecondEditionChapterFive#.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 [[ ELADCMSecondEditionChapterFive#.E7.BC.96.E7.A8.8B_3 | 编程 ]]
 +
**** 15.4.3.1 [[ ELADCMSecondEditionChapterFive#.E7.A8.8B.E5.BA.8F.E6.A1.86.E6.9E.B6_3 | 程序框架 ]]
 +
**** 15.4.3.2 [[ ELADCMSecondEditionChapterFive#.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 [[ ELADCMSecondEditionChapterFive#.E6.B5.8B.E8.AF.95_5 | 测试 ]]
 +
*** 15.4.5 [[ ELADCMSecondEditionChapterFive#.E8.AF.BE.E5.90.8E.E4.BD.9C.E4.B8.9A_12 | 课后作业 ]]
 +
** 15.5 [[ ELADCMSecondEditionChapterFive#.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 [[ ELADCMSecondEditionChapterFive#.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 [[ ELADCMSecondEditionChapterFive#.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 [[ ELADCMSecondEditionChapterFive#.E7.BC.96.E7.A8.8B_4 | 编程 ]]
 +
**** 15.5.3.1 [[ ELADCMSecondEditionChapterFive#.E7.A8.8B.E5.BA.8F.E6.A1.86.E6.9E.B6_4 | 程序框架 ]]
 +
**** 15.5.3.2 [[ ELADCMSecondEditionChapterFive#.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 [[ ELADCMSecondEditionChapterFive#.E6.B5.8B.E8.AF.95_6 | 测试 ]]
 +
*** 15.5.5 [[ ELADCMSecondEditionChapterFive#.E8.AF.BE.E5.90.8E.E4.BD.9C.E4.B8.9A_13 | 课后作业 ]]
 +
* 16. [[ ELADCMSecondEditionChapterFivePartXVI | 异常与中断的概念及处理流程 ]]
 +
** 16.1 [[ ELADCMSecondEditionChapterFive#.E4.B8.AD.E6.96.AD.E7.9A.84.E5.BC.95.E5.85.A5 | 中断的引入 ]]
 +
*** 16.1.1 [[ ELADCMSecondEditionChapterFive#.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 [[ ELADCMSecondEditionChapterFive#.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 [[ ELADCMSecondEditionChapterFive#.E4.B8.AD.E6.96.AD.E7.9A.84.E5.A4.84.E7.90.86.E6.B5.81.E7.A8.8B | 中断的处理流程 ]]
 +
** 16.3 [[ ELADCMSecondEditionChapterFive#.E5.BC.82.E5.B8.B8.E5.90.91.E9.87.8F.E8.A1.A8 | 异常向量表 ]]
 +
** 16.4 [[ ELADCMSecondEditionChapterFivePartXVII | 参考资料 ]]
 +
* 17 [[ ELADCMSecondEditionChapterFive#.E5.B8.B8.E8.A7.81.E9.97.AE.E9.A2.98 | 常见问题 ]]
 +
** 17.1 [[ ELADCMSecondEditionChapterFive#.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>
 +
<br>
 +
 
 +
[[ Category:嵌入式Linux应用开发完全手册第2版 ]]

2019年12月26日 (四) 18:35的最新版本

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

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




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








第三篇 开发板快速上手










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








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