用平台无关的 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 程序,理解语句按顺序执行,并通过退出状态观察确定的计算结果。
建立主机与嵌入式运行环境不同、源文件必须经过构建和运行才能形成可观察验证闭环的两个基础心智模型。