type: index title: 知识库入口
来源:[[source-freertos|尚硅谷 FreeRTOS 教程]] + B 站 FreeRTOS 视频转录
16 篇原始笔记(含 22 个配套项目的核心代码 + 逐行注释):
raw/Joplin/嵌入式+Linux/FreeRTOS学习笔记/
已从 B 站视频教程的 55 个视频中提取字幕/语音讲解内容,丰富笔记中的类比和细节。
笔记覆盖内容:
| 层级 | 笔记编号 | 主题 |
|---|---|---|
| 概念基础 | 01~02 | 实时操作系统基础 / 任务调度与状态管理 |
| 移植配置 | 03~04 | 移植指南 / 数据类型命名与配置详解 |
| 任务管理 | 05~09 | 任务创建删除 / 挂起恢复 / 中断管理 / 时间片与延时 / 状态查询统计 |
| IPC 机制 | 10~14 | 消息队列 / 信号量 / 队列集 / 事件标志组 / 任务通知 |
| 高级特性 | 15~16 | 软件定时器与 Tickless / 内存管理 |
Wiki 页面:
[[freertos-ipc|IPC]] — 队列,信号量,事件标志组,任务通知
graph RL
A[source-freertos] --> B[raw notes]
B --> C[freertos-intro]
B --> D[freertos-task-scheduling]
B --> E[freertos-task-api]
B --> F[freertos-ipc]
B --> G[freertos-interrupt-time]
来源:[[source-stm32-basic|尚硅谷基础篇]] · [[source-stm32-medium|尚硅谷进阶篇]]
原始笔记(寄存器 + HAL 双版,代码源自配套项目):
raw/Joplin/嵌入式+Linux/STM32学习笔记/
21 篇笔记覆盖内容:
| 层级 | 笔记编号 | 主题 |
|---|---|---|
| 基础篇 | 01~06 | 概述/GPIO/LED/中断/时钟/USART |
| 进阶篇 | 07~12 | I2C/TIM/PWM/DMA/ADC/SPI+FSMC |
| 高级篇 | 13~17 | CAN/ETH/WiFi/BLE/LoRa |
| 扩展篇 | 18~21 | 低功耗/RTC/看门狗/附录 |
Wiki 页面(高级篇 + 扩展篇 — 含代码准确性审计):
来源:
raw/Joplin/嵌入式+Linux/C语言OOP封装完整系列/
在纯 C 中实现封装、继承、多态三大 OOP 特性,对标 Linux 内核与工业嵌入式实践。
raw/Joplin/嵌入式+Linux/C语言OOP封装完整系列/c-oop.md — 完整指南(含可复制多文件 C 示例、编译命令与 C vs C++/Java 对比)来源:[[source-metalearning|YJango 渐构·世界模型]](20 篇笔记)
来源:[[source-面试八股主题元学习法|面试八股主题元学习法]](AI 教练启动包)
将 [[metalearning]] 元学习理论落地到嵌入式面试八股的专用教练框架。6 步流程:明确对象层 → 正反例 → 提取判别规则 → 复述 → 变体验证 → 口述演练。
主题清单(38 个):
原始资料:raw/面试八股/
来源:[[source-尚硅谷数电从零搭建计算机|尚硅谷《从零搭建计算机》]] · [[source-尚硅谷电子元器件入门|尚硅谷《电子元器件零基础入门》]]
原始笔记(19 篇数电 + 10 篇模电):
raw/Joplin/嵌入式+Linux/数电模电笔记/
2026-08-18 就地增补两类内容:
Wiki 页面:
来源:正点原子《I.MX6U嵌入式Linux驱动开发指南 V2.0.1》 定位:按知识域组织(非 PDF 章节顺序),覆盖 IMX6ULL 裸机 → Linux 驱动 → 系统移植全链路
原始笔记(46 个文件,约 3.6 万行):
raw/Joplin/嵌入式+Linux/嵌入式Linux驱动开发实战/
| 编号 | 主题 | 核心内容 |
|---|---|---|
| 01 | Cortex-A7架构详解 | ARMv7、寄存器组、CPSR、9种工作模式、GIC中断、异常向量表 |
| 02 | ARM汇编基础 | 指令集、数据处理、LDR/STR、跳转与条件码、伪指令、LED示例 |
| 03 | 时钟与电源管理 | 7路PLL、时钟树、CCM寄存器、分频门控、DVFS |
| 04 | GPIO与中断系统 | GPIO寄存器组、中断触发配置、IRQ_Handler、中断服务函数 |
| 05 | 定时器与看门狗 | EPIT/GPT原理与寄存器、定时器消抖、WDOG |
| 06 | UART串口通信 | UART寄存器位域、波特率公式、收发与中断、printf重定向 |
| 07 | BSP工程管理与封装 | 目录结构、通用Makefile(wildcard/patsubst)、链接脚本 |
| 08 | 裸机实验总结 | 10 个裸机实验整合(LED→UART→LCD→I2C/SPI) |
| 面试 | 面试-ARM架构与裸机 | 30 道题:架构/寄存器/工作模式/汇编/中断异常/裸机开发 |
| 编号 | 主题 | 核心内容 |
|---|---|---|
| 01 | 内核编译与配置 | Kconfig 语法、顶层 Makefile、vmlinux 生成链、镜像类型 |
| 02 | 内核模块编程 | module_init/exit、printk、模块参数、符号导出、内核/用户空间 |
| 03 | 系统调用与VFS | sys_call_table、系统调用流程、super_block/inode/dentry/file |
| 04 | 进程调度与中断管理 | task_struct、CFS 调度、fork/COW、GIC-400、上下半部 |
| 05 | 内存管理 | 两级页表与 TLB、伙伴系统、slab/slub、vmalloc/ioremap、DMA/CMA |
| 06 | 设备模型与Kobject | kobject/kset/ktype、sysfs、总线-设备-驱动模型、platform |
| 面试 | 面试-Linux内核基础 | 30 道题:配置/模块/系统调用/调度/内存/设备模型 |
| 编号 | 主题 | 核心内容 |
|---|---|---|
| 01 | 字符设备驱动基础 | file_operations、cdev、设备号、chrdevbase 完整实验 |
| 02 | 设备树语法与实战 | DTS语法、compatible、of_* API、dtsled 实验 |
| 03 | pinctrl与gpio子系统 | 宏展开(5值)、电气属性位域、gpiod vs gpio、调试与避坑 |
| 04 | 并发同步与原子操作 | 竞态分析、原子变量、自旋锁、信号量、互斥体、对比选型 |
| 05 | 中断下半部处理 | softirq、tasklet、workqueue、线程化中断、机制对比 |
| 06 | 阻塞IO与poll机制 | 等待队列、poll/select、异步通知 fasync、IO 模型对比 |
| 07 | platform总线模型 | platform_device/driver、of_match_table、probe 流程 |
| 08 | misc与input子系统 | miscdevice、input_dev、事件上报、hexdump 解析 |
| 面试 | 面试-Linux驱动开发 | 35 道题:字符设备/设备树/pinctrl/并发/中断/platform/IO模型 |
| 编号 | 主题 | 核心内容 |
|---|---|---|
| 01 | I2C驱动开发 | I2C 协议、i2c_adapter/client/driver、AP3216C 驱动、i2c-tools |
| 02 | SPI驱动开发 | SPI 四模式、spi_master/device/driver、ICM20608 驱动 |
| 03 | USB驱动开发 | USB 设备架构、HCD、URB、鼠标驱动、Gadget 框架 |
| 04 | CAN驱动开发 | CAN 帧与仲裁、SocketCAN、FlexCAN 驱动、can-utils |
| 05 | RS232与485通信 | tty/uart 框架、uart_port/ops、RS485 方向控制 |
| 面试 | 面试-总线接口驱动 | 30 道题:I2C/SPI/USB/CAN/串口/总线对比 |
| 编号 | 主题 | 核心内容 |
|---|---|---|
| 01 | LED与蜂鸣器驱动 | GPIO 子系统用法、设备树节点、led.c/beep.c 完整源码 |
| 02 | 按键驱动 | GPIO 输入、消抖方案、中断、INPUT 子系统方式 |
| 03 | LCD驱动 | RGB 时序、framebuffer、fb_info、mxsfb 驱动、fbset |
| 04 | 触摸屏驱动 | 电容触控、MT Protocol Type A/B、FT5x06 驱动、校准 |
| 05 | 音频驱动 | I2S/SAI、WM8960 Codec、ALSA 三层驱动模型、aplay/amixer |
| 06 | RTC与PWM驱动 | SNVS-RTC 驱动、PWM 子系统、pwm_chip/ops、sysfs |
| 07 | ADC与IIO驱动 | vf610 ADC 驱动、IIO 子系统、缓冲区、trigger |
| 08 | 块设备驱动 | gendisk、request_queue、bio、请求处理函数 |
| 面试 | 面试-外设驱动实战 | 30 道题:LED/按键/LCD/触摸/音频/RTC-PWM/ADC-IIO/块设备 |
| 编号 | 主题 | 核心内容 |
|---|---|---|
| 01 | U-Boot命令与使用 | 命令全集(boot/memory/网络/mmc)、环境变量、TFTP/NFS 启动 |
| 02 | U-Boot启动流程 | 源码结构、顶层 Makefile、SPL/主阶段、重定位、main_loop |
| 03 | Linux内核裁剪与编译 | 配置系统、裁剪策略、顶层 Makefile、编译与排错、dtc |
| 04 | 根文件系统构建 | BusyBox 配置编译、目录结构、/etc 配置、NFS/镜像 |
| 05 | 系统烧写与量产 | SD/串口/USB 烧写、MfgTool/UUU、量产方案与排错 |
| 面试 | 面试-系统移植 | 30 道题:U-Boot/内核/设备树/根FS/烧写/启动流程 |
来源:正点原子《I.MX6U嵌入式Linux C应用编程指南V1.6》《I.MX6U嵌入式Qt开发指南V1.2》 定位:用户态应用编程 → 外设应用 → 网络 → Qt 图形界面,每篇自包含完整,可用于学习/复习/查询/面试
原始笔记(33 个文件):
raw/Joplin/嵌入式+Linux/嵌入式Linux应用与Qt开发实战/
| 编号 | 主题 | 核心内容 |
|---|---|---|
| 01 | 应用编程概念与开发环境 | 系统调用 vs 库函数、main、errno、gcc 编译流程 |
| 02 | 文件IO基础与深入探究 | fd、open/read/write/lseek、文件共享、原子操作、fcntl/ioctl |
| 03 | 标准IO库 | FILE、fopen/fread/fwrite、格式化 IO、缓冲机制 |
| 04 | 文件属性与目录 | stat、权限、硬软链接、目录遍历 |
| 05 | 字符串处理与系统信息 | str/mem 函数族、正则、时间日期、proc 文件系统 |
| 面试 | 面试-Linux应用编程基础 | 30 道题:概念/文件IO/标准IO/属性/字符串/系统信息 |
| 编号 | 主题 | 核心内容 |
|---|---|---|
| 01 | 信号机制 | 信号分类、signal/sigaction、信号集、sigsuspend |
| 02 | 进程管理 | fork/vfork/exec、wait、僵尸孤儿、守护进程、单例 |
| 03 | 进程间通信 | 管道/FIFO、消息队列、信号量、共享内存 |
| 04 | 线程与线程同步 | pthread、互斥锁、条件变量、读写锁、自旋锁、生产者消费者 |
| 面试 | 面试-进程线程与IPC | 30 道题:信号/进程/IPC/线程同步 |
| 编号 | 主题 | 核心内容 |
|---|---|---|
| 01 | 高级IO | 非阻塞 IO、select/poll/epoll、异步 IO、mmap、文件锁 |
| 02 | GPIO与LED应用编程 | sysfs GPIO、LED 子系统、ioctl 控制 LED |
| 03 | 输入设备与tslib | input 子系统、input_event、tslib 校准与读取 |
| 04 | FrameBuffer与LCD应用编程 | fb 结构体、mmap 显存、画笔、libjpeg/libpng、FreeType |
| 05 | PWM与看门狗 | PWM sysfs、占空比、/dev/watchdog、WDIOC_* |
| 06 | 摄像头串口与音频 | V4L2 采集、termios 串口、ALSA 放音录音 |
| 面试 | 面试-外设与高级IO编程 | 30 道题:高级IO/GPIO/输入/LCD/PWM/摄像头串口音频 |
| 编号 | 主题 | 核心内容 |
|---|---|---|
| 01 | 网络基础与socket编程 | TCP/IP、socket API、TCP/UDP、并发服务器 |
| 02 | CAN应用编程 | CAN 帧格式、SocketCAN、can-utils |
| 03 | CMake入门与进阶 | CMake 语法、多目录工程、交叉编译工具链 |
| 04 | 实战项目MQTT与视频监控 | MQTT/原子云、cJSON、V4L2+编码+传输 |
| 面试 | 面试-网络编程与项目实战 | 25 道题:网络/CAN/CMake/MQTT/视频监控 |
| 编号 | 主题 | 核心内容 |
|---|---|---|
| 01 | C++基础与面向对象 | 命名空间、类对象、构造析构、继承重载多态、抽象类 |
| 02 | Qt入门与项目结构 | Qt Creator、.pro/.ui/.h/.cpp、qmake、Qt Designer |
| 03 | 信号与槽 | 信号槽机制、moc、自定义信号槽、连接类型 |
| 04 | Qt控件详解 | 按钮/输入/显示/浏览器类控件(27 个) |
| 05 | 布局容器与模型视图 | 布局、容器、Model/View、QListWidget 等(20 个) |
| 06 | 文本绘图与图表 | QFile/QTextStream、QPainter、QChart |
| 07 | 多线程网络多媒体与数据库 | QThread、TCP/UDP、QMediaPlayer、SQLite |
| 08 | 嵌入式Qt交叉编译与项目实战 | 交叉编译、Qt 控制 LED/串口/CAN/摄像头、5 个项目 |
| 面试 | 面试-Qt应用开发 | 40 道题:C++/Qt基础/信号槽/控件/布局/绘图/网络/Qt嵌入式 |
围绕 I.MX6ULL 的三套知识库,按学习阶段衔接:
| 知识库 | 定位 | 入口 |
|---|---|---|
| 嵌入式Linux驱动开发实战 | 起点:ARM 裸机 → 内核 → 驱动 → 系统移植 | raw/Joplin/嵌入式+Linux/嵌入式Linux驱动开发实战/README.md |
| 嵌入式Linux应用与Qt开发实战 | 用户态应用编程 → 外设应用 → 网络 → Qt | raw/Joplin/嵌入式+Linux/嵌入式Linux应用与Qt开发实战/README.md |
| Linux+C+C++技术体系梳理 | 语言与系统编程「深入专题」(延伸阅读) | raw/Joplin/Linux+C+C++技术体系梳理/ |
衔接关系
file_operations(驱动 KB 03-01)→ 系统调用/文件 IO(应用 KB 01-02)