核心目标:建立以 SP、栈边界和编译产物交叉验证栈使用量与调用现场的证据方法,并为 STM32F407xx 规划可核对但尚未上板的最小采样与调试路径。 新核心概念:栈边界与动态使用量的证据边界;调用现场重建的证据边界。
核心目标:规划一节故障分析课:用异常入口保存的状态寄存器、堆栈帧和故障指令地址建立可证伪的故障证据链,并在 STM32F407xx 上形成待目标工程验证的最小 HardFault 现场采集路径。新核心概念:异常入口的故障现场快照与有效性边界;从故障状态到可证伪根因假设的证据链。
核心目标:建立断点与观察点作为可审计触发条件的心智模型:区分指令地址触发和数据访问触发,评估它们对执行时序的扰动,并为 STM32F407xx 制定来源可核对的调试验证方案。新核心概念:断点的指令地址触发与停止边界;观察点的数据访问触发与资源边界。
核心目标:建立寄存器视图作为有时序、可证伪的观测证据这一心智模型,并据此为 STM32F407xx 的时钟、定时器、DMA 与外设状态设计可重复的调试观察流程。新核心概念:寄存器视图的取样语义与证据边界。
建立采集批次交给传输 DMA 时的端到端有界所有权与背压边界,并用 C11 Host Fake 验证正常交接、超期、停源和恢复,以 STM32F407xx 的 TIM2-ADC1-DMA2 到 USART2-DMA1 参考链核对时钟、CubeMX、HAL、LL、寄存器与迁移边界。
建立 ADC-定时器-DMA 分段缓冲流水线,以 C11 Host Fake 验证速率预算、半区所有权和错误路径,并以 STM32F407xx 的 TIM2 到 ADC1、DMA2 Stream0/Channel0 参考实现核对时钟、CubeMX、HAL、LL、寄存器和迁移边界。
建立高级控制定时器的互补 PWM 安全输出链,用 C11 Host Fake 验证非重叠、故障锁存和显式恢复,并以 STM32F407xx 的 TIM1 核对时钟、CubeMX、HAL、LL、寄存器、刹车 IRQ 和硬件验证边界。
建立定时器触发路由的事件链,用 C11 Host Fake 验证源事件、路由、接收端选择与错误边界,并以 STM32F407xx 的 TIM2 更新事件到 ADC1 外部触发路径核对时钟、CubeMX、HAL、LL、寄存器和 IRQ 证据。
建立 HAL、LL 与寄存器交叉映射的追踪方法:先以 C11 Host Fake 验证前置条件、状态转换和 IRQ 消费,再以 STM32F407xx 的 ADC1 到 DMA2 Stream0 路径核对时钟门控、初始化字段、硬件标志、回调和错误证据。
建立时钟树这一受约束频率分配网络的心智模型:用 Host Fake 审计源频率、PLL、AHB/APB 预分频和频率上限,再以 STM32F407xx 的 HSI 参考参数落实 CubeMX、HAL、LL、关键寄存器、ADC/DMA 与定时器时钟链。
以双轨方式建立 DMA 传输契约:Host Fake 验证请求、计数、循环缓冲区和错误路径;STM32F407xx 参考实现把 ADC1 请求落实到 DMA2 Stream0/Channel0,给出 168/84/21 MHz 时钟链、CubeMX 配置、HAL 初始化与回调、LL/寄存器对照和上板验证边界。
用平台无关的 Host Fake 建立 ADC 单次转换闭环:输入在采样保持边界冻结,按参考范围和分辨率量化为有界数字码,经完成状态交付给调用方;通过事件日志、断言和故障注入验证逻辑,同时明确真实 STM32 电气、寄存器和 HAL 行为仍需按目标系列第一方资料核对。
建立平台无关的 I2C 共享双线事务模型:主机取得总线、发送地址和读写方向、处理 ACK/NACK、完成写入或读取并以 STOP 释放总线;通过 Host Fake 的开漏线路模型、事件日志、断言和故障注入验证调用流,不把逻辑验证当作 STM32 硬件证据。
建立可迁移的 SPI 同步事务模型:解释时钟驱动的全双工字节交换与片选定义的事务边界和设备选择,并用 Host Fake 验证发送、接收、片选和完成状态的完整流动;不把主机逻辑当作 STM32 硬件证据。
建立可迁移的 UART 异步串行收发模型:学习者能解释帧边界与接收状态机,区分外设事件、软件缓冲和应用消费,并用 Host Fake 验证正常流、分段到达、缓冲溢出、帧错误恢复和 TX 捕获;不把主机逻辑当作 STM32 硬件证据。
建立可迁移的定时器时间基准模型:学习者能从时钟、计数器和周期边界推导更新事件,并区分轮询、定时器中断与输出观察路径;能用 Host Fake 验证事件间隔和计数边界,但不把主机结果当作 STM32 硬件时序证据。
把多个中断请求理解为由可比较的逻辑优先级规则决定服务顺序,并用静态 Host Fake 区分 pending、active、抢占、屏蔽和返回后的继续执行;主机模型不代表真实 Cortex-M 或 STM32 的编码、时序和上板结果。
把 EXTI 理解为外部输入经线路映射、触发条件和屏蔽后形成可观察请求,并由 pending 持有到服务和显式清除;Host Fake 只验证逻辑状态转换,不代表真实 STM32 寄存器、中断入口或上板结果。
把 GPIO 理解为配置状态决定数据通路、数据访问读取输入采样或更新输出锁存的外设边界,并用静态 Host Fake 区分输入、推挽输出、开漏释放和非法配置;结果不代表真实 STM32 寄存器、电气测量或上板验证。
把代码与数据段、启动初始化和运行时预留统一到有限存储器布局中,并用静态 Host Fake 验证区域归属、边界及重叠;其结果仅是逻辑证据,不代表真实 ELF、目标构建或硬件验证。
用固定调用深度和静态资源池 Host Fake 区分自动对象的生命周期、调用栈的常见实现模型,以及动态资源的显式释放责任。
把同一次目标链接产生的 ELF 与 map 作为互补证据,追溯输出段、符号、地址和大小,同时区分构建期布局、装载事实与运行期事实。
用最小 MEMORY/SECTIONS 抽象解释输入段到输出段再到命名内存区域的布局,并用 Host Fake 验证链接脚本边界符号如何被启动初始化消费。
用 Host Fake 观察复位入口经过启动代码、栈使用条件和 C 运行时初始化后再进入 main 的顺序,并区分主机逻辑验证与真实 Cortex-M 行为边界。
用一个不冒充硬件的 Host Fake 验证异常或中断编号如何查找向量表项并选择抽象处理程序,同时区分该模型与主机普通函数调用。
用一个不冒充硬件的 Host Fake 观察复位后从规定入口经过复位处理程序到应用入口的抽象顺序,并区分它与主机直接调用 main 的边界。
在 Windows 主机上用 GCC 静态分析器发现并回溯一条可能的空指针解引用路径,把诊断作为待验证的风险证据。
用最小 CMake 项目理解构建描述如何驱动工具调用,并通过受控源码修改观察依赖关系决定的必要重建范围。
用主机 GCC 隔离只编译步骤,根据目标文件、退出状态与诊断区分编译成功和输入被拒绝。
用最小两源文件 C11 主机程序区分外部链接与内部链接,并判断另一翻译单元能否引用同一对象。
用最小 C11 主机程序区分自动存储期和静态存储期,并据此判断对象及其地址何时仍可安全使用。
用主机 C11 示例区分 const 限定访问路径与 volatile 保留易变对象访问,并明确二者的能力边界。
用主机 C11 示例理解对象地址的保存与传递,并通过有效指针让函数修改调用者持有的同一 uint32_t 对象。
依据需求的最小值、最大值和是否需要负数,在主机逻辑验证中选择 int32_t 或 uint32_t,并识别超出范围的设计风险。
在 Windows 主机上阅读和修改单文件 C 程序,理解语句按顺序执行,并通过退出状态观察确定的计算结果。