Linux驱动开发学习路线规划

Linux驱动开发学习路线规划

关于Linux驱动开发路线学习的一个规划,学习内容以博客形式记录,打钩的表示学习完成

入门操作篇:

  • Linux常用指令
  • vim 编辑器使用
  • Makefile 基础语法
  • shell 基础语法

总结文章: Linux驱动开发系列:入门Ubuntu知识

ARM裸机篇:

系统移植篇:

  • 了解 U-Boot
  • 从 U-Boot 顶层 Makefile 分析其编译流程
  • 分析 U-Boot 启动流程
  • 移植官方 U-Boot 到 IMX 开发板
  • 学会使用图形化配置 U-Boot ,加快开发流程
  • 从 Linux 顶层 Makefile 分析其内核编译流程
  • 了解 Linux 内核启动流程
  • 移植官方提供的 Linux 内核到 IMX 开发板上
  • 了解根文件系统的组成以及如何构建根文件系统 rootfs
  • 使用 USB OTG 来烧写整个系统:

驱动开发篇:

  • 了解字符设备驱动开发
  • 使用老版驱动 API 函数编写 LED 驱动
  • 使用Linux内核推荐的新字符设备驱动API函数编写 LED 驱动
  • 了解 Linux 设备树
  • 基于设备树开发 LED 驱动
  • 学习借助 pinctrl 和 gpio 子系统来简化 GPIO 驱动开发,编写点灯程序
  • 上一节加强,驱动蜂鸣器
  • 学习多任务共享资源时的并发与竞争处理
  • 上一节加强,具体使用相关操作处理并发与竞争
  • 编写按键输入驱动,并且结合原子操作保护按键资源
  • 学习 Linux 内核提供的定时操作及其实现原理
  • 学习在 Linux 下使用中断
  • 学习一下阻塞和非阻塞 IO及如何在驱动程序中处理阻塞与非阻塞
  • 学习如何在驱动程序中进行异步通知
  • 学习一下 Linux 下的驱动分离与分层, 以及 platform 框架下的设备驱动该如何编写
  • 学习使用 Linux 自带的 LED 灯驱动(基于 platform 框架)
  • 学习编写无法分类的杂项驱动编写
  • 学习 Linux 内核中的 input 子系统处理输入事件
  • 学习 Linux 下驱动 LCD 屏幕
  • 学习 Linux 下驱动 RTC时钟
  • 学习 Linux 下 IIC 驱动框架
  • 学习 Linux 下 SPI 驱动框架
  • 学习 Linux 下 UART 驱动框架
  • 待更新

应用开发篇:

应用开发基础:

  • 了解文件IO基本操作:Linux应用开发:文件IO基础
  • 了解文件IO高级操作:Linux应用开发:文件IO进阶
  • 学习标准IO操作
  • 学习其他文件相关系统调用
  • 学习C库中常用的字符串处理函数
  • 学习使用 Linux 系统调用或C库函数获取系统信息
  • 学习 Linux 下信号的使用
  • 学习进程的基本操作
  • 学习进程间通信机制
  • 学习线程基本操作
  • 学习线程间的同步操作
  • 学习文件IO的高级操作

应用开发实战:

  • 点亮LED
  • 控制GPIO
  • 获取输入设备信息
  • Framebuffer帧缓冲设备应用编程(LCD使用)
  • PWM应用编程
  • 摄像头应用编程
  • 串口应用编程
  • 看门狗应用编程
  • IIC 应用编程
  • SPI 应用编程
  • CAN 应用编程
posted @ 2021-10-28 21:13  JeckXu666  阅读(550)  评论(0编辑  收藏  举报