Files
STM32F4-Base/docs/images/引用关系图_模块.dot
wandering1 cea2b51efb docs(架构): 全景/启动顺序/存储/引用图与 README 同步任务面与 NET 内部模块
- 项目架构总览 v1.1:§1.1 去重复⑥行、硬件行 UART4/TIM3/ADC1;§2.1
  任务表 6→9 行且栈值按 freertos.c 校准;§3 补采集算法链与 TIM3 节拍;
  §5 补 net_events/net_listener/net_pending 与 iec104_serv,单客户端
  恢复窗更正为实测 p50 208ms;§7 目录树、§9 索引、§10 变更记录同步
- 项目启动顺序管理:任务表 5→10 行;启动轨迹表 8→14 行(fw build、
  ADC input layer、phasor/freq/protection、SD2506 明细、TIM3 启动)
- 存储架构说明:§1 初始化顺序块重写(gd5f 归位 app_main_init 内、
  rs485Task 未创建、补 TIM3 与 L1~L3 链)
- 引用关系图说明 §7 统计与产物重跑刷新;就绪屏障 SVG 补 iec104Task
  消费者后重生成(1400x912)
- README:外设引脚纠错(RS485=UART4/PC10/PC11/PA15、TPAFE 控制脚
  PC8/PC9/PC7)、启动流程补 sys_clock/adc_input/TIM3、任务表重生成
  (9 任务)、目录树与 NET 小节同步、ftp_speed_test→regression/
  integrity、文档表补四条专项索引
- 工具:gen_task_table.py 补 iec104Task/protectTask 职责;
  gen_barrier_svg.py 补 iec104Task 消费者与 bit0 计数
2026-10-14 19:07:48 +08:00

