Files
STM32F4-Base/App/util/README.md
T
wandering1 39bd06adea 为自建代码目录补齐 README,建立目录级导航体系
- 新增 26 份目录 README:App/(+log,task,util,protocol)、Drivers/BSP/(+8子系统)、
  Src/、Inc/、scripts/、tools/(+6子工具)、test/、MDK-ARM/、simulator/(+sim,tests)
- 每份含:定位、文件清单表、关键约束/陷阱、指向 docs 权威文档
- 第三方库与生成代码目录排除(CMSIS/HAL/Middlewares/Lib/SDL2)
- docs/文档规范.md 新增 §1.1b 代码目录 README 约定;根 README 目录结构加入说明
2026-09-26 12:25:36 +08:00

1.1 KiB

App/util/ — 通用工具函数

平台无关的纯工具模块(无 FreeRTOS 依赖、无硬件依赖),可在 MCU 与 PC 模拟器中共用。

文件一览

文件 作用
crc.c/h 校验算法(CRC16/CRC32 等,供 RS-485 协议与数据校验使用)
ringbuf.c/h 环形缓冲(SPSC 无锁环形队列,用于串口/数据流收发)
sys_clock.c/h 墙钟时间管理:RTC 基准、tick 回绕防护、每 30 天惰性再基准化

设计要点

sys_clock

  • 以 SD2506 RTC 为基准,HAL tick 计数补齐亚秒精度
  • 49.7 天 tick 回绕防护:每 30 天惰性再基准化(sys_clock_get 内部触发)
  • RTC 故障时降级到默认时间基准并返回 -1,触发"时钟芯片异常"自检上报
  • 设计详见 docs/子系统设计/系统墙钟时间维护说明.md

ringbuf

  • 单生产者单消费者(SPSC)无锁设计,配合 DMA/中断收发
  • 容量为 2 的幂,用掩码取模(避免除法开销)

相关文档

  • docs/子系统设计/系统墙钟时间维护说明.md