正版资源通俗易懂的BSP及驱动开发教程
课程核心定位 本教程专注于嵌入式 Linux 驱动开发的底层实现与工程落地,旨在解决开发者在从应用层向内核层跨越时的技术断层问题。很多初级工程师擅长编写上层业务代码,但面对硬件初始化、BSP 构建及驱动适配时往往无从下手。课程以 S5P6818 处理器为核心平台,系统性地拆解了从裸机开发到内核模块编
课程核心定位
本教程专注于嵌入式 Linux 驱动开发的底层实现与工程落地,旨在解决开发者在从应用层向内核层跨越时的技术断层问题。很多初级工程师擅长编写上层业务代码,但面对硬件初始化、BSP 构建及驱动适配时往往无从下手。课程以 S5P6818 处理器为核心平台,系统性地拆解了从裸机开发到内核模块编写的完整链路。内容不仅涵盖 GPIO 控制、寄存器映射等基础操作,更深入讲解链接脚本编写、GNU 工具链配置以及根文件系统的定制化编译。通过这一体系化的训练,学员能够建立起对嵌入式系统启动流程、内存管理及总线通信的底层认知,从而具备独立解决驱动兼容性与系统稳定性问题的能力。
前置门槛与学习路径
学习本课程需要具备一定的 C 语言编程功底,熟悉 Linux 环境下的常用命令操作,并对计算机组成原理中的内存地址、中断机制有基本理解。建议按照以下三个阶段循序渐进:
- 基础夯实期:首先深入理解芯片架构与基本概念,重点攻克统一编址、链接脚本及 bin 文件加载原理。此阶段需配合 GPIO 裸机编程实战,确保能熟练操作开发板并理解硬件控制的最底层逻辑。
- 系统构建期:随后进入根文件系统相关章节,学习 Kconfig 配置、代码编译流程及根文件系统的挂载与制作。这一环节是打通软件与硬件的关键,旨在让学员掌握如何为一个裸芯片构建完整的可运行操作系统环境。
- 驱动进阶期:最后聚焦于 Platform 总线与 I2C 驱动开发。通过深入学习设备树语法、platform 设备与驱动的分离设计模式,以及 I2C 总线函数的封装技巧,实现从单个外设驱动到复杂总线驱动的平滑过渡。
预期产出与资料使用建议
完成全部课程后,开发者应具备独立编写字符设备驱动的能力,能够熟练解析设备树节点,完成 I2C 等常用总线的驱动适配,并能自主搭建和调试嵌入式 Linux 根文件系统。为了达到最佳学习效果,建议将视频讲解与官方提供的教案 PDF 及阶段性笔记紧密结合。在学习过程中,不应仅停留在观看层面,而应动手复现每一个代码示例,特别是链接脚本的修改、设备树的编写以及根文件系统的定制过程。通过对照笔记中的知识点进行实际编译和烧录测试,可以将零散的理论知识转化为可落地的工程技能,最终形成一套完整的嵌入式驱动开发方法论。
课程目录
教案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]
视频7 条
- 05-根文件系统介绍.wmv [96.9 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]
视频10 条
- 10-自旋锁历程1【更多精选‖公众号:CunWorkNotes 获取】.wmv [1.0 GB]
- 09-自旋锁API.wmv [56.2 MB]
- 02-workqueue02【整理不易‖记得关注:CunWorkNotes】.wmv [662.4 MB]
- 03-按键软件消抖.wmv [65.6 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]
视频8 条
- 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]
- 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]




