|
|
@@ -208,3 +208,92 @@ Wiki 页面:
|
|
|
- 裸机中断(01-04)→ 中断下半部(03-05)→ INPUT 子系统(03-08)
|
|
|
- 裸机定时器(01-05)→ 内核定时器 → 按键消抖(05-02)
|
|
|
- U-Boot/内核移植(06)→ 设备树(03-02)→ 驱动匹配
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 嵌入式Linux应用与Qt开发实战
|
|
|
+
|
|
|
+> 来源:正点原子《I.MX6U嵌入式Linux C应用编程指南V1.6》《I.MX6U嵌入式Qt开发指南V1.2》
|
|
|
+> 定位:用户态应用编程 → 外设应用 → 网络 → Qt 图形界面,每篇自包含完整,可用于学习/复习/查询/面试
|
|
|
+
|
|
|
+原始笔记(33 个文件):
|
|
|
+`raw/Joplin/嵌入式+Linux/嵌入式Linux应用与Qt开发实战/`
|
|
|
+
|
|
|
+### 01-Linux应用编程基础(6 篇)
|
|
|
+
|
|
|
+| 编号 | 主题 | 核心内容 |
|
|
|
+| ---- | ---- | -------- |
|
|
|
+| 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/属性/字符串/系统信息 |
|
|
|
+
|
|
|
+### 02-进程线程与IPC(5 篇)
|
|
|
+
|
|
|
+| 编号 | 主题 | 核心内容 |
|
|
|
+| ---- | ---- | -------- |
|
|
|
+| 01 | 信号机制 | 信号分类、signal/sigaction、信号集、sigsuspend |
|
|
|
+| 02 | 进程管理 | fork/vfork/exec、wait、僵尸孤儿、守护进程、单例 |
|
|
|
+| 03 | 进程间通信 | 管道/FIFO、消息队列、信号量、共享内存 |
|
|
|
+| 04 | 线程与线程同步 | pthread、互斥锁、条件变量、读写锁、自旋锁、生产者消费者 |
|
|
|
+| 面试 | 面试-进程线程与IPC | 30 道题:信号/进程/IPC/线程同步 |
|
|
|
+
|
|
|
+### 03-外设与高级IO编程(7 篇)
|
|
|
+
|
|
|
+| 编号 | 主题 | 核心内容 |
|
|
|
+| ---- | ---- | -------- |
|
|
|
+| 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/摄像头串口音频 |
|
|
|
+
|
|
|
+### 04-网络编程与项目实战(5 篇)
|
|
|
+
|
|
|
+| 编号 | 主题 | 核心内容 |
|
|
|
+| ---- | ---- | -------- |
|
|
|
+| 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/视频监控 |
|
|
|
+
|
|
|
+### 05-Qt应用开发(9 篇)
|
|
|
+
|
|
|
+| 编号 | 主题 | 核心内容 |
|
|
|
+| ---- | ---- | -------- |
|
|
|
+| 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嵌入式 |
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 嵌入式 Linux 三库总索引
|
|
|
+
|
|
|
+围绕 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++技术体系梳理/` |
|
|
|
+
|
|
|
+**衔接关系**
|
|
|
+
|
|
|
+- 裸机外设(驱动 KB 01)→ 用户态外设应用(应用 KB 03)
|
|
|
+- 驱动 `file_operations`(驱动 KB 03-01)→ 系统调用/文件 IO(应用 KB 01-02)
|
|
|
+- 设备树/pinctrl(驱动 KB 03-02/03)→ GPIO/LED 应用(应用 KB 03-02)
|
|
|
+- INPUT 子系统驱动(驱动 KB 03-08)→ 输入设备与 tslib(应用 KB 03-03)
|
|
|
+- LCD/触摸驱动(驱动 KB 05-03/04)→ FrameBuffer 应用(应用 KB 03-04)
|
|
|
+- UART/RS485 驱动(驱动 KB 04-05)→ 串口应用(应用 KB 03-06)
|
|
|
+- 系统编程深入(技术体系梳理 2)→ 应用 KB 各篇「延伸阅读」
|