首页/新闻资讯/正文详情

PY32F系列MCU在OTA时App区概率性跑不起来的根因分析(1)

发布时间:2026/9/26 4:08:51 来源:云帆数科 栏目:资讯中心
PY32F系列MCU在OTA时App区概率性跑不起来的根因分析(1)
一、问题现象1. 概述在项目中使用PY32F0和PY32F4系列的两款芯片。在OTA时会有概率性App无法正常跑起来。2. 详情细节描述如下压测OTA不断进行反复升级比如100次、500次、1000次。发现总体上会有10~20%的概率App不能正常跑起来。宏观现象上来看正常App跑起来的时候LED指示灯以一定间隔如2秒闪动亮灭。但实际看到的现象分为以下几种1程序陷卡在Boot区出不来通过串口发强制退出Boot区指令可以跳转到App区工作正常2程序陷卡在Boot区出不来通过串口发强制退出Boot区指令无响应。重启或者断电/上电后可以正常调转到App区3程序陷卡在Boot区出不来通过串口发强制退出Boot区指令无响应。重启或者断电/上电后仍在Boot区此时通过串口发强制退出Boot区指令可以跳转到App区工作正常4程序完全跑飞所有指示灯都不亮既不在Boot区、也不在App区5程序陷卡在Boot区出不来断电/上电一次不行第二次能够正常跳转到App区。二、问题分析1. 初步分析和所采取措施上边的问题很多相应地可怀疑之处也有很多。这就需要逐层、逐块、逐点进行排查。抽丝剥茧、层层递进。引发问题的原因可能有如下几个1串口数据接收过程中数据出现了错误导致烧录的数据是错误的由于使用的是串口RS485通信因此一开始认为数据比较可靠没有加入检验。后来在实测中发现数据偶然也会出现错误不够稳定。因此加上了校验机制当校验不通过时返回失败。这样就从源头确保了数据的正确性避免了由于数据本身错误而导致的跳转到App后运行异常。2数据没有问题烧录出现了问题烧录过程调用的是系统HAL库接口这方面理论上是比较可靠的。即使如此排查问题的过程中也对此有所担心专门加入了相应的指示灯一旦某一帧烧录出现错误指示灯就会给出提示。但实际测试下来指示灯从未出现过问题基本排除了Flash烧录方面的错误。3数据和烧录都没有问题读写EEPROM出现了问题这一块一开始并没有怀疑认为是可靠的。但实测中发现即使接收数据都正确烧录过程也无误最后设置标志位再读取是否写入成功结果发现读取的数据与写入的不一致从而根本就没有执行跳转函数。经过排查其实是EEPROM读取的应用程序写错了在函数中的局部变量没有清零下边又用到了该变量的或因此就出现了问题。volatile uint32_t ret; for (i 0; i len; i) { e2prom_buf_read(data, addr i, 1); ret | ((uint32_t)data (8 * (len - 1 - i))); }对ret进行初始化将其赋值为0问题解决。后续这一块没有再出现问题。4整个过程都没有问题跳转出现了问题将以上几个问题解决后原因就剩这一块了。但是这里又分为几个怀疑点1烧录后跳转到App出了问题2不经过烧录过程直接跳转到App就出问题3Boot或App自身存在问题。以上几个怀疑点优先排除2因为从来没有发生、发现过启动后直接跳转就跑飞的情况。其次排除3因为不进行OTA的话Boot和App配合是能够正常工作的。那么问题大概率出在了“1烧录后跳转到App出了问题”上。到底问题出在了哪里又该如何进一步排查呢请看下回。

相关推荐

Python agogosml-cli 包详解与实战案例
Python agogosml-cli 包详解与实战案例

1. 引言agogosml-cli 是一个面向机器学习流水线开发的 Python 命令行工具包,它围绕 agogosml 框架提供了一套简洁的脚手架能力,帮助开发者快速创建、配置、运行和调试机器学习实验。本文将从功能、安装、语法、参数、实际案例以及常见错误与注意事项六个… · 2026/9/26 4:08:45

