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

相关新闻

【MATLAB代码,图像降噪滤波6】非局部均值搜索窗口滤波(NLM)图像降噪与质量评价,MATLAB完整代码可在订阅专栏后直接查看

【MATLAB代码,图像降噪滤波6】非局部均值搜索窗口滤波(NLM)图像降噪与质量评价,MATLAB完整代码可在订阅专栏后直接查看

如需帮助,或有导航、定位滤波相关的代码定制需求,可从个人主页左侧联系我 订阅专栏后,可以直接查看源代码,粘贴到MATLAB空白脚本中即可直接运行、得到结果 文章目录 运行结果 MATLAB源代码 程序详解 例程定位 算法原理 核心公式 调参说明 独立实现非局部均值搜索窗口滤波(…

2026/8/26 16:26:25 阅读更多 →
如何快速部署k8s-image-swapper:Helm一行命令实现ECR镜像自动镜像(新手保姆级教程)

如何快速部署k8s-image-swapper:Helm一行命令实现ECR镜像自动镜像(新手保姆级教程)

如何快速部署k8s-image-swapper:Helm一行命令实现ECR镜像自动镜像(新手保姆级教程) 【免费下载链接】k8s-image-swapper Mirror images into your own registry and swap image references automatically. 项目地址: https://gitcode.com/g…

2026/8/26 16:26:25 阅读更多 →
2026 AIoT 行业观察:主流智能平台落地能力与技术优势全解析

2026 AIoT 行业观察:主流智能平台落地能力与技术优势全解析

随着AI技术与物联网产业的深度融合,AI落地能力已成为衡量IoT平台核心竞争力的关键指标。从家庭全屋智能到商业空间智能化,从家电产品赋能到产业园区升级,AI技术的有效落地直接决定了方案的实际价值与用户体验。据中国信息通信研究院发布的物联…

2026/8/26 16:26:25 阅读更多 →

最新新闻

QT面试深度指南:从C++基础到框架原理与工程实践

QT面试深度指南:从C++基础到框架原理与工程实践

1. 从一次真实的QT面试复盘说起去年我帮团队招一个中级QT开发,面了大概十几个人,发现一个挺有意思的现象:很多候选人C基础题答得还行,一到QT的具体场景和原理深挖,就开始卡壳。比如我问“QObject的父子内存管理&#x…

2026/8/26 22:34:28 阅读更多 →
微软测试工程师面试全攻略:技术储备与实战解析

微软测试工程师面试全攻略:技术储备与实战解析

1. 面试前的技术储备与心态调整 作为从业五年的测试工程师,当我收到微软面试邀约时,既兴奋又忐忑。不同于常规面试,微软的考核体系以"全栈式技术深度系统化思维"著称。我花了三周时间进行针对性准备,核心策略是"测…

2026/8/26 22:34:28 阅读更多 →
从零搭建OpenSpec环境:Node.js项目集成Swagger UI实战指南

从零搭建OpenSpec环境:Node.js项目集成Swagger UI实战指南

1. 项目概述:从零开始搭建你的OpenSpec环境 如果你已经对OpenSpec是什么以及它能解决什么问题有了初步了解,那么恭喜你,最令人兴奋的部分来了——亲手把它搭建起来。很多朋友在接触一个新工具时,最头疼的就是“第一步”&#xff…

2026/8/26 22:34:28 阅读更多 →
数据科学面试核心:SQL窗口函数与业务指标解析

数据科学面试核心:SQL窗口函数与业务指标解析

1. 数据科学岗位面试的核心考察维度 数据科学岗位的面试通常围绕五个核心维度展开:技术能力、业务理解、沟通表达、问题解决和团队协作。作为曾在多家科技公司担任面试官的经验,我发现Lyft这类出行平台的数据科学岗位特别注重候选人对业务场景的理解能力…

2026/8/26 22:34:27 阅读更多 →
RT-Thread下AIR724UG断电重启自动联网方案

RT-Thread下AIR724UG断电重启自动联网方案

1. 为什么AIR724UG断电重启后“连不上网”不是Bug,而是设计必然RT-Thread 合宙AIR724UG AT固件这套组合,在物联网终端开发中非常典型——成本低、生态稳、文档全。但几乎所有刚上手的开发者都会在第一次做断电测试时栽个跟头:模块通电&…

2026/8/26 22:34:27 阅读更多 →
基于SKILL的模块化AI智能体架构:从单体困境到灵活编排的工程实践

基于SKILL的模块化AI智能体架构:从单体困境到灵活编排的工程实践

1. 项目概述:从“单体巨人”到“模块化军团”的智能体进化最近和几个圈内朋友聊天,发现一个挺有意思的现象:大家手里的AI智能体项目,好像都走到了一个相似的瓶颈期。一开始,我们可能用LangChain、AutoGPT或者一些大模型…

2026/8/26 22:33:27 阅读更多 →

日新闻

Python random 模块常用函数详解:从入门到实战

Python random 模块常用函数详解:从入门到实战

目录 1. 引言2. 准备工作3. 基础随机函数4. 序列相关函数5. 随机种子与复现6. 实战案例7. 注意事项8. 常见问题与排查9. 总结 1. 引言 摘要: 本文系统介绍 Python 标准库 random 模块中最常用的随机数生成函数。内容涵盖基础随机函数(random()、unifor…

2026/8/26 0:00:40 阅读更多 →
《Microsoft Sql server 2008 Internals》读书笔记--第三章Databases and Database Files(2)

《Microsoft Sql server 2008 Internals》读书笔记--第三章Databases and Database Files(2)

《Microsoft Sql server 2008 Internals》索引目录: 《Microsoft Sql server 2008 Internals》读书笔记--目录索引 在上篇文章中,主要介绍了创建数据库的基本语法和FileGroup的初步知识。需要注意的是: 关于FileGroup 如果你的系统是用Raid设备直接存…

2026/8/26 1:18:18 阅读更多 →
政务AI智能体怎么建?三种模式、三步路径与四个误区

政务AI智能体怎么建?三种模式、三步路径与四个误区

政务AI智能体已经从概念试点阶段,转入了政务服务的常态化落地应用;在实际使用过程中,它能自主理解办事需求、辅助完成填报申报、开展材料预审,并联动多个系统协同作业,真正嵌入到政务办理的全流程当中。但在落地推进过…

2026/8/26 1:18:18 阅读更多 →

周新闻

[光学原理与应用-521]:对光的错误理解与纠偏

[光学原理与应用-521]:对光的错误理解与纠偏

首先光是一种能量的载体和形态,宏观上观察到的光是由无数个微观的光量子组成的,每个光子在产生的瞬间,其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前,在微观层面,每个光量子的运动轨迹是以波函数所展现…

2026/8/26 14:45:33 阅读更多 →
SIP通话转接原理与REFER方法实战解析

SIP通话转接原理与REFER方法实战解析

1. 通话转接不是“挂断再拨号”,而是SIP会话的动态重定向你有没有遇到过这样的场景:客服坐席A正在和客户通电话,突然需要把这通对话无缝转给专家坐席B,客户完全感知不到中间的断连——既没听到忙音,也没被要求重新拨号…

2026/8/26 17:46:43 阅读更多 →
Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

1. 为什么选择Kolla-ansible来部署单节点OpenStack?如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法,那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

2026/8/26 14:46:37 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/26 3:50:20 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/26 17:46:39 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/26 1:24:05 阅读更多 →