# A73 电磨硬件微秒时基与前台调度

状态：候选源码、主机模型和ARM镜像通过，FABRICATION_HOLD；没有上电测时或电机运行效果验收。

## 实际接入

新增TIM2自由运行32位计数器，名义HSI16MHz、无AHB/APB1分频、PSC15、ARR0xffffffff。初始接管要求safe boot/停止TIM1配置有效，并拒绝已开启时钟的TIM2或已启用SysTick；复位TIM2后明确关闭所有通道、IRQ/DMA/从模式，仅开启计数。TIM2不配置任何GPIO复用，不改变现有电流/母线采样接点。

SysTick_Config(16000)提供名义1ms唤醒；使用CMSIS默认最低中断优先级。SysTick ISR只增加诊断计数，不操作SPI、GPIO或电机。实际向量表槽15已从Default_Handler改为SysTick_Handler，ARM镜像按函数地址及Thumb位核验，避免配置了SysTick后直接进入默认中断死循环。

main顺序为safe boot→停止TIM1→TIM2/SysTick→SPI2初始化，再持续读取TIM2并调用SPI轮询。SPI处于活动传输或有尚未取走响应时不WFI；空闲时等SysTick唤醒。main从原先一次初始化后永久WFI改为有实际唤醒来源的前台调度。时基配置/时钟无效时请求SPI abort及GPIO/计时器关断，并停在安全等待。初始化/计数器配置有效性不是时钟精度、计数未停滞或外部电路安全证据。

同时修正A72调度接点：DONE响应尚未消费也属于需轮询状态；get成功消费该响应并返回IDLE，随后重复get不再读取旧数据。片选高间隔仍按完成时刻计，不因取响应而缩短。A72的10us活动轮询最大间隙与100us事务总窗口保持，不能宣称16MHz真实代码路径已经满足该服务预算；需要台架波形/运行周期测量，若不满足，应调整启动调度或候选预算并重测，不能以主机模型替代CPU时序证据。

目前main没有提交SPI帧，不唤醒DRV8316，不配置其寄存器，也不执行FOC。三相PWM、RUN和nSLEEP继续低，TIM1输出/计数关闭，充电关闭。TIM2启动和SysTick中断不等于电机启动。

依据ST STM32G431 DS12589 Rev6 Table7/TIM章节：TIM2是32位通用计数器，可用于时基：https://www.st.com/resource/en/datasheet/stm32g431cb.pdf 。寄存器位、CMSIS SysTick_Config及NVIC优先级使用包内厂商源码。nominal1us/1ms仅是HSI16候选计算，HSI供电/温度偏差、调用时点、WFI唤醒、ISR/前台延迟和实际SPI纳秒时序未实测。

## 本轮验证

ASan/UBSan 363个TIM2/SysTick场景通过：9个计数边界值、9个TIM2配置寄存器288个逐位污染、SysTick CTRL32位（COUNTFLAG允许）、LOAD24位、6个占用/时钟/关断状态拒绝、重复初始化、计数回绕、ISR计数回绕与空输出指针。读取拒绝不改写调用者旧值，接管拒绝不改写旧计时器/核心时钟配置。主机计数器数值由夹具推进，不能据此说实际计数器已走时。

当前源码还复跑65,632个SPI场景（增加取响应后旧值拒绝及待取响应活动性断言）、65,772个PWM场景、256个真实main启动/唤醒模型。main夹具模拟一次SysTick并推进TIM2 1000个计数，确认WFI后前台再次读取新计数、驱动仍关断。主机SysTick_Config为核心寄存器模拟，不证明硬件NVIC优先级或实际中断周期；实际向量与初始化调用由ARM镜像独立检查。

ARM GCC16.2构建通过：text9120/data4/bss2356字节；bin/elf/map、反汇编、源/头文件和报告随包提供。时基与SPI前台轮询调用均在链接main中核对；存储占用不是最坏ISR/控制栈或实际实时性合格声明。交付包独立解压复跑本轮四类模型并重建ARM，二进制SHA一致。

## 下一步与未完成项

下一步接入实际DRV8316睡眠/唤醒等待、异步配置写读回及故障采样。仍缺ADC同步采样与校准、转子角度反馈/观察器、FOC运行结合、速度/正反转、UI/充电及带载测试；运行时升级PLL或改变APB分频将使本候选时基失效，必须在关断状态更新整套时钟/PWM/SPI配置后再验证。

原产品的最高转速、负载稳定、续航、声振等要求仍没有实物证据，三款20项效果要求仍未验证。没有采购、制造放行、发送工厂资料、烧录或上电，本包不能作为效果一致或打样放行结论。当前日志为timebase_checks_A73.log、spi_checks_A73.log、pwm_and_main_checks_A73.log与arm_build_A73.log；任何继承旧版本日志仅为历史记录。
