人工精选通俗易懂的BSP及驱动开发教程
解决什么痛点:从裸机到 Linux 驱动的“断层”怎么填 很多嵌入式开发者卡在两个极端:要么只会用现成的 SDK 调接口,一旦换个芯片或外设,就完全无从下手;要么在 Linux 驱动开发时,分不清应用层、内核层和硬件层的边界,遇到设备树报错或平台总线匹配失败就束手无策。这门课的核心价值,在于填补“裸
会员可免费下载本篇月会员可按日额度下载(每篇扣 1 次)。
开通会员 ›会员 A · 按档位折扣
会员 B
游客按标价购买,不享受上表折扣。
支付成功后自动发放网盘链接,链接失效可找客服免费补
解决什么痛点:从裸机到 Linux 驱动的“断层”怎么填
很多嵌入式开发者卡在两个极端:要么只会用现成的 SDK 调接口,一旦换个芯片或外设,就完全无从下手;要么在 Linux 驱动开发时,分不清应用层、内核层和硬件层的边界,遇到设备树报错或平台总线匹配失败就束手无策。这门课的核心价值,在于填补“裸机编程”与“Linux 驱动开发”之间的认知断层。
课程并非直接抛给你一堆抽象的内核 API,而是从 S5P6818 这类典型 ARM 芯片的底层逻辑讲起。它先通过 GPIO 裸机编程、链接脚本、GNU 工具链等基础章节,帮你彻底搞懂“寄存器怎么映射”、“代码是怎么加载进内存的”。这些看似底层的知识,恰恰是理解 Linux 驱动中“物理地址”、“虚拟地址”、“设备树(Device Tree)”以及“Platform 总线机制”的基石。如果你之前学驱动时总觉得是在“背模板”,这门课能帮你把底层逻辑打通。
适合什么基础,建议先看哪几块
这门课不适合完全零基础的小白,也不适合已经精通内核驱动架构的老手。它最适合的是:**有一定 C 语言基础,学过单片机的 GPIO/中断/定时器,但从未深入接触过 Linux 内核驱动开发,或者在实际工作中对设备树和平台总线一知半解的嵌入式软件工程师。**
建议的学习路径如下:
- 第一阶段(必看):第一章“平台裸机介绍”。 重点看 02-基本概念、04-开发板介绍、05-统一编址、07-链接、08-GPIO裸机编程这几个视频。不要快进,要把“为什么地址要统一编址”、“链接脚本决定了内存分布”这两个概念吃透。这是后续理解 Linux 驱动模型的前提。
- 第二阶段(核心):第十二章“Platform & I2C”。 这是 Linux 驱动开发的精髓所在。重点攻克 01-platform-dev-drv 编程、02-platform 获取设备信息、03-04-设备树基本语法。看完后,你应该能独立写出一个简单的 Platform 驱动,并理解设备树节点是如何与驱动匹配的。
- 第三阶段(补充):第四章“rootfs”。 这部分主要解决“驱动写好了,怎么在板子上跑起来”的问题。了解根文件系统的制作、Kconfig 编译配置以及挂载流程,能让你具备独立搭建嵌入式开发环境的能力。
学完能独立做什么,资料怎么配合练习
完成本课程的主体学习后,你将能够独立完成以下工作:第一,使用 GNU 工具链编译和烧录裸机程序;第二,编写基于 Linux 内核的 Platform 总线驱动,实现字符设备或简单外设驱动;第三,理解并修改设备树(.dts)文件,配置 I2C/SPI 等外设节点;第四,独立构建最小化的根文件系统,让驱动能够在真实板卡上运行。
资料包中的笔记(如 Day01、Day04、Day12 的 PDF)是视频的精华浓缩,适合复习时对照查看,但不宜替代视频——因为很多调试细节(如 linker script 的写法、设备树语法的坑)只在视频中演示。建议配合视频进行实操:先在电脑上搭建好交叉编译环境,再跟着视频在开发板上验证 GPIO 闪烁、I2C 通信等实验。不要只看不练,嵌入式开发是典型的手上功夫,只有亲手改过设备树、调通过内核模块,才能真正掌握这门技能。
课程目录
教案2 条
- 01-1.嵌入式系统开发概述.pdf [2.2 MB]
- 01-2裸机工程开发调试.pdf [991.3 KB]
笔记1 条
- Day01-Linux驱动-裸机开发.pdf [9.1 MB]
视频10 条
- 09-加载bin文件到内存【资源精选‖更多关注:CunWorkNotes】.wmv [72.8 MB]
- 06-GNU工具.wmv [61.5 MB]
- 04-开发板介绍【更多精选‖公众号:CunWorkNotes 获取】.wmv [41.8 MB]
- 08-GPIO裸机编程【资源精选‖更多关注:CunWorkNotes】.wmv [63.2 MB]
- 03-S5P6818芯片介绍.wmv [218.9 MB]
- 07-链接.wmv [25.2 MB]
- 02-基本概念.wmv [81.1 MB]
- 05-统一编址.wmv [101.0 MB]
- 01-驱动阶段大纲介绍.wmv [25.9 MB]
- 代码.exe [345.4 KB]
教案1 条
- 04-1.嵌入式文件系统【更多精选‖公众号:CunWorkNotes 获取】.pdf [933.3 KB]
视频8 条
- 05-根文件系统介绍.wmv [96.9 MB]
- 01-Kconfig.wmv [202.5 MB]
- 02-编译代码.wmv [191.9 MB]
- 06-根文件系统制作1.wmv [142.1 MB]
- 08-根文件系统挂载【优质资源‖关注:CunWorkNotes 解锁】.wmv [119.8 MB]
- 04-文件系统的介绍.wmv [135.5 MB]
- 03-测试Kconfig编译代码.wmv [136.9 MB]
- 07-根文件系统制作2.wmv [242.1 MB]
笔记1 条
- Day04-Linux驱动-根文件系统.pdf [1.8 MB]
笔记1 条
- Day12-Linux驱动-platformBus-I2CBus.pdf [699.8 KB]
视频9 条
- 08-I2C实训相关函数封装【更多精选‖公众号:CunWorkNotes 获取】.wmv [267.0 MB]
- 02-platform获取设备信息.wmv [151.8 MB]
- 01-platform-dev-drv编程【优质资源‖关注:CunWorkNotes 解锁】.wmv [157.9 MB]
- 03-DeviceTree基本语法1【优质资源‖关注:CunWorkNotes 解锁】.wmv [162.6 MB]
- 04-设备树介绍.wmv [139.4 MB]
- 06-I2C协议1.wmv [153.2 MB]
- 09-mma8653【整理不易‖记得关注:CunWorkNotes】.wmv [492.4 MB]
- 05-I2C总线时序.wmv [159.1 MB]
- 07-I2C协议2.wmv [57.2 MB]
教案2 条
- 08-1.i2c原理及应用【资源精选‖更多关注:CunWorkNotes】.pdf [1.3 MB]
- 代码.exe [324.6 KB]
教案1 条
- 02-1.Bootloader应用分析.pdf [3.0 MB]
笔记1 条
- Day02-Linux驱动-BootLoader.pdf [2.2 MB]
视频8 条
- 07-uboot启动过程【整理不易‖记得关注:CunWorkNotes】.wmv [210.6 MB]
- 06-uboot命令.wmv [269.0 MB]
- 01-启动方式分析.wmv [62.9 MB]
- 05-uboot编译下载.wmv [359.0 MB]
- 02-启动方式确定.wmv [287.8 MB]
- 04-uboot配置.wmv [226.1 MB]
- 03-BootLoader启动过程.wmv [141.7 MB]
- 代码.exe [317.4 KB]
笔记1 条
- Day08-Linux驱动-GPIO子系统【不易整理‖请关注:CunWorkNotes】.pdf [324.3 KB]
教案1 条
- 07-1.工程实例.pdf [2.1 MB]
视频8 条
- 07-softirq实现的中断底半部x6g.com.wmv [163.4 MB]
- 05-中断测试【更多精选‖公众号:CunWorkNotes 获取】.wmv [108.9 MB]
- 06-中断底半部基本概念.wmv [222.2 MB]
- 03-中断API说明.wmv [288.6 MB]
- 08-tasklet实现中断底半部.wmv [204.4 MB]
- 04-中断实例【资源精选‖更多关注:CunWorkNotes】.wmv [164.4 MB]
- 02-gpio子系统实例【更多精选‖公众号:CunWorkNotes 获取】.wmv [136.0 MB]
- 代码.exe [324.2 KB]
视频8 条
- 02-阻塞1【不易整理‖请关注:CunWorkNotes】.wmv [247.2 MB]
- 01-信号量-原子操作【不易整理‖请关注:CunWorkNotes】.wmv [268.5 MB]
- 04-阻塞实例.wmv [255.7 MB]
- 08-异步通知.wmv [80.1 MB]
- 06-IO多路复用.wmv [132.4 MB]
- 03-阻塞2【不易整理‖请关注:CunWorkNotes】.wmv [173.7 MB]
- 05-非阻塞.wmv [194.2 MB]
- 07-IO多路复用代码【更多精选‖公众号:CunWorkNotes 获取】.wmv [195.3 MB]
笔记2 条
- Day10-Linux驱动——IO模型.pdf [302.3 KB]
- 代码.exe [324.4 KB]
笔记1 条
- Day09-Linux驱动-工作队列-定时器-同步互斥.pdf [310.6 KB]
视频12 条
- 10-自旋锁历程1【更多精选‖公众号:CunWorkNotes 获取】.wmv [1.0 GB]
- 09-自旋锁API.wmv [56.2 MB]
- 05-Kfifo.wmv [1.0 GB]
- 02-workqueue02【整理不易‖记得关注:CunWorkNotes】.wmv [662.4 MB]
- 03-按键软件消抖.wmv [65.6 MB]
- 01-workqueue01.wmv [769.3 MB]
- 06-并发与竞态的基本概念【不易整理‖请关注:CunWorkNotes】.wmv [41.3 MB]
- 11-自旋锁历程2.wmv [28.3 MB]
- 07-互斥体.wmv [67.1 MB]
- 08-自旋锁特点【优质资源‖关注:CunWorkNotes 解锁】.wmv [38.9 MB]
- 04-内核定时器【不易整理‖请关注:CunWorkNotes】.wmv [167.9 MB]
- 代码.exe [327.2 KB]
教案1 条
- 06-1.Linux_kernel_API【整理不易‖记得关注:CunWorkNotes】.pdf [1.4 MB]
笔记1 条
- Day07-Linux驱动-字符设备【更多精选‖公众号:CunWorkNotes 获取】.pdf [355.7 KB]
视频9 条
- 01-open打开过程中涉及的结构体【更多精选‖公众号:CunWorkNotes 获取】.wmv [142.0 MB]
- 02-open的系统调用【优质资源‖关注:CunWorkNotes 解锁】.wmv [103.5 MB]
- 06-硬件地址映射【更多精选‖公众号:CunWorkNotes 获取】.wmv [71.5 MB]
- 05-ioctl命令码.wmv [325.4 MB]
- 08-GPIO映射方法2.wmv [85.9 MB]
- 04-ioctl接口【不易整理‖请关注:CunWorkNotes】.wmv [49.9 MB]
- 03-read-write接口.wmv [276.6 MB]
- 07-GPIO映射方法1.wmv [44.0 MB]
- 代码.exe [321.6 KB]
视频7 条
- 02-内核模块编写.wmv [89.1 MB]
- 04-内核模块传递参数1【资源精选‖更多关注:CunWorkNotes】.wmv [116.7 MB]
- 01-内核模块【资源精选‖更多关注:CunWorkNotes】.wmv [182.3 MB]
- 07-符号表导出.wmv [70.5 MB]
- 06-printk【不易整理‖请关注:CunWorkNotes】.wmv [53.7 MB]
- 05-内核模块传递参数2.wmv [79.7 MB]
- 03-内核模块的编译.wmv [222.6 MB]
教案1 条
- 05-1.Linux字符设备驱动.pdf [1.6 MB]
笔记1 条
- Day05-Linux驱动-内核模块【更多精选‖公众号:CunWorkNotes 获取】.pdf [1020.2 KB]
视频9 条
- 09-platform驱动和设备注册过程.wmv [440.0 MB]
- 05-misc设备驱动例程.wmv [103.1 MB]
- 03-misc杂项设备1【更多精选‖公众号:CunWorkNotes 获取】.wmv [212.8 MB]
- 08-platform相关结构体.wmv [89.7 MB]
- 04-misc杂项设备2.wmv [119.0 MB]
- 02-字符设备注册.wmv [90.5 MB]
- 07-platform-bus-dev.wmv [304.1 MB]
- 01-异步通知【更多精选‖公众号:CunWorkNotes 获取】.wmv [406.1 MB]
- 06-platform平台总线.wmv [102.0 MB]
笔记2 条
- Day11-Linux驱动-异步通知-platform总线【不易整理‖请关注:CunWorkNotes】.pdf [237.0 KB]
- 代码.exe [320.7 KB]
教案1 条
- 03-1.Linux内核开发移植.pdf [1.2 MB]
笔记1 条
- Day03-Linux驱动-uboot命令-内核kernel.pdf [1.8 MB]
视频8 条
- 06-通过fastboot下载.wmv [94.4 MB]
- 05-tftpboot下载镜像【整理不易‖记得关注:CunWorkNotes】.wmv [122.3 MB]
- 01-uboot命令【资源精选‖更多关注:CunWorkNotes】.wmv [265.8 MB]
- 04-内核编译.wmv [231.0 MB]
- 03-内核配置.wmv [160.5 MB]
- 07-bootcmd环境变量自动启动.wmv [64.2 MB]
- 02-kernel介绍.wmv [188.4 MB]
- 代码.exe [1.3 MB]
视频6 条
- 06-mma驱动3【整理不易‖记得关注:CunWorkNotes】.wmv [147.5 MB]
- 05-mma驱动2【更多精选‖公众号:CunWorkNotes 获取】.wmv [283.4 MB]
- 01-i2c子系统1【更多精选‖公众号:CunWorkNotes 获取】.wmv [261.3 MB]
- 03-i2c子系统3【不易整理‖请关注:CunWorkNotes】.wmv [109.6 MB]
- 02-i2c子系统2.wmv [255.4 MB]
- 04-mma驱动1.wmv [244.6 MB]
教案2 条
- 09-1.i2c子系统应用.pdf [1.2 MB]
- 09-2.重力传感器项目.pdf [644.6 KB]
笔记2 条
- Day13-Linux驱动-I2C子系统.pdf [128.9 KB]
- 代码.exe [319.0 KB]
视频8 条
- 02-字符设备驱动框架1.wmv [50.3 MB]
- 06-创建设备文件.wmv [70.0 MB]
- 04-字符设备驱动框架3.wmv [145.2 MB]
- 03-字符设备驱动框架2-cdev结构体.wmv [178.0 MB]
- 08-生成设备文件代码编写【优质资源‖关注:CunWorkNotes 解锁】.wmv [179.9 MB]
- 01-驱动基本概念【整理不易‖记得关注:CunWorkNotes】.wmv [60.4 MB]
- 07-生成设备文件内核相关函数【资源精选‖更多关注:CunWorkNotes】.wmv [96.9 MB]
- 05-字符设备驱动框架代码【整理不易‖记得关注:CunWorkNotes】.wmv [301.2 MB]
笔记2 条
- Day06-Linux驱动-字符设备驱动【资源精选‖更多关注:CunWorkNotes】.pdf [301.0 KB]
- 代码.exe [318.6 KB]


![大疆维修,无人机维修教程[66.30GB]](/api/uploads/b6a69810-862f-479c-a529-d66880073ebc.jpg)


