- 1
- 2
- 3
- 4
- 5
freertos内部详解
资料介绍
# 工程 ↔ 文档 交叉引用清单
> 用途: 从"一个工程"出发, 找到对应学习文档; 或从"一个知识点"出发, 找到可以动手验证的工程。
> 两个来源:
> - `../1_项目源码`: 12 个裸机演示工程(自己实现链表, 配套文档 01~06)
> - `../J1939_F103`: 完整 FreeRTOS 工程(官方源码 + J1939 协议栈, 配套文档 07~26)
## 一、按工程索引(1_项目源码)
| 工程目录 | 名称 | 关键代码(add/del/sort) | 对应文档 |
|----------|------|------------------------|----------|
| 01_template | 模板 | 只有 main + malloc 演示 | 01(指针/入口) |
| 02_simple_link | 指针链接 | couple 指向, 无链表 | 01 |
| 03_simple_list | 最小链表 | InitList + 单节点链 | 01 |
| 04_simple_list_operations | 增删操作 | Add/Del(无哨兵) | **02** |
| 05_simple_list_delitem | 删除项 | Add/Del(无哨兵, 删头特判) | **02** |
| 06_simple_list_sort | 排序 | Add/Del + Sort(交换值) | **02** |
| 07_simple_list_improve | 改进 | 哨兵 head + AddAfter + 交换节点 Sort | **03** |
| 08_generic_list | 通用链表 | node_t + 比较器 + container_of 雏形 | **04** |
| 09_generic_list_method1 | 通用链表法1 | node 置首 + 强转 | **05** |
| 10_generic_list_method2 | 通用链表法2 | container_of 宏 | **05** |
| 11_generic_list_method3 | 通用链表法3 | node 存 container 指针 | **05** |
| 12_double_dir_list | 双向链表 | next+pre + 环形 + 哨兵 | **06** |
### 攻读建议(动手线)
```
01模板 → 02链接 → 03最小链表 → 04增删 → 05删除 → 06排序 → 07哨兵改进
→ 08通用链表 → 09/10/11 三法 → 12双向环形
```
每个工程改动集中在 `Main/main.c`, 在 Keil 里编译 → 断点 → 单步看指针变化, 是最直观的"链表可视化"。
## 二、按文档索引(知识点 → 工程/源码)
| 知识点 | 动手工程(1_项目源码) | 官方源码对照(J1939_F103) |
|--------|----------------------|--------------------------|
| 链表难点/指针 | 02 | — |
| 创建/插入/删除/排序 | 04/05/06 | — |
| 哨兵 head | 07 | list.c 的 xListEnd |
| 通用链表/container_of | 08~11 | list.h 的 pvOwner |
| 双向环形+哨兵 | 12 | list.c 全套 |
| 内存管理 heap | — | portable/MemMang/heap_*.c |
| 任务创建/启动/切换 | — | tasks.c + portable/RVDS/ARM_CM3/port.c |
| 临界区 | — | task.h + portmacro.h(portENTER_CRITICAL) |
| 队列/队列集 | — | queue.c |
| 信号量/互斥量 | — | semphr.h + queue.c |
| 事件组 | — | event_groups.c |
| 任务通知 | — | tasks.c(xTaskGenericNotify) |
| 软件定时器 | — | timers.c |
| 流/消息缓冲 | — | stream_buffer.c |
| 内存/任务统计 | — | heap_4.c + tasks.c |
## 三、J1939_F103 工程里可以做的“配套实验”
| 实验 | 改哪里 | 观察什么 |
|------|--------|----------|
| 改堆大小 | FreeRTOSConfig.h 的 configTOTAL_HEAP_SIZE | xPortGetFreeHeapSize 变化 |
| 改任务栈大小 | freertos.c 的 stack_size | uxTaskGetStackHighWaterMark 变化 |
| 开统计 | configUSE_TRACE_FACILITY + configGENERATE_RUN_TIME_STATS | vTaskList / vTaskGetRunTimeStats 输出 |
| CAN 收发 | can.c / stm32_j1939_port.c | J1939 Address Claimed 流程 |
| 加一个软件定时器 | freertos.c, xTimerCreate + xTimerStart | 定时回调周期性打印 |
## 四、文件路径速查(常用)
| 位置 | 说明 |
|------|------|
| `../1_项目源码/XX_*/Main/main.c` | 每个教学工程主程序 |
| `.../Source/queue.c` | 队列/信号量/队列集 |
| `.../Source/event_groups.c` | 事件组 |
| `.../Source/stream_buffer.c` | 流/消息缓冲 |
| `.../Source/timers.c` | 软件定时器 |
| `.../Source/list.c` + `include/list.h` | 链表 |
| `.../Source/portable/MemMang/heap_*.c` | 内存管理 5 选 1 |
| `.../Source/portable/RVDS/ARM_CM3/port.c` | Cortex-M3 移植层(调度汇编) |
部分文件列表
| 文件名 | 大小 |
| 2_学习文档_(2).zip | 159K |
最新上传
-
21下载积分 打赏310.00元 1天前
用户:江岚
-
21下载积分 打赏310.00元 1天前
用户:潇潇江南
-
21下载积分 打赏60.00元 1天前
用户:他山之石可攻玉
-
21下载积分 打赏310.00元 1天前
用户:小猫做电路
-
21下载积分 打赏210.00元 1天前
用户:zhengdai
-
21下载积分 打赏210.00元 1天前
用户:w993263495
-
21下载积分 打赏10.00元 1天前
用户:烟雨
-
21下载积分 打赏60.00元 1天前
用户:gsy幸运
-
21下载积分 打赏70.00元 1天前
用户:铁蛋锅
-
21下载积分 打赏65.00元 1天前
用户:xzxbybd
-
21下载积分 打赏60.00元 1天前
用户:jh0355
-
21下载积分 打赏60.00元 1天前
用户:w178191520
-
21下载积分 打赏20.00元 1天前
用户:jh03551
-
21下载积分 打赏20.00元 1天前
用户:sun2152
-
21下载积分 打赏20.00元 1天前
用户:kk1957135547
-
21下载积分 打赏25.00元 1天前
用户:w1966891335
-
21下载积分 打赏20.00元 1天前
用户:xuzhen1
-
21下载积分 打赏15.00元 1天前
用户:x15580286248
-
21下载积分 打赏25.00元 1天前
用户:pcb
-
21下载积分 打赏20.00元 1天前
用户:bhacker
-
21下载积分 打赏15.00元 1天前
用户:liqiang9090
-
21下载积分 打赏25.00元 1天前
用户:有理想666
-
21下载积分 打赏15.00元 1天前
用户:godbox
-
21下载积分 打赏15.00元 1天前
用户:aetek
-
21下载积分 打赏5.00元 1天前
用户:mulanhk
-
21下载积分 打赏5.00元 1天前
用户:JuneLin61
-
21下载积分 打赏5.00元 1天前
用户:ccc6188
-
21下载积分 打赏5.00元 1天前
用户:木集盒
-
21ic小能手 打赏5.00元 2天前
-
21ic小能手 打赏5.00元 2天前
-
21ic小能手 打赏3.00元 3天前
-
21ic小能手 打赏5.00元 3天前
-
21ic小能手 打赏5.00元 3天前
-
21ic小能手 打赏3.00元 3天前
-
21ic小能手 打赏5.00元 3天前
-
21ic小能手 打赏10.00元 3天前
-
21ic小能手 打赏8.00元 3天前
-
21ic小能手 打赏5.00元 3天前
-
21ic小能手 打赏5.00元 3天前
-
21ic小能手 打赏5.00元 3天前




全部评论(0)