目录
一、引言
二、路线
------>2.1、基础外设
------>2.2、核心总线
------>2.3、复杂协议驱动
------>2.4、多媒体框架驱动
三、总线/子系统等梳理
一、引言
从本专栏开始,会进行最底层驱动的开发,涉及到RK、Horizon等平台
二、路线
这个路径是一个从点(单一外设)、到线(总线通信)、再到面(复杂框架)的过程。这是一个相对漫长的过程,建议你花费2-3个月的时间,按照这个路径,以实践为主,逐个击破。最关键的是,每学一个模块,都要去翻阅RK3568的数据手册和你手头RDKS600的驱动代码,将抽象的理论和你具体的硬件、代码联系起来。这不仅能帮你学到技术,更能让你深入理解芯片厂商的BSP是如何设计与工作的

这些是芯片厂商必须要提供的接口
而一些复杂的多媒体框架,大点的芯片厂商也都会提供

下面是常见芯片公司的"驱动开发"分工:

芯片厂商不仅要做基础驱动,多媒体驱动也是核心工作。
所以我们后面的学习路线,将会包含基础的外设、总线驱动编写,还需要了解复杂的多媒体、AI驱动框架
2.1、基础外设

2.2、核心总线
这一阶段是整个学习路径的分水岭,重点在于理解设备驱动模型、总线、设备和驱动的关系,以及设备树(Device Tree) 的作用。

2.3、复杂协议驱动
当你理解了简单的总线驱动后,就可以挑战USB和PCIe这类更复杂的协议了。你的目标不再是每一行代码都看懂,而是理解其框架思想和初始化流程。

2.4、多媒体框架驱动
这是通往SDK开发专家的最后一站。你需要理解Linux下复杂的多媒体框架------V4L2用于视频,ALSA用于音频,DRM用于显示 。这个阶段的核心是理解框架,而非编写驱动。

三、总线/子系统等梳理
这边简单梳理一下之前整理过的常用子系统
RK3568---kernel驱动整理汇总(一)
RK3568---kernel驱动整理汇总(二)
RK3568---kernel驱动整理汇总(三)
RK3568---kernel驱动整理汇总(四)
我们之后也会按照这个顺序,进行驱动的学习,最后会补充没有提到的驱动