Python agones-python-sdk 包详解与实战案例
Python agones-python-sdk 包详解与实战案例

1. 引言Agones 是 Google 与 Ubisoft 联合开源的一套基于 Kubernetes 的游戏服务器托管平台,专门用于大规模、多人在线游戏的专用服务器(Dedicated Game Server)编排与管理。而 agones-python-sdk 是 Agones 官方提供的 Python 客户端 SDK&am… · 2026/9/26 4:08:45

Python 包 agora-cli 完全指南与实战案例
Python 包 agora-cli 完全指南与实战案例

1. 引言agora-cli 是一个基于 Python 开发的命令行工具包,用于简化 Agora 平台相关资源的创建、管理和自动化操作。它把常见的平台交互封装成简洁的命令,帮助开发者在终端中快速完成项目初始化、资源部署、日志查看和配置管理等任务。本文将从功能、安装… · 2026/9/26 4:08:45

CLCD中国土地覆盖数据集实战:从下载、预处理到转移矩阵与精度验证
CLCD中国土地覆盖数据集实战:从下载、预处理到转移矩阵与精度验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 4:47:23

智谱GLM系列模型选型指南:glm-4到glm-5核心差异与生产避坑
智谱GLM系列模型选型指南:glm-4到glm-5核心差异与生产避坑

1. 这几个 GLM 版本到底在比什么?先说清楚“版本”不是简单数字升级最近在技术群、开发论坛和模型选型讨论里,总有人问:“glm-5 和 glm-4.7-flash 到底差在哪?我该用哪个?”——这问题看似只问版本号,背后其… · 2026/9/26 4:47:23

逆向工程花指令实战:jump_by_jump_revenge完整分析
逆向工程花指令实战:jump_by_jump_revenge完整分析

NSSCTF上的逆向题jump_by_jump_revenge,光看题名就让人心里有数:出题人铁了心要用连串的“跳”把正常代码搅成一锅粥,再补一个revenge后缀,明摆着告诉你这是上一版的加固改版。这类题在逆向训练里是非常经典的混淆练习&#xff0c… · 2026/9/26 4:47:23

数据库系统Project2.zip全攻略:从解压到答辩的工程化处理
数据库系统Project2.zip全攻略:从解压到答辩的工程化处理

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 4:47:23

Windows系统时间防篡改:API Hook与组策略禁止修改方案
Windows系统时间防篡改:API Hook与组策略禁止修改方案

简介:一份面向开发者的系统时间保护组件,用于防止系统时间被恶意篡改,保障依赖时间戳的软件逻辑(如授权验证、日志记录、定时任务)稳定运行。资源包含完整工程与可调用库,涵盖时间检查模块、权限控制机制、… · 2026/9/26 4:47:23

Qwen-Image-Lightning在Mac M系列Metal部署全指南
Qwen-Image-Lightning在Mac M系列Metal部署全指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 4:47:17

数据库课后习题答案别硬背:当测试用例集刷,效率翻倍
数据库课后习题答案别硬背:当测试用例集刷,效率翻倍

简介:万常选版《数据库原理与设计》课后习题答案资源,覆盖第2至6章及第9章,适合正在学习关系模型、数据库建模、关系数据理论与模式求精的本科生、自学者作为复习与自测材料。压缩包共7个文件,含3个doc参考答案、2个sql示例脚本、… · 2026/9/26 0:00:21

OpenClaw 替代品?Hermes Agent 踩坑实录:macOS 飞书接入 TaoToken 配置
OpenClaw 替代品?Hermes Agent 踩坑实录:macOS 飞书接入 TaoToken 配置

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 0:00:40

向下兼容与向上兼容:接口设计中的兼容性策略与工程实践
向下兼容与向上兼容:接口设计中的兼容性策略与工程实践

一次版本升级事故,是很多团队绕不过去的坎。线上环境里,服务端明明已经上线了新版接口,老的移动端还在照着旧文档传参数。请求一到网关,校验直接拒绝,用户操作失败,客服群炸了锅,开发群里开始互… · 2026/9/26 0:00:46

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码