Linux内核编程:设备树(device tree)

驱动实战+流程图+内核源码导读,让你彻底理解整个设备树的运行机制,熟练学会修改和配置设备树

3636人学习

高级35课时2022/05/20更新

二维码下载学堂APP缓存视频离线看

王利涛
    • 畅销套餐
    • 精选套餐
    • 人气套餐
    • 尊享套餐
    • 高薪套餐
Linux“工具三剑客”(VIM+GIT+Makefile)
零基础玩转Linux+Ubuntu实战视频课程
96817人学习
¥10.00
Vim基础与提升-基础篇实战视频课程
16051人学习
¥9.00
Git零基础实战视频教程
120033人学习
¥99.00
更 多 6 门 课 程
Makefile基础入门与实战视频课程专题
Makefile工程实践:从零开始一步一步写项目的Makefile视频课程
95922人学习
¥79.00
Makefile工程实践(第2季):使用Autotools自动生成Makefile
14572人学习
¥49.00
更 多 2 门 课 程
嵌入式软件工程师完全学习路线图专题-项目实战来袭
嵌入式工程师养成计划系列课程--0.1.嵌入式软件工程师学习指南
90330人学习
¥1.00
嵌入式工程师养成计划系列课程--0.2.朱老师带你学Linux
337119人学习
¥1.00
嵌入式工程师养成计划系列课程--0.3.嵌入式Linux C编程基础
551409人学习
¥1.00
更 多 70 门 课 程
ARM裸机实战全集视频课程专题
1.1.ARM那些你得知道的事儿-ARM裸机开篇部分
176442人学习
¥1.00
1.2.ARM体系结构与汇编指令-ARM裸机第二部分
236636人学习
¥39.00
1.3.开发板、原理图和数据手册-.ARM裸机第三部分
101208人学习
¥29.00
更 多 16 门 课 程
ARM裸机实战全集视频课程专题
1.1.ARM那些你得知道的事儿-ARM裸机开篇部分
176442人学习
¥1.00
1.2.ARM体系结构与汇编指令-ARM裸机第二部分
236636人学习
¥39.00
1.3.开发板、原理图和数据手册-.ARM裸机第三部分
101208人学习
¥29.00
更 多 16 门 课 程
  • 课程介绍
  • 课程大纲

适合人群:

嵌入式工程师,嵌入式学习,Linux驱动工程师,或者有志从事Linux驱动开发的学员

你将会学到:

驱动实战+流程图+内核源码导读,让你彻底理解整个设备树的运行机制,熟练学会修改和配置设备树

  • 彻底看懂Linux设备树文件
  • 能熟练修改和配置设备树文件
  • 掌握基于设备树的驱动开发方法
  • 掌握gpio和pinctrl的设备树配置
  • 掌握设备树中中断映射和地址映射等难点
  • 学习SoC芯片架构、总线机制

课程简介:

设备树(device tree)机制是Linux内核从linux-3.x版本开始引进的一种机制,目的是解决内核源码的arch/arm目录下代码混乱的问题:随着ARM生态的快速发展,在内核源码的arch/arm目录下,存放着几十种arm芯片和几百个开发板相关的源文件,很多开发板和处理器的中断、寄存器等相关硬件资源都在这个目录下以.c或.h的文件格式定义。而对于内核来说,与这些硬件耦合,会导致内核代码混乱不堪,每个开发板上运行的内核镜像都必须单独编译配置,无法通用。什么时候Linux内核能像Windows镜像那样,无论你的电脑什么配置,一个Windows安装包,都可以直接下载安装运行呢?

设备树机制,实现了Linux内核和硬件平台的解耦:每个硬件平台的硬件资源使用一个设备树文件(xxx.dts)来描述,而不是在arch/arm下以.c 或 .h 文件来定义。Linux内核是一个通用的内核,在启动过程中,在通过解析设备树中的硬件资源来初始化某个具体的平台。


引入设备树后,很多和内核驱动开发的工作也发生了变化:以往驱动工程师关注的头文件宏定义、寄存器定义,现在这些基本上不用关注,关注的重点则转向了如何根据硬件平台去配置和修改设备树文件。很多驱动的编程接口也发生了变化,开始慢慢使用device tree提供的编程接口去开发驱动。

本期课程主要面向嵌入式开发人员,分享Linux下驱动开发所需要的设备树知识和技能,学完本期课程,预期收获如下:

  • 彻底看懂Linux设备树文件

  • 能熟练修改和配置设备树文件

  • 掌握基于设备树的platform driver驱动编写方法

  • 掌握gpio和pinctrl的配置

  • 学习SoC芯片架构、总线机制

  • 对设备树运行机制有系统理解

  • 熟练掌握设备树的编程接口(驱动开发中常用)


常见问题:

问:学习设备树需要什么基础吗?

答:需要。要对Linux设备模型、总线机制、platform_driver驱动的编写有一个大致的了解,这样学习设备树会更加轻松。

问:学习本套课程需要什么开发板?

答:本套课程不用再掏钱自己买开发板。课程基于ARM虚拟开发板学习,在虚拟ARM开发板上跑U-boot+Linux+NFS学习环境,学习设备树非常方便。搭建好的免费虚拟机镜像可以到这个地方下载:https://www.zhaixue.cc/qemu/qemu-qemu-lab.html,在你自己的电脑上安装VMware(建议版本vmware-15 Pro),然后使用VMware直接打开虚拟机镜像即可学习

问:现在网上已经很多设备树教程了,你出的新的设备树课程有什么特色?

答:特色1:本套课程不仅:讲设备树语法,还会花很大篇幅讲解SoC芯片架构的知识:比如总线、总线编址、桥接、memory mapped bus的总线地址映射、中断映射、以及PINMUX管脚复用的芯片内部实现原理。真正理解了SoC架构,也就真正理解了设备树特色2:老师花了很大心思画流程图,将dtb文件格式、内核中的设备树、展开的platform_driver更直观展现出来,结合内核源码导读,学起来更轻松

问:学习本套课程需要什么基础?

答:需要本套课程的前置条件:需要对Linux设备模型,总线机制,platform_driver驱动的编写方法有一定了解,有了以上基础后,在学习设备树教程效果会更好。当然,这些前置基础在课程中也会做一些讲解

问:学习本套课程需要买开发板吗?在哪里做实验?

答:不需要买开发板。课程使用免费的ARM虚拟开发板,在上面跑U-boot+Linux+NFS嵌入式Linux学习环境,很方便学习设备树。搭建好虚拟开发板的Ubuntu镜像可以到这里下载:https://www.zhaixue.cc/qemu/qemu-qemu-lab.html,在你的电脑上使用VMware(最好VMware15 Pro版本)直接打开就可以运行

问:市面上已经有很多设备树教程了,你的课程有什么特色?

答:特色1:不仅将设备树语法,还会将SoC芯片架构(总线、桥接、总线地址映射、中断映射、pinmux芯片内部电路实现等),只有彻底理解了硬件,才能真正理解和修改设备树文件。特色2:作者用心绘制的流程图,从设备树dtb文件格式到内核中的设备树,到展开的设备,结合内核源码导读,让您学习更加直观,理解更通透

展开更多
在线
客服
APP
下载

下载Android客户端

下载iphone 客户端

官方
微信

关注官方微信

返回
顶部