设备树(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芯片架构、总线机制
  • 对设备树运行机制有系统理解
  • 熟练掌握设备树的编程接口(驱动开发中常用)

本期课程一共35个课时,课程总时长:08小时39分15秒,和本次课程相关的PPT文档、代码、流程图(PDF版本)已上传网盘,已购课学员请及时下载观看学习。

课程的详细目录如下:

  1. 为什么要引入 device tree?
  2. 如何编译和运行 device tree?
  3. 使用设备树接口编写platform驱动
  4. SoC芯片架构:总线和片选
  5. SoC芯片架构:桥接(bridge)
  6. SoC芯片架构:extend bus
  7. device tree 基本语法:node
  8. device tree 基本语法:property
  9. 设备树实例分析:CPU node
  10. 设备树实例分析:memory node
  11. 设备树实例分析:外设(PrimeCell)
  12. 设备树实例分析:中断控制器
  13. 设备树实例分析:中断映射
  14. 设备树实例分析:时钟(clock)
  15. extend bus(上):I2C 设备
  16. extend bus(下):内存映射设备
  17. 设备树实例分析:GPIO
  18. 设备树实例分析:pinmux(上)
  19. 设备树实例分析:pinmux(下)
  20. dts 和 dtsi 文件的分离
  21. property 的 overwrite
  22. dtb 二进制文件格式
  23. platform device 自动展开分析(上)
  24. platform device 自动展开分析(下)
  25. I2C 设备的自动展开
  26. 哪些 node 会自动展开为平台设备?
  27. 设备树节点解析:CPU node
  28. 设备树节点解析:memory node
  29. 设备树节点解析:chosen node(上)
  30. 设备树节点解析:chosen node(下)
  31. 设备树节点解析:aliases node
  32. 设备树节点解析:获取 IRQ number
  33. 设备树节点解析:获取 Register 地址
  34. 设备树节点解析:GPIO
  35. Device Binding and Guidelines

本期课程已发布到CSDN学院:https://download.csdn.net/course/detail/37149https://download.csdn.net/course/detail/37149

Linux内核编程11期:设备树(device tree)相关推荐

  1. Linux设备模型、平台设备驱动、设备树(device tree)、GPIO子系统以及pinctrl子系统介绍

    文章目录 一.Linux设备模型介绍 (1)设备驱动模型总体介绍 (2)设备驱动模型文件表现 (3)设备驱动模型工作原理 [1]总线 [2]设备 [3]驱动 [4]注册流程 二.平台设备驱动介绍 (1 ...

  2. Linux内核编程12期:设备树overlay与ConfigFS文件系统

    在嵌入式Linux下,设备树(device tree)用来描述硬件平台的各种资源,Linux内核在启动过程中,会解析设备树,获取各种硬件资源来初始化硬件. 设备树的overlay功能是指可以在系统运行 ...

  3. linux内核编程13期:内存管理

    内管管理子系统是Linux内核中比较复杂的一个模块,也是很多Linux开发者的"梦魇",无论是Linux新手.运维.应用开发者,还是有多年经验的驱动工程师,在学习内存管理时,面对错 ...

  4. Linux 设备树device tree 使用手册

    摘要:设备树使用手册Thispagewalksthroughhowtowriteadevicetreeforanewmachine.Itisintendedtoprovideanoverviewofd ...

  5. 设备树Device Tree详解

    原文:https://www.cnblogs.com/aaronLinux/p/5496559.html 目录 1. 设备树(Device  Tree)基本概念及作用 2. 设备树的组成和使用 2.1 ...

  6. 嵌入式编程笔记之六--设备树初体验

    设备树的起源 设备树(Device Tree)是一种描述硬件资源的数据结构,它由 uboot 传递给 Linux 内核,被内核解析,内核根据设备树中的硬件描述信息加载利用相应驱动资源.在引入设备树之前 ...

  7. Linux 内核编程指南

    Linux 内核编程指南   PeterJay Salzman MichaelBurian OriPomerantz Copyright© 2001 Peter Jay Salzman 2007−05 ...

  8. Linux内核编程接口函数

    Linux内核编程接口函数 转载请注明出处: http://blog.csdn.net/drivelinux/article/details/8656280 字符设备相关函数 1.alloc_chrd ...

  9. linux内核静态添加sdio设备,Linux下sdio设备扫描过程

    前言 本文基于Linux version 3.10.52版本代码分析sdio设备的扫描过程,同时选择sdio wifi设备作为分析对象,在分析过程中,附带上sdio的协议内容,帮助初学人员学习sdio ...

  10. 初探linux内核编程,参数传递以及模块间函数调用

    一.前言 我们一起从3个小例子来体验一下linux内核编程.如下: 1. 内核编程之hello world 2. 模块参数传递 3. 模块间函数调用 二.准备工作 首先,在你的linux系统上面安装l ...

最新文章

  1. python判断操作系统类型
  2. 备战618,京东如何保障系统稳定性?
  3. 建立新冠病毒群体免疫屏障——数学建模
  4. kabina 使用说明_Kibana安装及使用说明
  5. 徐明星解读区块链与物联网的重要联系
  6. ajax获取checkbox循环出来的值_Django:前后端异步加载数据(循环大法)
  7. tensorflow实现残差网络(mnist数据集)
  8. LINUX编译OPENJDK:unsupported cpu xxx
  9. STM32 IIC实验中关于AT24Cxx的读写
  10. 徐家骏:我在华为工作十年的感悟 (转)
  11. 输入今天日期输出明天日期
  12. GCC编译过程及使用
  13. abp core Oracle,ABP适配Oracle全过程
  14. 南京高中计算机老师,30个全省第一!南京老师又出名了!
  15. HTML5实现动态时钟
  16. 薛定谔 | 小分子叠合
  17. 关于GR/IR—业务流程篇
  18. 更多有效反链推广 增加反向链接十个方法
  19. 英特尔前高管的IC职业生涯分享(文字版)写给想进入IC设计的同学们!
  20. 保姆级教程,小白也能2周搞定3个月的Web开发任务!

热门文章

  1. Qt实现职工信息管理系统
  2. 十大网站压力测试软件-- WEB压力测试工具介绍
  3. java 解析二进制文件保存为txt文件
  4. 微信8.0.0中的[烟花]\[炸弹]原来还可以这样玩(JAVA脚本)程序员的快乐,很简单,快来看!!!
  5. 判断是否是微信浏览器还是企业微信浏览器
  6. PostgreSQL 存储过程(Procedures)和函数(Functions)的区别
  7. 如何写简历,Web前端简历
  8. 【Keras】LSTM和Bi-LSTM神经网络
  9. mdt 计算机名_MDT配置数据库
  10. 在计算机桌面中选择了隐藏如何显示,怎么把隐藏电脑桌面游戏找到