Linux驱动开发学习路线规划
Posted JeckXu666
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux驱动开发学习路线规划相关的知识,希望对你有一定的参考价值。
Linux驱动开发学习路线规划
关于Linux驱动开发路线学习的一个规划,学习内容以博客形式记录,打钩的表示学习完成
入门操作篇:
- Linux常用指令
- vim 编辑器使用
- Makefile 基础语法
- shell 基础语法
总结文章: Linux驱动开发系列:入门Ubuntu知识
ARM裸机篇:
- 了解 Cortex-A7 MPCore 架构:ARM裸机开发:Cortex-A7 MPCore架构基础
- 了解 Cortex-A7 常用汇编指令:ARM裸机开发:ARM汇编基础
- 熟悉 IMX 芯片程序下载下载流程:ARM裸机开发:I.MX6UL 程序编译下载(SD卡)
- 了解 IO 配置有关寄存器,汇编编程点亮LED灯:ARM裸机开发:汇编LED灯实验(I.MX6UL芯片)
- 了解 IMX 启动方式和启动原理:ARM裸机开发:I.MX6U 启动方式
- 使用汇编准备C语言开发环境,用C语言点亮LED灯:ARM裸机开发:C语言点亮LED
- 熟悉官方 SDK 移植开发流程:
- 对 SDK 进行管理,建立 BSP 工程意识:
- GPIO 控制加强,控制蜂鸣器:
- GPIO 控制加强,读取按键输入:
- 定时器学习,学会配置定时器中断:
- 定时器学习加强,用定时器来做按键消抖:
- 定时器学习加强,用定时器来做精准延时:
- 了解串口收发器有关寄存器配置,学习使用串口收发数据:
- 将C库函数映射到串口,方便直接调用
- 了解DDR配置,学习使用扩展RAM
- 了解 RGB LCD 的寄存器,学习如何使用 LCD
- 了解触摸屏相关寄存器,学习如何获取 LCB 触摸位置数据
- 了解 IMX 内部 RTC 模块寄存器,学习如何配置使用
- 了解 IMX IIC 配置寄存器,使用 IIC
- 了解 IMX SPI 配置寄存器,使用 SPI
系统移植篇:
- 了解 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 应用编程
以上是关于Linux驱动开发学习路线规划的主要内容,如果未能解决你的问题,请参考以下文章