Files
STM32F4-Base/Src
wandering1 f5902bcc21 docs(design): 运行/自检记录与 ADC 节拍两篇改为现状设计并去掉档名"说明"
两篇规划期文档改成对当前系统的描述,档名统一去掉"设计说明"的"说明"。

运行与自检记录:
- 旧档重写为现状版(10 节:概览 / 记录布局 / 写入路径 / 读取与呈现 /
  事件分类 / 控制台日志 / 双端差异 / 内存 / 异常恢复 / 自测要点),
  删掉需求表、调研摘要、模块清单动作列、实施步骤与开放问题。
- 按代码纠正:七类记录齐备(原文只写了两类)、自检描述串换成实际
  落盘的 28 条、待机阈值以 ui_tokens.h 为准、记录页已走 ui_w_records
  共享组件、容量满只删该文件而非整卷清空。
- 待机屏移出本篇:它不属于日志,归 UI 侧;内容页架构补"待机屏
  (覆盖层)"一节,产品需求 FR-LOG-3 拆成单纯的上电/重启分类,
  待机显示归口已有的 FR-UI-3。

ADC 采样节拍:
- §4.5 从 45 行压到 24 行,只留规则 / 违反的代价 / 为什么 / 兜底与
  档案指针;九路置换实测表、A/B 对照、探针计数等取证归
  ADC_Trap_Records.md 的 TRAP-ADC-01(那里已有完整档案)。
- adc1_gap 字段去掉"2026-10-21 起、此前固件为次数"的修订记录式括号。
- app_main.c 的注释改为指向 TRAP-ADC-01 取证、§4.5 设计口径。

引用同步:两个旧档名全仓替换(含代码注释、角色档、归档 id 表),
旧名残留 0;对 ADC 篇的 § 引用逐条复核落在真实章节上。

验证:48 个提交期钩子全通过,check_doc_links --sections-strict 通过。
2026-11-15 21:30:07 +08:00
..
2026-07-19 13:09:06 +08:00

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