178 lines
12 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
digraph refgraph_module {
graph [rankdir=LR, bgcolor="white", labelloc=t, label="STM32F4-Base 模块引用概览", fontname="Microsoft YaHei", fontsize=18];
node [fontname="Microsoft YaHei", fontsize=12, shape=box, style="rounded,filled"];
edge [fontname="Microsoft YaHei", fontsize=10, fontcolor="#334155"];
"App" [fillcolor="#dbeafe", color="#1d4ed8"];
"App/log" [fillcolor="#dbeafe", color="#1d4ed8"];
"App/task" [fillcolor="#dbeafe", color="#1d4ed8"];
"App/util" [fillcolor="#dbeafe", color="#1d4ed8"];
"BSP(公共)" [fillcolor="#dbeafe", color="#1d4ed8"];
"BSP/CH395F" [fillcolor="#dbeafe", color="#1d4ed8"];
"BSP/GD5F2GQ5UE" [fillcolor="#dbeafe", color="#1d4ed8"];
"BSP/NET" [fillcolor="#dbeafe", color="#1d4ed8"];
"BSP/NETCFG" [fillcolor="#dbeafe", color="#1d4ed8"];
"BSP/RS485" [fillcolor="#dbeafe", color="#1d4ed8"];
"BSP/SD2506" [fillcolor="#dbeafe", color="#1d4ed8"];
"BSP/TPAFE5160" [fillcolor="#dbeafe", color="#1d4ed8"];
"BSP/UI" [fillcolor="#dbeafe", color="#1d4ed8"];
"CMSIS" [fillcolor="#f3f4f6", color="#9ca3af"];
"FatFs" [fillcolor="#f3f4f6", color="#9ca3af"];
"FreeRTOS" [fillcolor="#f3f4f6", color="#9ca3af"];
"HAL" [fillcolor="#f3f4f6", color="#9ca3af"];
"LVGL" [fillcolor="#f3f4f6", color="#9ca3af"];
"SDL2" [fillcolor="#f3f4f6", color="#9ca3af"];
"Src/Inc (CubeMX)" [fillcolor="#dbeafe", color="#1d4ed8"];
"dhara" [fillcolor="#f3f4f6", color="#9ca3af"];
"lftpd" [fillcolor="#f3f4f6", color="#9ca3af"];
"simulator" [fillcolor="#dbeafe", color="#1d4ed8"];
"test" [fillcolor="#dbeafe", color="#1d4ed8"];
"其他(第三方)" [fillcolor="#f3f4f6", color="#9ca3af"];
"外部/系统头文件" [shape=ellipse, fillcolor="#fef3c7", color="#d97706"];
"App" -> "App/log" [color="#2563eb", penwidth=1.2, label="×2"];
"App" -> "App/util" [color="#2563eb", penwidth=1.2, label="×4"];
"App" -> "BSP(公共)" [color="#2563eb", penwidth=1.2, label="×4"];
"App" -> "BSP/GD5F2GQ5UE" [color="#2563eb", penwidth=1.2, label="×1"];
"App" -> "BSP/NET" [color="#2563eb", penwidth=1.2, label="×1"];
"App" -> "BSP/RS485" [color="#2563eb", penwidth=1.2, label="×1"];
"App" -> "BSP/SD2506" [color="#2563eb", penwidth=1.2, label="×1"];
"App" -> "BSP/TPAFE5160" [color="#2563eb", penwidth=1.2, label="×2"];
"App" -> "FatFs" [color="#2563eb", penwidth=1.2, label="×1"];
"App" -> "FreeRTOS" [color="#2563eb", penwidth=1.2, label="×3"];
"App" -> "Src/Inc (CubeMX)" [color="#2563eb", penwidth=1.2, label="×5"];
"App" -> "test" [color="#2563eb", penwidth=1.2, label="×1"];
"App" -> "外部/系统头文件" [color="#94a3b8", penwidth=0.7, label="×28"];
"App/log" -> "App" [color="#2563eb", penwidth=1.2, label="×3"];
"App/log" -> "App/util" [color="#2563eb", penwidth=1.2, label="×2"];
"App/log" -> "BSP(公共)" [color="#2563eb", penwidth=1.2, label="×2"];
"App/log" -> "FatFs" [color="#2563eb", penwidth=1.2, label="×2"];
"App/log" -> "FreeRTOS" [color="#2563eb", penwidth=1.2, label="×5"];
"App/log" -> "Src/Inc (CubeMX)" [color="#2563eb", penwidth=1.2, label="×1"];
"App/log" -> "外部/系统头文件" [color="#94a3b8", penwidth=0.7, label="×8"];
"App/task" -> "App" [color="#2563eb", penwidth=1.2, label="×18"];
"App/task" -> "App/log" [color="#2563eb", penwidth=1.2, label="×6"];
"App/task" -> "App/util" [color="#2563eb", penwidth=1.2, label="×12"];
"App/task" -> "BSP(公共)" [color="#2563eb", penwidth=1.2, label="×7"];
"App/task" -> "BSP/CH395F" [color="#2563eb", penwidth=1.2, label="×1"];
"App/task" -> "BSP/GD5F2GQ5UE" [color="#2563eb", penwidth=1.2, label="×1"];
"App/task" -> "BSP/NET" [color="#2563eb", penwidth=1.2, label="×3"];
"App/task" -> "BSP/NETCFG" [color="#2563eb", penwidth=1.2, label="×2"];
"App/task" -> "BSP/RS485" [color="#2563eb", penwidth=1.2, label="×1"];
"App/task" -> "BSP/TPAFE5160" [color="#2563eb", penwidth=1.2, label="×1"];
"App/task" -> "BSP/UI" [color="#2563eb", penwidth=1.2, label="×4"];
"App/task" -> "FatFs" [color="#2563eb", penwidth=1.2, label="×1"];
"App/task" -> "FreeRTOS" [color="#2563eb", penwidth=1.2, label="×9"];
"App/task" -> "Src/Inc (CubeMX)" [color="#2563eb", penwidth=1.2, label="×1"];
"App/task" -> "test" [color="#2563eb", penwidth=1.2, label="×4"];
"App/task" -> "外部/系统头文件" [color="#94a3b8", penwidth=0.7, label="×3"];
"App/util" -> "App/log" [color="#2563eb", penwidth=1.2, label="×3"];
"App/util" -> "BSP(公共)" [color="#2563eb", penwidth=1.2, label="×2"];
"App/util" -> "BSP/SD2506" [color="#2563eb", penwidth=1.2, label="×1"];
"App/util" -> "FreeRTOS" [color="#2563eb", penwidth=1.2, label="×4"];
"App/util" -> "Src/Inc (CubeMX)" [color="#2563eb", penwidth=1.2, label="×4"];
"App/util" -> "lftpd" [color="#2563eb", penwidth=1.2, label="×1"];
"App/util" -> "外部/系统头文件" [color="#94a3b8", penwidth=0.7, label="×8"];
"BSP(公共)" -> "App/log" [color="#2563eb", penwidth=1.2, label="×1"];
"BSP(公共)" -> "App/util" [color="#2563eb", penwidth=1.2, label="×1"];
"BSP(公共)" -> "外部/系统头文件" [color="#94a3b8", penwidth=0.7, label="×1"];
"BSP/CH395F" -> "BSP(公共)" [color="#2563eb", penwidth=1.2, label="×1"];
"BSP/CH395F" -> "Src/Inc (CubeMX)" [color="#2563eb", penwidth=1.2, label="×3"];
"BSP/CH395F" -> "外部/系统头文件" [color="#94a3b8", penwidth=0.7, label="×1"];
"BSP/GD5F2GQ5UE" -> "BSP(公共)" [color="#2563eb", penwidth=1.2, label="×2"];
"BSP/GD5F2GQ5UE" -> "FatFs" [color="#2563eb", penwidth=1.2, label="×2"];
"BSP/GD5F2GQ5UE" -> "Src/Inc (CubeMX)" [color="#2563eb", penwidth=1.2, label="×1"];
"BSP/GD5F2GQ5UE" -> "dhara" [color="#2563eb", penwidth=1.2, label="×2"];
"BSP/GD5F2GQ5UE" -> "外部/系统头文件" [color="#94a3b8", penwidth=0.7, label="×4"];
"BSP/NET" -> "BSP(公共)" [color="#2563eb", penwidth=1.2, label="×4"];
"BSP/NET" -> "BSP/CH395F" [color="#2563eb", penwidth=1.2, label="×6"];
"BSP/NET" -> "FreeRTOS" [color="#2563eb", penwidth=1.2, label="×18"];
"BSP/NET" -> "Src/Inc (CubeMX)" [color="#2563eb", penwidth=1.2, label="×5"];
"BSP/NET" -> "test" [color="#2563eb", penwidth=1.2, label="×6"];
"BSP/NET" -> "外部/系统头文件" [color="#94a3b8", penwidth=0.7, label="×7"];
"BSP/NETCFG" -> "App" [color="#2563eb", penwidth=1.2, label="×2"];
"BSP/NETCFG" -> "BSP(公共)" [color="#2563eb", penwidth=1.2, label="×1"];
"BSP/NETCFG" -> "外部/系统头文件" [color="#94a3b8", penwidth=0.7, label="×4"];
"BSP/RS485" -> "Src/Inc (CubeMX)" [color="#2563eb", penwidth=1.2, label="×1"];
"BSP/SD2506" -> "BSP(公共)" [color="#2563eb", penwidth=1.2, label="×1"];
"BSP/SD2506" -> "Src/Inc (CubeMX)" [color="#2563eb", penwidth=1.2, label="×2"];
"BSP/SD2506" -> "外部/系统头文件" [color="#94a3b8", penwidth=0.7, label="×1"];
"BSP/TPAFE5160" -> "BSP(公共)" [color="#2563eb", penwidth=1.2, label="×1"];
"BSP/TPAFE5160" -> "FreeRTOS" [color="#2563eb", penwidth=1.2, label="×2"];
"BSP/TPAFE5160" -> "Src/Inc (CubeMX)" [color="#2563eb", penwidth=1.2, label="×2"];
"BSP/TPAFE5160" -> "外部/系统头文件" [color="#94a3b8", penwidth=0.7, label="×1"];
"BSP/UI" -> "App/log" [color="#2563eb", penwidth=1.2, label="×2"];
"BSP/UI" -> "BSP(公共)" [color="#2563eb", penwidth=1.2, label="×6"];
"BSP/UI" -> "BSP/NET" [color="#2563eb", penwidth=1.2, label="×2"];
"BSP/UI" -> "BSP/NETCFG" [color="#2563eb", penwidth=1.2, label="×1"];
"BSP/UI" -> "LVGL" [color="#2563eb", penwidth=1.2, label="×9"];
"BSP/UI" -> "test" [color="#2563eb", penwidth=1.2, label="×2"];
"BSP/UI" -> "外部/系统头文件" [color="#94a3b8", penwidth=0.7, label="×20"];
"CMSIS" -> "HAL" [color="#94a3b8", penwidth=0.7, label="×1"];
"CMSIS" -> "外部/系统头文件" [color="#94a3b8", penwidth=0.7, label="×22"];
"FatFs" -> "App/util" [color="#94a3b8", penwidth=0.7, label="×1"];
"FatFs" -> "BSP(公共)" [color="#94a3b8", penwidth=0.7, label="×1"];
"FatFs" -> "FreeRTOS" [color="#94a3b8", penwidth=0.7, label="×1"];
"FatFs" -> "外部/系统头文件" [color="#94a3b8", penwidth=0.7, label="×2"];
"FreeRTOS" -> "CMSIS" [color="#94a3b8", penwidth=0.7, label="×1"];
"FreeRTOS" -> "Src/Inc (CubeMX)" [color="#94a3b8", penwidth=0.7, label="×1"];
"FreeRTOS" -> "外部/系统头文件" [color="#94a3b8", penwidth=0.7, label="×14"];
"HAL" -> "CMSIS" [color="#94a3b8", penwidth=0.7, label="×16"];
"HAL" -> "Src/Inc (CubeMX)" [color="#94a3b8", penwidth=0.7, label="×1"];
"HAL" -> "外部/系统头文件" [color="#94a3b8", penwidth=0.7, label="×1"];
"LVGL" -> "FatFs" [color="#94a3b8", penwidth=0.7, label="×1"];
"LVGL" -> "FreeRTOS" [color="#94a3b8", penwidth=0.7, label="×6"];
"LVGL" -> "SDL2" [color="#94a3b8", penwidth=0.7, label="×1"];
"LVGL" -> "其他(第三方)" [color="#94a3b8", penwidth=0.7, label="×1"];
"LVGL" -> "外部/系统头文件" [color="#94a3b8", penwidth=0.7, label="×204"];
"SDL2" -> "外部/系统头文件" [color="#94a3b8", penwidth=0.7, label="×36"];
"Src/Inc (CubeMX)" -> "App" [color="#2563eb", penwidth=1.2, label="×3"];
"Src/Inc (CubeMX)" -> "App/task" [color="#2563eb", penwidth=1.2, label="×6"];
"Src/Inc (CubeMX)" -> "App/util" [color="#2563eb", penwidth=1.2, label="×3"];
"Src/Inc (CubeMX)" -> "BSP(公共)" [color="#2563eb", penwidth=1.2, label="×2"];
"Src/Inc (CubeMX)" -> "BSP/CH395F" [color="#2563eb", penwidth=1.2, label="×2"];
"Src/Inc (CubeMX)" -> "BSP/GD5F2GQ5UE" [color="#2563eb", penwidth=1.2, label="×1"];
"Src/Inc (CubeMX)" -> "BSP/NET" [color="#2563eb", penwidth=1.2, label="×3"];
"Src/Inc (CubeMX)" -> "BSP/RS485" [color="#2563eb", penwidth=1.2, label="×1"];
"Src/Inc (CubeMX)" -> "BSP/SD2506" [color="#2563eb", penwidth=1.2, label="×1"];
"Src/Inc (CubeMX)" -> "BSP/TPAFE5160" [color="#2563eb", penwidth=1.2, label="×1"];
"Src/Inc (CubeMX)" -> "CMSIS" [color="#2563eb", penwidth=1.2, label="×1"];
"Src/Inc (CubeMX)" -> "FreeRTOS" [color="#2563eb", penwidth=1.2, label="×4"];
"Src/Inc (CubeMX)" -> "HAL" [color="#2563eb", penwidth=1.2, label="×16"];
"Src/Inc (CubeMX)" -> "lftpd" [color="#2563eb", penwidth=1.2, label="×1"];
"Src/Inc (CubeMX)" -> "test" [color="#2563eb", penwidth=1.2, label="×3"];
"Src/Inc (CubeMX)" -> "外部/系统头文件" [color="#94a3b8", penwidth=0.7, label="×4"];
"dhara" -> "外部/系统头文件" [color="#94a3b8", penwidth=0.7, label="×5"];
"lftpd" -> "App" [color="#94a3b8", penwidth=0.7, label="×1"];
"lftpd" -> "App/util" [color="#94a3b8", penwidth=0.7, label="×1"];
"lftpd" -> "BSP(公共)" [color="#94a3b8", penwidth=0.7, label="×3"];
"lftpd" -> "BSP/NET" [color="#94a3b8", penwidth=0.7, label="×3"];
"lftpd" -> "BSP/NETCFG" [color="#94a3b8", penwidth=0.7, label="×1"];
"lftpd" -> "FatFs" [color="#94a3b8", penwidth=0.7, label="×2"];
"lftpd" -> "FreeRTOS" [color="#94a3b8", penwidth=0.7, label="×2"];
"lftpd" -> "外部/系统头文件" [color="#94a3b8", penwidth=0.7, label="×9"];
"simulator" -> "App" [color="#2563eb", penwidth=1.2, label="×3"];
"simulator" -> "App/log" [color="#2563eb", penwidth=1.2, label="×2"];
"simulator" -> "BSP/NET" [color="#2563eb", penwidth=1.2, label="×1"];
"simulator" -> "BSP/NETCFG" [color="#2563eb", penwidth=1.2, label="×1"];
"simulator" -> "BSP/UI" [color="#2563eb", penwidth=1.2, label="×5"];
"simulator" -> "LVGL" [color="#2563eb", penwidth=1.2, label="×3"];
"simulator" -> "SDL2" [color="#2563eb", penwidth=1.2, label="×2"];
"simulator" -> "test" [color="#2563eb", penwidth=1.2, label="×1"];
"simulator" -> "外部/系统头文件" [color="#94a3b8", penwidth=0.7, label="×6"];
"test" -> "App" [color="#2563eb", penwidth=1.2, label="×29"];
"test" -> "App/log" [color="#2563eb", penwidth=1.2, label="×2"];
"test" -> "App/task" [color="#2563eb", penwidth=1.2, label="×1"];
"test" -> "App/util" [color="#2563eb", penwidth=1.2, label="×7"];
"test" -> "BSP(公共)" [color="#2563eb", penwidth=1.2, label="×11"];
"test" -> "BSP/CH395F" [color="#2563eb", penwidth=1.2, label="×3"];
"test" -> "BSP/GD5F2GQ5UE" [color="#2563eb", penwidth=1.2, label="×4"];
"test" -> "BSP/NET" [color="#2563eb", penwidth=1.2, label="×6"];
"test" -> "BSP/SD2506" [color="#2563eb", penwidth=1.2, label="×2"];
"test" -> "BSP/TPAFE5160" [color="#2563eb", penwidth=1.2, label="×1"];
"test" -> "FatFs" [color="#2563eb", penwidth=1.2, label="×3"];
"test" -> "FreeRTOS" [color="#2563eb", penwidth=1.2, label="×10"];
"test" -> "HAL" [color="#2563eb", penwidth=1.2, label="×1"];
"test" -> "Src/Inc (CubeMX)" [color="#2563eb", penwidth=1.2, label="×7"];
"test" -> "lftpd" [color="#2563eb", penwidth=1.2, label="×1"];
"test" -> "外部/系统头文件" [color="#94a3b8", penwidth=0.7, label="×43"];
}