|
|
@@ -339,26 +339,44 @@ git commit -m "<类型>: <摘要>"
|
|
|
|
|
|
## 8. 代码整合规范
|
|
|
|
|
|
-### 8.1 核心原则
|
|
|
+### 8.1 两层级结构
|
|
|
|
|
|
-**不要把整个代码项目复制到笔记中**。而是:
|
|
|
+```
|
|
|
+code/ # 第一层:完整工程归档(只存不改)
|
|
|
+├── 09_消息队列/
|
|
|
+│ └── Core/Src/freertos_demo.c
|
|
|
+
|
|
|
+07-消息队列与队列集.md # 第二层:嵌入提取的核心代码
|
|
|
+```
|
|
|
|
|
|
-1. 读 `freertos_demo.c`(或 `main.c`)提取核心示例
|
|
|
-2. 只保留关键代码段,删除重复的模板代码(任务配置、启动调度器等重复部分只保留一次)
|
|
|
-3. 每段代码必须有**通俗解释**(可以举生活中的例子)
|
|
|
-4. 复杂概念必须配**通俗类比**,确保小白能看懂
|
|
|
+- **`code/`** — 原始工程完整复制,作为可编译参考
|
|
|
+- **`.md` 笔记** — 从 `freertos_demo.c` 中提取**核心完整示例**,嵌入文档正文中
|
|
|
|
|
|
-### 8.2 代码项目组织
|
|
|
+### 8.2 嵌入原则
|
|
|
|
|
|
-原始代码项目(文件夹)整体复制到 `code/` 子目录,笔记中通过相对路径引用:
|
|
|
-```
|
|
|
-raw/Joplin/嵌入式+Linux/FreeRTOS学习笔记/
|
|
|
-├── code/
|
|
|
-│ ├── 09_消息队列/ ← 完整工程代码
|
|
|
-│ ├── 10_二值信号量/
|
|
|
-│ └── ...
|
|
|
-├── 07-消息队列与队列集.md ← 只嵌入核心代码段
|
|
|
-└── 08-信号量与互斥信号量.md
|
|
|
+**不要直接复制整个文件到笔记中**。提取核心示例时:
|
|
|
+
|
|
|
+1. 读 `freertos_demo.c`(或 `main.c`)找到核心演示逻辑
|
|
|
+2. 提取完整的函数/代码块作为示例(可独立运行理解)
|
|
|
+3. 删除重复的模板代码(任务配置宏定义、启动调度器等通用部分只写一次)
|
|
|
+4. 每段代码必须有**通俗解释**(举生活中例子)
|
|
|
+5. 复杂概念必须配**通俗类比**,确保小白能看懂
|
|
|
+
|
|
|
+示例(笔记中的代码段):
|
|
|
+```c
|
|
|
+// ========== 核心示例:发送消息 ==========
|
|
|
+// 保留了完整函数体,删除了任务创建等模板部分
|
|
|
+void task1(void *pvParameters) {
|
|
|
+ uint8_t key = 0;
|
|
|
+ while (1) {
|
|
|
+ key = Key_Detect();
|
|
|
+ if (key == KEY1_PRESS) {
|
|
|
+ xQueueSend(queue1, &key, portMAX_DELAY);
|
|
|
+ // portMAX_DELAY = 队列满了就死等
|
|
|
+ }
|
|
|
+ vTaskDelay(500);
|
|
|
+ }
|
|
|
+}
|
|
|
```
|
|
|
|
|
|
### 8.3 嵌入式代码注意事项
|