下一届世界杯_世界杯揭幕战 - bjshiyanji.com

嵌入式驱动开发学习路线整理
2025-09-19 14:35:58

1、学习路线

1.1 知乎:菜鸟分享嵌入式Linux驱动开发学习路线与心得(一)

嵌入式方向:嵌入式Linux系统中,往上有应用程序功能开发和界面设计,往下有内核编程相关的驱动开发;

学习嵌入式Linux需要的基础知识:

C语言基础知识;

基础知识:操作系统相关知识、Linux系统基本使用、虚拟机使用;

Linux内核编程:Linux驱动开发的重要基础,包括各种锁、同步与异步操作、中断与时钟、内存操作等;

Linux驱动正文:

Linux内核模块相关;

Linux文件系统相关——Linux下一切皆文件,设备也是文件;

三种基本的驱动设备——字符设备、块设备、网络设备;

Linux驱动的基本架构——重中之重,会学到虚拟总线platform;

常用的总线(USB、I2C、SPI)等在Linux内核中的抽象——用一堆结构体定义总线的结构,用这些结构体来进行总线驱动开发;

最终开发;

嵌入式Linux开发可能会经历的工作内容:

移植系统:把Linux系统烧录到没有烧录系统的开发板中;

读原理图:硬件通过电路连接在总线上,要读懂总线自己的结构图;

设备树文件:各种总线及总线上挂载的各种设备被.dtb文件组织成设备树结构——从而用比较明朗的结构、比较少的代码告诉系统当前接入的设备有哪些。

系统中有最基本的设备树文件,需要把自己的设备用规定的语法添加在设备树文件中;

Maefile文件的编写;

驱动代码编写;

驱动模块的加载、卸载与调试;

学习书籍:

宋宝华《Linux驱动开发详解》;

学习不要拘泥于一本书,不要期待只通过一本书学完所有知识点,多准备几本,学习时专注于其中一本书,在学习遇到障碍时多去参考其他的书;

1.2 韦东山嵌入式驱动学习路线

2、Linux驱动开发详解——参考资料

2.1 CSDN:最全Linux驱动开发全流程详细解析

目录:

驱动概念、分类、功能;

驱动开发前提知识;

设备树;

字符设备驱动;

pinctrl子系统;

GPIO子系统;

内核并发与竞争;

内核定时器;

设备控制接口(ioctl);

中断机制;

阻塞与非阻塞IO;

异步通知机制;

Platform设备驱动框架;

Q&A

参考书:宋宝华老师《Linux驱动开发详解》、约翰·马迪厄《Linux设备驱动开发》;

开发板:正点原子;

2.2 GitHub:《Linux 设备驱动开发详解》(宋宝华) 学习笔记

资源获取:可以搜索随书光盘,会有站点提供免费下载;

作者公众号:Linux阅码场;