Преглед изворни кода

ingest: 嵌入式Linux应用与Qt开发实战知识库骨架

OpenCode пре 14 часа
родитељ
комит
873be74d7a

+ 77 - 0
X-Knowledge-Base/raw/Joplin/嵌入式+Linux/嵌入式Linux应用与Qt开发实战/PLAN.md

@@ -0,0 +1,77 @@
+# 嵌入式Linux应用与Qt开发实战 — 文件规划
+
+> 源:正点原子《I.MX6U嵌入式Linux C应用编程指南V1.6》《I.MX6U嵌入式Qt开发指南V1.2》
+> 组织:按知识域分组,非 PDF 章节序。每篇自包含完整,可独立用于学习/复习/查询/面试。
+
+## 模块与文件(5 模块 / 32 篇 + README)
+
+### 01-Linux应用编程基础(6)
+
+| 文件 | PDF | 例程 |
+| ---- | --- | ---- |
+| 01-应用编程概念与开发环境 | 第一章 应用编程概念 | — |
+| 02-文件IO基础与深入探究 | 第二章 文件I_O基础、第三章 深入探究文件I_O | — |
+| 03-标准IO库 | 第四章 标准I_O库 | — |
+| 04-文件属性与目录 | 第五章 文件属性与目录 | — |
+| 05-字符串处理与系统信息 | 第六章 字符串处理、第七章 系统信息与系统资源 | — |
+| 面试-Linux应用编程基础 | — | — |
+
+### 02-进程线程与IPC(5)
+
+| 文件 | PDF |
+| ---- | --- |
+| 01-信号机制 | 第八章 信号:基础 |
+| 02-进程管理 | 第九章 进程 |
+| 03-进程间通信 | 第十章 进程间通信简介 |
+| 04-线程与线程同步 | 第十一章 线程、第十二章 线程同步 |
+| 面试-进程线程与IPC | — |
+
+### 03-外设与高级IO编程(7)
+
+| 文件 | PDF | 例程 |
+| ---- | --- | ---- |
+| 01-高级IO | 第十三章 高级I_O | — |
+| 02-GPIO与LED应用编程 | 第十五章 点亮LED、第十六章 GPIO应用编程 | 15_led、16_gpio |
+| 03-输入设备与tslib | 第十七章 输入设备应用编程、第十八章 使用tslib库 | 17_input、18_tslib |
+| 04-FrameBuffer与LCD应用编程 | 第十九~二十三章 | 19_lcd、20_libjpeg、21_libpng、22_lcd_vertical_display、23_freetype |
+| 05-PWM与看门狗 | 第二十四章 PWM、第二十七章 看门狗 | 24_pwm、27_watchdog |
+| 06-摄像头串口与音频 | 第二十五章 V4L2、第二十六章 串口、第二十八章 音频 | 25_v4l2_camera、26_uart、28_alsa-lib |
+| 面试-外设与高级IO编程 | — | — |
+
+### 04-网络编程与项目实战(5)
+
+| 文件 | PDF | 例程 |
+| ---- | --- | ---- |
+| 01-网络基础与socket编程 | 第二十九章 网络基础知识、第三十章 socket编程基础 | 30_socket |
+| 02-CAN应用编程 | 第三十一章 CAN应用编程基础 | 31_can |
+| 03-CMake入门与进阶 | 第三十二章 CMake入门与进阶 | — |
+| 04-实战项目MQTT与视频监控 | 第三十三章 MQTT物联网、第三十四章 视频监控 | 33_mqtt |
+| 面试-网络编程与项目实战 | — | — |
+
+### 05-Qt应用开发(9)
+
+| 文件 | Qt指南章节 | 例程 |
+| ---- | ---------- | ---- |
+| 01-C++基础与面向对象 | 第一、二章 | Embedded-Qt-Tutorial/C++/01~11 |
+| 02-Qt入门与项目结构 | 第三、四章 | Qt/01/01_hello_world、02_designer_example |
+| 03-信号与槽 | 第五、六章 | Qt/01/03_signal_slot_example |
+| 04-Qt控件详解 | 第七章(按钮/输入/显示窗口部件) | Qt/01/04~28 |
+| 05-布局容器与模型视图 | 第七章(布局/容器/项目视图组/项目控件组) | Qt/01/29~47 |
+| 06-文本绘图与图表 | 第八、九章 | Qt/02/01~04 |
+| 07-多线程网络多媒体与数据库 | 第十~十三章 | Qt/02/05~18 |
+| 08-嵌入式Qt交叉编译与项目实战 | 第十四~二十八章 | Qt/03、Qt/04、09综合例程 |
+| 面试-Qt应用开发 | — | — |
+
+## 跨库交叉引用(旧笔记仅作「延伸阅读」,不修改不删除)
+
+| 新 KB 篇 | 延伸阅读 |
+| -------- | -------- |
+| 01/02-文件IO基础与深入探究 | 系统编程/2. 系统调用IO、3. 文件描述符操作 |
+| 01/03-标准IO库 | 系统编程/1. C库文件IO |
+| 01/04-文件属性与目录 | 系统编程/4. 目录操作与文件属性 |
+| 02/01-信号机制 | 系统编程/6. 信号机制 |
+| 02/02-进程管理 | 系统编程/5. 进程创建与管理、7. 进程控制、8. 守护进程 |
+| 02/03-进程间通信 | 系统编程/19. 管道、20. 共享内存与mmap、21. 消息队列、22. 信号量 |
+| 02/04-线程与线程同步 | 系统编程/9~12;深入 → 13. 线程池模式 |
+| 04/01-网络基础与socket编程 | 系统编程/14. socket网络编程基础、15. TCP编程、16. UDP编程;深入 → 17. IO多路复用、18. 高并发模型 |
+| 05/01~08 | 编程学习项目/使用Qt和C++构造UI界面/* |

+ 101 - 0
X-Knowledge-Base/raw/Joplin/嵌入式+Linux/嵌入式Linux应用与Qt开发实战/README.md

@@ -0,0 +1,101 @@
+---
+title: 嵌入式Linux应用与Qt开发实战
+tags: [嵌入式Linux, 应用编程, Qt, IMX6ULL, 知识库索引]
+created: 2026-09-18
+updated: 2026-09-18
+---
+
+# 嵌入式Linux应用与Qt开发实战
+
+> 基于正点原子 I.MX6ULL 开发板,构建从 **Linux C 应用编程**到 **嵌入式 Qt 图形界面开发**的完整知识体系。
+> 每篇自包含完整(原理 + 完整源码 + 调试方法 + 面试题),可直接用于初步学习、复习与查询。
+
+## 与「驱动开发实战」及既有笔记的关系
+
+| 知识库 | 定位 | 路径 |
+| ------ | ---- | ---- |
+| 嵌入式Linux驱动开发实战 | 起点:ARM 裸机 → 驱动 → 系统移植 | `raw/Joplin/嵌入式+Linux/嵌入式Linux驱动开发实战/` |
+| **嵌入式Linux应用与Qt开发实战(本库)** | 用户态应用编程 → 外设应用 → 网络 → Qt | `raw/Joplin/嵌入式+Linux/嵌入式Linux应用与Qt开发实战/` |
+| Linux+C+C++技术体系梳理 | 语言与系统编程「深入专题」(延伸阅读) | `raw/Joplin/Linux+C+C++技术体系梳理/` |
+
+> 本库每篇内容自包含,**不依赖**延伸笔记即可学习;延伸笔记仅在各篇「关联知识 / 延伸阅读」中提供进一步深入的入口。
+
+## 学习路径
+
+```
+C应用编程基础 → 进程线程与IPC → 外设与高级IO → 网络与项目实战 → Qt应用开发
+      ↓               ↓                ↓              ↓             ↓
+    01模块          02模块           03模块         04模块        05模块
+```
+
+## 知识模块
+
+### 01-Linux应用编程基础
+
+- [[01-Linux应用编程基础/01-应用编程概念与开发环境]] — 系统调用/库函数、main 函数、开发环境
+- [[01-Linux应用编程基础/02-文件IO基础与深入探究]] — open/read/write/lseek、fd、errno、文件共享、原子操作
+- [[01-Linux应用编程基础/03-标准IO库]] — FILE 指针、fopen/fread/fwrite、格式化 IO、缓冲机制
+- [[01-Linux应用编程基础/04-文件属性与目录]] — stat、权限、链接、目录遍历
+- [[01-Linux应用编程基础/05-字符串处理与系统信息]] — 字符串/内存函数、正则、时间日期、proc 文件系统
+- [[01-Linux应用编程基础/面试-Linux应用编程基础]] — 面试题
+
+### 02-进程线程与IPC
+
+- [[02-进程线程与IPC/01-信号机制]] — 信号分类、处理、信号集、阻塞与等待
+- [[02-进程线程与IPC/02-进程管理]] — fork/vfork/exec、进程状态、守护进程
+- [[02-进程线程与IPC/03-进程间通信]] — 管道/FIFO、消息队列、信号量、共享内存
+- [[02-进程线程与IPC/04-线程与线程同步]] — pthread、互斥锁、条件变量、读写锁、自旋锁
+- [[02-进程线程与IPC/面试-进程线程与IPC]] — 面试题
+
+### 03-外设与高级IO编程
+
+- [[03-外设与高级IO编程/01-高级IO]] — 非阻塞 IO、IO 多路复用、异步 IO、存储映射
+- [[03-外设与高级IO编程/02-GPIO与LED应用编程]] — sysfs GPIO、/dev/led、ioctl
+- [[03-外设与高级IO编程/03-输入设备与tslib]] — input 子系统、event 结构、tslib 触摸校准
+- [[03-外设与高级IO编程/04-FrameBuffer与LCD应用编程]] — fb 设备、JPEG/PNG、FreeType、横竖屏
+- [[03-外设与高级IO编程/05-PWM与看门狗]] — PWM sysfs、看门狗喂狗
+- [[03-外设与高级IO编程/06-摄像头串口与音频]] — V4L2、UART、ALSA
+- [[03-外设与高级IO编程/面试-外设与高级IO编程]] — 面试题
+
+### 04-网络编程与项目实战
+
+- [[04-网络编程与项目实战/01-网络基础与socket编程]] — TCP/IP、socket、TCP/UDP、并发服务器
+- [[04-网络编程与项目实战/02-CAN应用编程]] — SocketCAN、can-utils
+- [[04-网络编程与项目实战/03-CMake入门与进阶]] — CMake 语法、交叉编译
+- [[04-网络编程与项目实战/04-实战项目MQTT与视频监控]] — MQTT 物联网、视频监控
+- [[04-网络编程与项目实战/面试-网络编程与项目实战]] — 面试题
+
+### 05-Qt应用开发
+
+- [[05-Qt应用开发/01-C++基础与面向对象]] — C++ 特性、类对象、继承重载多态
+- [[05-Qt应用开发/02-Qt入门与项目结构]] — Qt Creator、.pro/.ui、Qt Designer
+- [[05-Qt应用开发/03-信号与槽]] — 信号槽机制、自定义信号槽
+- [[05-Qt应用开发/04-Qt控件详解]] — 按钮、输入、显示类控件
+- [[05-Qt应用开发/05-布局容器与模型视图]] — 布局管理、容器、Model/View
+- [[05-Qt应用开发/06-文本绘图与图表]] — QFile/QTextStream、QPainter、QChart
+- [[05-Qt应用开发/07-多线程网络多媒体与数据库]] — QThread、TCP/UDP、音视频、SQLite
+- [[05-Qt应用开发/08-嵌入式Qt交叉编译与项目实战]] — 交叉编译、LED/串口/CAN/摄像头、综合项目
+- [[05-Qt应用开发/面试-Qt应用开发]] — 面试题
+
+## 跨平台资源
+
+| 知识领域 | 本项目 | 已有资源 |
+| -------- | ------ | -------- |
+| 系统编程深入 | 01/02 模块 | [[Linux+C+C++技术体系梳理/2. Linux系统编程/2. 系统调用IO]] |
+| 并发与锁 | 02 模块 | [[Linux+C+C++技术体系梳理/2. Linux系统编程/12. 读写锁与自旋锁]]、[[嵌入式Linux驱动开发实战/03-Linux驱动开发核心/04-并发同步与原子操作]] |
+| 网络编程 | 04 模块 | [[Linux+C+C++技术体系梳理/2. Linux系统编程/15. TCP编程]] |
+| Qt 界面开发 | 05 模块 | [[编程学习项目/使用Qt和C++构造UI界面/4. 信号和槽机制]] |
+| 驱动与硬件 | — | [[嵌入式Linux驱动开发实战/README]] |
+| STM32 嵌入式 | — | [[STM32学习笔记/README]] |
+
+## 使用说明
+
+- **初步学习**:按模块顺序阅读,每篇含完整原理与源码。
+- **复习**:每模块末尾「面试-*」文档 + 各篇「面试精选」章节。
+- **查询**:API/命令/寄存器均有表格,源码可直接复制。
+- **迁移**:每篇含 IMX6ULL vs STM32 vs RK3568 跨平台对比。
+
+---
+
+**创建时间**: 2026-09-18
+**基于资料**: 正点原子 I.MX6U《嵌入式Linux C应用编程指南V1.6》《嵌入式Qt开发指南V1.2》