1634088bd7
屏板链路设计说明.md -> 屏板链路设计.md(去档名「说明」,与 ADC 节拍 / 运行与自检记录两篇口径一致);控制台单写者日志设计说明.md 同改。 两档并存期间旧名引用 0 残留。 - 屏板链路 §3.2 台架日志口(RS232#1 / CN1 端子 / COM3)移入控制台档 §3.4:日志口的接线属 UART5 控制台通道,不属屏板链路;屏板档只留 「别去 CN1 找 USART1 端子」这句接线防错提示。 - 屏板链路 §7.1 由「根因账本 + 修复前后对比」改写为现状描述:延迟 应答机制表 + 耗时分解表 + 两个计数口径 + 已知边界,40 行压到 24 行。 顺带修正 §8 的错引:原指 `网络自愈架构设计.md` §8(实为「延后项」, 不含 uiTask 内容)改为 §4.1 `net_reconcile_tick`。 - §9.1 增补长稳行(串口日志 2026-11-13 18:31 -> 2026-11-15 21:43, 单次上电 51.2 h:rx=658262 ok=658262、crc/len/fmt/err 全 0、 drop=7 仅启动期、kerr/abor/bad=0、全程 off=0);§9.2 销项三条 (仪器项、2 h 长稳、len=7 观察项),新增「按键通路」一条——51.2 h 日志 keys=0 kq=0 dfok=0 dfold=0,延迟应答在真机上从未执行过。 - 删除 sb_frame_b_build_logo() 及 SB_LOGO_MAGIC_* / SB_SCREEN_W/H 与对应单测(TC-SBPROTO-022/023 全组、024c/024d),组帧入口只剩 sb_frame_b_build_image()。sb_proto 单测 59 -> 45 条,45/45 通过。 - cfg_file.c 出厂模板三条中文字面量改 \uXXXX 转义:消除全量重编时的 4 条 #870-D invalid multibyte character sequence,运行期字节不变, 源码回到纯 ASCII(符合「字符串字面量必须纯 ASCII」)。 验证:keil-build 0 Error 0 Warning;sb_proto 45/45、sb_link 164/164; pre-commit 48 钩子全 Passed;check_doc_links --sections-strict 通过。
Src/ — CubeMX 生成的源文件
⚠️ 本目录文件由 STM32CubeMX 生成(
.ioc重生成会覆盖),不是自研代码。 但允许在USER CODE BEGIN/END标记区之间写自定义代码。
文件一览
| 文件 | 生成 | 作用 |
|---|---|---|
main.c |
CubeMX | 程序入口:HAL_Init → SystemClock_Config → 外设初始化 → app_main_init → osKernelStart |
freertos.c |
CubeMX | FreeRTOS 任务创建(MX_FREERTOS_Init)+ 任务栈/优先级定义 |
gpio.c / dma.c / spi.c / i2c.c / usart.c |
CubeMX | 各外设 MX_xxx_Init |
stm32f4xx_hal_msp.c |
CubeMX | HAL 外设底层初始化(时钟使能、NVIC、引脚复用) |
stm32f4xx_hal_timebase_tim.c |
自研覆盖 | HAL 时基改用 TIM7(非 SysTick),tick = 1ms |
stm32f4xx_it.c |
CubeMX | 中断服务函数(ISR) |
system_stm32f4xx.c |
CMSIS | 系统时钟初始化(SystemInit) |
⚠️ 修改约定(铁律)
- 自定义代码只写
USER CODE BEGIN xxx/USER CODE END xxx标记区之间—— 标记区外的内容在 CubeMX 重新生成时会被无条件覆盖丢失 - 本目录被 pre-commit 的 C 代码规范检查排除(因是生成代码,风格不受控)
Drivers/BSP/才是纯手工代码区;应用逻辑放App/
关键点
- HAL 时基 = TIM7,不是 SysTick;FreeRTOS 用 SysTick 之外的方式,tick = 1ms
- NVIC 4 位优先级分组;外设中断优先级 ≥ 5(0~4 预留给 FreeRTOS)
- 时钟:HSE 8MHz → PLL M=4/N=168/P=2 → 168MHz
相关文档
- 架构全景:
docs/架构设计/项目架构总览.md - 启动顺序:
docs/架构设计/项目启动顺序管理.md - 任务表(唯一事实源 =
freertos.c):根README.md