Skip to content

100askTeam/Linux-doc_and_source_for_drivers

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Linux驱动开发与使用大全

1. 课程介绍

这是连载课程,会涉及如下内容:

2. 适用单板

本教程支持三款开发板:100ASK_IMX6ULL pro、100ASK_IMX6ULL mini emmc、100ASK_STM32MP157 pro。

  • 100ASK_IMX6ULL pro:全功能版

  • 100ASK_IMX6ULL mini emmc

  • 100ASK_STM32MP157 pro:全功能版

3. 资料下载

先去https://gitforwindows.org/下载Windows版本的git工具。

安装、启动Git Bash。

然后执行命令:

git clone https://e.coding.net/weidongshan/linux/doc_and_source_for_drivers.git

为了方便记忆,上述地址都放在百问网下载中心:http://download.100ask.net/

4. 观看视频

5. 更新记录

  • 2020.06.18 完结"同步与互斥"

  • 2021.01.05 正式启动"驱动大全"的录制,发布"LCD驱动"

  • 2021.01.11 发布"LCD驱动":07_硬件_8080接口LCD时序分析、08_硬件_TFT-RGB接口LCD时序分析

  • 2021.01.14 发布"LCD驱动":09_硬件_IMX6ULL的LCD控制器、09_硬件_STM32MP157的LCD控制器

  • 2021.01.15 发布"LCD驱动":10_分析内核自带的LCD驱动程序_基于IMX6ULL

  • 2021.01.20 发布"LCD驱动":10_分析内核自带的LCD驱动程序_基于STM32MP157

  • 2021.01.21 发布"LCD驱动":11_编程_LCD驱动程序框架_使用设备树

  • 2021.01.21 发布"LCD驱动":12_编程_引脚配置_基于IMX6ULL

  • 2021.01.22 发布"LCD驱动":12_编程_配置引脚_基于STM32MP157

  • 2021.01.23 发布"LCD驱动":13_编程_时钟配置_基于IMX6ULL

  • 2021.01.25 发布"LCD驱动":13_编程_时钟配置_基于STM32MP157

  • 2021.01.25 发布"LCD驱动":14_编程_LCD控制器配置之获得LCD参数_通用

  • 2021.01.27 发布"LCD驱动":15_编程_配置LCD控制器之寄存器操作_基于IMX6ULL

  • 2021.01.28 发布"LCD驱动":16_上机实验_基于IMX6ULL

  • 2021.01.29 发布"LCD驱动":17_单Buffer的缺点与改进方法

  • 2021.02.01 发布"LCD驱动":18_编写使用多buffer的应用程序

  • 2021.02.03 发布"LCD驱动":

    • 15_编程_配置LCD控制器之寄存器操作_基于STM32MP157
    • 16_上机实验_基于STM32MP157
    • 18_STM32MP157内核自带的LCD驱动不支持多buffer
  • 2021.02.20 发布"I2C系统":01_I2C视频介绍

  • 2021.02.22 发布"I2C系统":02_I2C协议

  • 2021.02.23 发布"I2C系统":03_I2C系统的重要结构体

  • 2021.02.24 发布"I2C系统":

    • 发布新教程:03_SMBus协议
  • 把之前的03_I2C系统的重要结构体改名为04_I2C系统的重要结构体

  • 2021.02.25 发布"I2C系统":

    • 修改:03_SMBus协议,增加了I2C Block Read/Write
    • 新增:05_无需编写驱动直接访问设备_I2C-Tools介绍
    • 新增:06_编写APP直接访问EEPROM
  • 2021.02.27 发布"I2C系统":

    • 07_通用驱动i2c-dev分析
    • 08_I2C系统驱动程序模型
  • 2021.03.01 发布"I2C系统":09_编写设备驱动之i2c_driver

  • 2021.03.01 发布"I2C系统":10_编写设备驱动之i2c_client

  • 2021.03.05 发布"I2C系统":11_I2C_Adapter驱动框架讲解与编写

  • 2021.03.11 发布"I2C系统":12_完善虚拟的I2C_Adapter驱动并模拟EEPROM

  • 2021.03.12 发布"I2C系统":13_使用GPIO模拟I2C的驱动程序分析

  • 2021.03.13 发布"I2C系统":

    14_使用GPIO操作I2C设备_基于IMX6ULL
    14_使用GPIO操作I2C设备_基于STM32MP157
  • 2021.03.15 完结"I2C系统",发布:15_具体芯片的I2C_Adapter驱动分析

  • 2021.03.23 发布"Input子系统":01_Input子系统视频介绍

  • 2021.03.23 发布"Input子系统":

    02_先学习输入系统应用编程
    APP_01.输入系统框架及调试
    APP_02.现场编程读取获取输入设备信息
    APP_03.查询_休眠唤醒_方式读取输入数据
    APP_04.POLL_SELECT_方式读取输入数据
    APP_05.异步通知方式读取输入数据
    APP_06.电阻屏和电容屏
    APP_07.tslib框架分析
    APP_08.tslib交叉编译与测试
    APP_09.编写基于tslib的测试程序
  • 2021.03.25 发布"Input子系统":DRV_01_Input子系统框架详解

  • 2021.03.26 发布"Input子系统":DRV_02_编写input_dev驱动框架

  • 2021.03.29 发布"Input子系统":

    DRV_03_编写最简单的触摸屏驱动程序之IRQ_基于QEMU
    DRV_04_编写最简单的触摸屏驱动程序之完善_基于QEMU
  • 2021.03.31 发布"Input子系统":

    DRV_05_GPIO按键驱动分析与使用
    DRV_06_I2C接口触摸屏驱动分析
  • 2021.04.02 发布、完结"Input子系统":DRV_07_UInput分析_用户态创建input_dev

  • 2021.04.30 发布"Pinctrl子系统":

    01_Pinctrl子系统视频介绍
    02_使用Pinctrl要掌握的重要概念
  • 2021.04.30 发布"Pinctrl子系统":

    03_Pinctrl子系统使用示例_基于IMX6ULL
    03_Pinctrl子系统使用示例_基于STM32MP157
  • 2021.05.06 发布"Pinctrl子系统":04_Pinctrl子系统主要数据结构

  • 2021.05.12 发布"Pinctrl子系统":

    05_Pincontroller构造过程情景分析_基于IMX6ULL
    05_Pincontroller构造过程情景分析_基于STM32MP157
  • 2021.05.13 发布"Pinctrl子系统":

    06_client端使用pinctrl过程的情景分析_基于IMX6ULL
    06_client端使用pinctrl过程的情景分析_基于STM32MP157
  • 2021.05.14 发布"Pinctrl子系统":

    07_编写虚拟的Pinctrl驱动程序之实现框架
    08_编写虚拟的Pinctrl驱动程序之设置pinctrl_desc
    09_编写虚拟的Pinctrl驱动程序之处理设备树
  • 2021.05.15 完结"Pinctrl子系统":

    10_调试虚拟的Pinctrl驱动程序
  • 2021.05.26 开始发布"GPIO子系统":

    01_GPIO子系统视频介绍
    02_使用GPIO子系统要掌握的重要概念
    03_基于GPIO子系统的LED驱动程序
    04_在100ASK_IMX6ULL上机实验
    04_在100ASK_STM32MP157上机实验
  • 2021.05.27 发布"GPIO子系统":

    05_GPIO子系统层次与数据结构
  • 2021.05.28 发布"GPIO子系统":

    06_IMX6ULL的GPIO驱动源码分析
    06_STM32MP157的GPIO驱动源码分析
    07_编写一个虚拟GPIO控制器的驱动程序
    08_调试与使用虚拟的GPIO控制器
  • 2021.05.29 完结"GPIO子系统":

    09_GPIO子系统与Pinctrl子系统的交互
    10_编程_GPIO使用Pinctrl
    11_GPIO子系统的sysfs接口
  • 2021.06.12 发布"Interrupt子系统"

    01_异常与中断的概念及处理流程
    02_进程线程中断的核心_栈
    03_Linux系统对中断处理的演进
    04_Linux中断系统中的重要数据结构
    05_在设备树中指定中断_在代码中获得中断
    06_编写使用中断的按键驱动程序
    07_IMX6ULL设备树修改及上机实验
    07_STM32MP157设备树修改及上机实验
  • 2021.06.25 发布"Interrupt子系统"

    08_中断相关的其他驱动程序
    09_中断的硬件框架
    10_GIC介绍与编程
  • 2021.06.26 发布"Interrupt子系统"

     11_异常向量表的安装与调用
  • 2021.06.28 发布"Interrupt子系统"

    12_GIC驱动程序对中断的处理流程
    13_GIC驱动程序分析
  • 2021.07.03 发布"Interrupt子系统"

    14_两类中断控制器处理流程_链式和层级
    15_链式中断控制器驱动程序编写
  • 2021.07.04 发布"Interrupt子系统"

    16_legacy方式代码的上机实验
  • 2021.07.05 发布"Interrupt子系统"

    17_链式中断控制器驱动程序编写_linear方式
    18_层级中断控制器驱动程序编写
    19_层级中断控制器驱动程序上机实验
  • 2021.07.12 发布"UART子系统"

    01_UART子系统视频介绍
    02_硬件知识_UART硬件介绍
  • 2021.07.14 发布"UART子系统"

    03_TTY体系中设备节点的差别
  • 2021.07.16 发布"UART子系统"

    04_TTY驱动程序框架
  • 2021.07.19 发布"UART子系统"

    5a_在STM32MP157上做串口实验的准备工作
    05_Linux串口应用编程_回环
    06_Linux串口应用编程_GPS
  • 2021.07.21 发布"UART子系统"

    07_字符设备驱动程序的另一种注册方法
  • 2021.07.22 发布"UART子系统"

    08_UART驱动情景分析_注册
  • 2021.07.26 发布"UART子系统"

    09_UART驱动情景分析_open
    10_UART驱动情景分析_read
    11_UART驱动情景分析_write
  • 2021.07.30 发布"UART子系统"

    12_UART驱动调试方法
    13_编写虚拟UART驱动程序_框架
  • 2021.08.02 发布"UART子系统"

    14_编写虚拟UART驱动程序_实现uart_ops
  • 2021.08.04 发布"UART子系统"

    15_编写虚拟UART驱动程序_实现数据传输
  • 2021.08.06 发布"UART子系统"

    16_编写虚拟UART驱动程序_调试
  • 2021.08.12 发布"UART子系统"

    17_printk执行过程
  • 2021.08.16 发布"UART子系统"

    18_console驱动注册过程
    19_编写console驱动
    20_early_printk和earlycon
  • 2021.08.17 完结"UART子系统"

    21_RS485简单讲解
  • 2021.10.11 发布"PCI和PCIe子系统"

    01_从软件开发角度看待PCI和PCIe
  • 2021.10.29 发布"PCI和PCIe子系统"

    02_PCI设备的访问方法_非桥设备(type0)
  • 2021.11.01 发布"PCI和PCIe子系统"

    03_PCI设备的访问方法_桥设备(type1)
  • 2021.11.11 发布"PCI和PCIe子系统"

    04_从软件角度看PCIe设备的硬件结构
  • 2021.11.18 发布"PCI和PCIe子系统"

    05_PCIe设备的配置过程
  • 2021.11.30 发布"PCI和PCIe子系统"

    06_PCIe路由方式
  • 2021.12.29 发布"PCI和PCIe子系统"

    07_PCI驱动程序框架
  • 2021.12.31 发布"PCI和PCIe子系统"

    08_RK3399_PCIe芯片手册解读
  • 2022.01.02 发布"PCI和PCIe子系统"

    09_RK3399_PCIe_Host驱动分析_地址映射
  • 2022.01.06 发布"PCI和PCIe子系统"

    10_RK3399_PCIe_Host驱动分析_设备枚举
  • 2022.01.17 发布"PCI和PCIe子系统"

    11_INTx_MSI_MSIX三种中断机制分析
  • 2022.01.20 发布"PCI和PCIe子系统"

    12_INTx中断机制源码分析
  • 2022.01.25 发布"PCI和PCIe子系统"

    13_GICv3_LPI机制
  • 2022.01.26 完结"PCI和PCIe子系统"

    14_MSI_MSI-X中断之体验与使用
    15_MSI_MSI-X中断之源码分析
    16_怎么编写PCIe设备驱动程序
  • 2021.02.16 发布"SPI子系统":

    01_SPI视频概述
    02_SPI协议介绍
  • 2021.02.24 发布"SPI子系统":

    03_SPI总线设备驱动模型
  • 2021.03.07 发布"SPI子系统":

    04_SPI设备树处理过程
  • 2021.03.09 发布"SPI子系统":

    05_spidev的使用(SPI用户态API)
  • 2021.03.10 发布"SPI子系统":

    06_使用spidev操作SPI_DAC模块

6. 联系方式