ARM Cortex-M 原型落地:从演示代码到可运行功能
原型能跑,只说明主路径成立;交付功能还要在异常输入、重启和资源紧张时保持可预测。把两者混在一起,后期通常会在任务优先级、内存和错误处理上返工。
先补齐边界
明确输入范围、超时、重试次数和失败后的状态。ISR 只做必要的数据搬运或通知,耗时操作交给任务。消息队列满、互斥锁等待超时和内存分配失败都应有可观测的处理,不要直接忽略返回值。
用验收场景收口
验收不只跑一次正常流程。至少覆盖连续启动、外设断开重连、任务被打断、队列满和看门狗复位。对每个场景写清预期:恢复、降级、告警或停止服务。
最后把任务优先级、栈大小、队列深度和时钟配置放进版本控制。它们是产品行为的一部分,不应只存在于某位开发者的 IDE 配置里。