ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

大型量产固件的工程实践(十):嵌入式状态机设计——多阶段初始化与断点续传

大型量产固件的工程实践(十):嵌入式状态机设计——多阶段初始化与断点续传 大型量产固件的工程实践(十):嵌入式状态机设计——多阶段初始化与断点续传本文是《大型量产固件的工程实践》专栏第 10 篇。上一篇:第 9 篇实战《GPIO 模拟 SPI 实现源码与使用范例》 | 下一篇:第 11 篇《健壮的网络状态机》一、为什么需要状态机嵌入式里很多外设的初始化是多阶段、可失败、异步的。拿一个典型外设举例,它的初始化要经过好几步:配置总线 → 创建驱动对象 → 上电 + 寄存器初始化 → 读 ID 验证 → 就绪如果把它写成一个"一鼓作气"的函数,会遇到三个问题:阻塞:整个初始化过程可能要几十上百毫秒,一个函数跑完,主循环被卡死;失败难处理:任何一步失败,都要决定"重试哪一步"、“退到哪”;无法超时:某一步卡住(如等芯片响应),整个流程就僵死。状态机就是用来解决这些问题的。本文讲一个健壮的多阶段初始化状态机的设计。二、扁平状态机 vs 嵌套状态机2.1 先看一个"坏味道":嵌套状态机有些实现会把"主状态
返回列表