当前位置: 首页 > article >正文

STM32首次烧录选择erase sectors导致程序跑飞

一、故障现象小批量打样回来的板子烧录程序后一切正常蜂鸣器响0.5sLED闪烁等待握手但是断电重启后蜂鸣器长鸣LED不闪烁无法正常运行。二、分析解决过程首先我看了一下电源电压、电流都是对的这说明硬件上没有短路等大毛病。那么我感觉这是程序跑飞了可能是程序启动有问题是不是从SRAM起了而不是从flash起的我第一怀疑板子焊接有问题目检了一遍特别是boot0引脚那边重点检查了一下没有任何毛病。谨慎起见我还是将整个MCU重新加焊了一遍。可惜的是故障依旧看来不是焊接的问题。其实从故障现象来看基本可以肯定是跟flash有关了。想一想断电重启后到程序跑到main函数中间芯片经过几个过程1、上电电源稳定后硬件自动从flash起始地址0x80000000读取栈顶地址MSP然后从0x80000004读取复位中断函数地址Reset_Handler再设置堆栈指针MSP最后跳转Reset_Handler。这个是硬件自动执行的死规定改不了的。2、进入复位函数Reset_Handler干4件事初始化数据段、清零BBS段、调用SystemInit()、调用_main入口。在这个过程中如果初始化没有完成或者完成错误了那也有可能程序跑飞。这里有一定可能性的是时钟如果用外部晶振的话如果晶振坏掉了、没有焊接好那么这里可能会有问题。但是我这个现象不是我是烧完程序后是OK的断电重启后不行了。看来很可能还是flash读前面两个地址的时候挂了。我检查了一下KEIL中程序地址都没有什么问题。但是在检查算法ram的时候我注意到擦除选项选的是erase sectors这是之前为了烧录快一点而设置的。我们都知道擦sectors只擦除用到的扇区会不会是这里有问题。于是我将擦除选项改成Erase Full Chip烧录后再断电重启这下子一切都正常了。三、原因分析首先Erase Full Chip和Erase Sectors的区别特性Erase Full ChipErase Sectors擦除范围整个flash除OTP、选项字节用到的扇区速度慢快数据全部清除保留未擦除扇区的数据寿命消耗1次flash擦写次数消耗对应扇区擦鞋次数这里要先讲一下flash的特性只能从非FF写0不能从非FF写1。这是因为STM32用的是浮栅型Flash可以理解成每个bit有一个电子陷阱电子在陷阱里0电子被拿走1。而擦除动作是加高压将所有浮栅上的电子全部抽走这样所有的bit都变成了1。写入动作就是加低压把电子注入某些bit这样就把1变成了0。擦除是批量抽电子写入是逐个塞电子。flash不支持批量塞电子所以擦除后的部分变成了1。还有一个事实是虽然理论上flash出厂时应该是全0xFF但是工程应用中拿到手的焊接成品的PCBA上这颗MCU中的flash很有可能已经经过测试甚至不能保证芯片是全新的。这种时候拿到手的芯片中的数据是脏的flash中可能是随机数据。所以选择erase sectors后只有用到的部分sectors变成了FF但是其他部分很可能还有00存在而写入只能将1变成0而不能将0变成1。这就导致其他sectors中很可能还是乱码。那么还有一个问题为什么我用到的sectors已经擦除了还会跑飞呢这是因为1、中断向量表附近有脏数据例如程序占sector0但中断向量表、堆栈指针在flash开头这部分没有被擦除。如果这部分不干净MCU一读就错直接HardFault。2、堆栈区域是脏数据程序运行需要栈空间如果栈所在的地址有脏数据那么一进函数就死机。3、编译器填充区域残留乱码有些位置编译器会留空、填0xFF实际却是乱码这会导致程序判断逻辑出错。4、选项字节/保护位干扰有部分芯片会默认读保护扇区擦除不会碰这些位置。这些原因导致的现象一般有1、下载成功但芯片不运行2、一运行就硬件错误中断Hardfault3、偶尔能跑偶尔死机不稳定4、仿真时PC指针跳到很奇怪的地方。四、工程建议1、拿到手的板子第一次烧录选择Erase Full Chip2、开发调试优先用Erase Full Chip3、只有明确要保留Flash里的数据例如配置、序列号时采用扇区擦除。

相关文章:

STM32首次烧录选择erase sectors导致程序跑飞

一、故障现象小批量打样回来的板子,烧录程序后一切正常,蜂鸣器响0.5s,LED闪烁等待握手;但是断电重启后蜂鸣器长鸣,LED不闪烁,无法正常运行。二、分析解决过程首先我看了一下电源,电压、电流都是…...

大模型岗位大揭秘:面试官从不说的5个秘密!

本文作者通过自身经历,详细解析了五大与大模型相关的岗位区别,包括大模型算法工程师、大模型应用工程师、云厂商解决方案架构师、云厂商大模型解决方案架构师以及云厂商FDE大模型前沿部署工程师。文章从工作重心(模型vs客户)、面试…...

2026 年真正必备的 10 个 Claude 插件(以及它们的作用)

如何把 Claude 从聊天机器人,变成能写代码、联网、访问数据、自动化全流程的超级 AIClaude 刚刚获得了超能力。 而大多数人还以为它只是个聊天机器人。 2026 年 2 月 24 日,Anthropic 为企业用户推出了私有插件市场。而在此两周前,社区已经发…...

基于Matlab的多自由度轴承静刚度计算之旅

基于Matlab的多自由度轴承静刚度计算 因分析静态下刚度结果,仅考虑重力作用,未考虑离心力的作用 深沟球轴承和圆锥轴承基本参数包括滚珠数量、滚珠直径、中称直径、曲率和材料参数 程序已调通,可直接运行在机械工程领域,深入了解轴…...

森利威尔SL3073替代RT2862 4-65V超宽压3A降压芯片

在电源管理领域,寻找高效、可靠且功能丰富的DC-DC转换器是设计工程师们不懈追求的目标。当面临将36V电压转换为更低电压并保持3A持续输出电流的应用场景时,传统上可能会选择如RT2862这样的同步降压转换器。然而,随着技术的不断进步&#xff0…...

三相离网逆变器在不对称负载下的正负序控制Matlab仿真探索

三相离网逆变器在不对称负载下的正负序控制matlab仿真: 1不对称控制包括: 正序分量处理负序分量处理正序控制环负序控制环; 2正序控制换路与负序控制换路都采用dq轴上的电容电压外环电感电流内环控制; 3直流电压Vdc700V,总功率15kW&#xff…...

AGV如何实现自主避障

下面按“传感器→建模→算法→安全机制→工程实现”的顺序,把AGV自主避障讲清楚。 一、整体架构概览 AGV要“自己绕开障碍”,至少要做三件事: 1)感知:知道“我在哪”“周围有什么”; 2)规划&…...

从LVGL菜单组件反推:手搓一个轻量级C语言菜单框架(适合RTOS/单片机)

从LVGL菜单组件反推:手搓一个轻量级C语言菜单框架(适合RTOS/单片机) 在嵌入式开发中,菜单系统是人机交互的重要组成部分。虽然LVGL等GUI库提供了现成的菜单组件,但理解其底层实现原理对于开发资源受限的MCU应用至关重要…...

Cuvil + HuggingFace Pipeline端到端加速实录:BERT-base推理延迟从142ms降至31ms的6个关键编译开关

第一章:Cuvil 编译器在 Python AI 推理中的应用 面试题汇总Cuvil 是一款面向 AI 推理场景的轻量级领域专用编译器(DSL Compiler),专为优化 Python 中基于 PyTorch/TensorFlow 模型的部署而设计。它通过静态图分析、算子融合与硬件…...

短视频 SEO 优化能给企业带来什么好处_短视频 SEO 如何优化视频标题和描述

短视频 SEO 优化能给企业带来什么好处_短视频 SEO 如何优化视频标题和描述 在当今数字化时代,短视频平台已经成为了企业营销和品牌推广的重要渠道。短视频的传播范围和影响力远不止于视频内容本身,背后的搜索引擎优化(SEO)策略同…...

为什么你的C++量子模拟器总在2^10后崩溃?内存优化、张量压缩与SIMD加速三重方案揭秘

第一章:量子模拟器崩溃现象与2^10内存临界点的本质剖析当量子模拟器在经典硬件上运行含10个量子比特的电路时,常在初始化或状态演化阶段发生静默崩溃——进程异常终止、无堆栈回溯、仅返回 SIGSEGV 或 OOM Killer 日志。这一现象并非随机故障&#xff0c…...

基于胸部正位X光片的两阶段对比学习椎体压缩性骨折筛查框架文献速递-多模态医学影像最新进展

2026.4.2本研究提出一种基于胸部正位X光片的双阶段对比学习框架TADC-Net,通过模仿放射科医生的诊断流程,解决了器官遮挡和类间相似性等挑战,实现了椎体压缩性骨折的早期精准筛查,显著提升了诊断性能和临床辅助准确性。Title题目01…...

OpenClaw 的模型架构中,是否使用了非自回归生成(NAR)模块?

关于OpenClaw模型架构中是否使用了非自回归生成模块,这其实是一个挺有意思的问题。在讨论具体细节之前,或许可以先聊聊非自回归生成本身在技术演进中的位置。 非自回归生成,也就是NAR,和常见的自回归生成方式不太一样。自回归生成…...

Python AOT编译成本如何从$280K/年压至$49K/年?2026前最后窗口期的6个不可逆决策点

第一章:Python AOT编译成本断崖式下降的战略本质Python 长期以来被诟病于运行时开销高、启动慢、内存占用大,其核心瓶颈在于 CPython 解释器的字节码解释执行机制。而近年来,以 Nuitka、Cython(搭配 --aot 模式)、以及…...

0基础入门网络安全必练这两个靶场!挖漏洞必先从刷靶场开始

0基础入门网络安全必练这两个靶场!挖漏洞必先从刷靶场开始 第一「皮卡丘」 它是国内几个安全大佬专门给小白开发的中文靶场,界面非常简洁而且操作友好,真的也算是我刚入门时候的一个实战老师 和其他靶场不同,它既可以动手练习还…...

装机:WIN10家庭版升级专业版

https://ubuntu.com/download/desktop/thank-you?version24.04.4&architectureamd64&ltstrue 装机:WIN10家庭版升级专业版Win10、Win11不重装系统情况下怎么使用一条命令实现家庭版升级为专业版或企业版?https://mp.weixin.qq.com/s/bIcRu6A_cl…...

解锁B站评论区成分检测器核心价值:从入门到精通的实战指南

解锁B站评论区成分检测器核心价值:从入门到精通的实战指南 【免费下载链接】bilibili-comment-checker B站评论区自动标注成分,支持动态和关注识别以及手动输入 UID 识别 项目地址: https://gitcode.com/gh_mirrors/bil/bilibili-comment-checker …...

独立站建站成本全解析

独立站建站费用构成独立站的费用主要分为域名注册、主机托管、网站建设、支付接口、营销推广和日常维护等几个部分。每个部分的费用因需求不同而有较大差异。域名注册费用通常在每年10至100美元之间,取决于域名后缀和注册商。常见的.com域名价格在10至20美元/年&…...

OpenClaw+Qwen3-14b_int4_awq:跨平台文件同步助手

OpenClawQwen3-14b_int4_awq:跨平台文件同步助手 1. 为什么需要智能文件同步 上周我差点犯了个职场大错——把包含客户联系方式的Excel表格同步到了公共网盘。这件事让我意识到:传统的文件同步工具就像个"搬运工",它分不清哪些文…...

第五章作业

233817310313 文章目录图1&#xff1a;单位数码管显示7图2&#xff1a;单位数码管轮播0-9图3&#xff1a;6位数码管显示9图1&#xff1a;单位数码管显示7 #include <reg52.h>#define uchar unsigned char #define uint unsigned int// 定义锁存器控制引脚 sbit LE P2^7;…...

OpenClaw社交媒体管理:Gemma-3-12b-it自动回复评论与生成周报

OpenClaw社交媒体管理&#xff1a;Gemma-3-12b-it自动回复评论与生成周报 1. 为什么选择OpenClaw管理社交媒体 去年运营个人技术账号时&#xff0c;我每天要花1小时手动回复评论和整理周报。直到发现OpenClaw这个开源自动化框架&#xff0c;配合Gemma-3-12b-it模型&#xff0…...

Linux who命令实现:文件读写与系统编程实践

1. 从零实现Linux who命令&#xff1a;深入理解文件读写与系统编程作为一个常年与Linux打交道的开发者&#xff0c;我始终认为理解系统命令的实现原理是提升编程能力的最佳途径。今天我们就来解剖who这个看似简单却内涵丰富的命令&#xff0c;通过亲手实现它来掌握Linux文件操作…...

2026年山东省首版次高端软件申报已经开始,中承信安助力企业快速申报

对于山东省内软件和信息技术领域的企业而言&#xff0c;首版次高端软件申报是获取省级政策资金扶持、强化产品核心竞争力、拓宽市场发展空间的核心抓手。2026 年山东省首版次高端软件申报工作已全面启动&#xff0c;然而不少企业却面临政策细则把握不准、申报门槛判断不清、申报…...

依赖p4est库的程序windows运行方法----支持vs2022调试

一.前置环境 1.vs2022且包含CLangCL工具集&#xff0c;没有安的在vs的intaller里边修改已安装的vs2022&#xff0c;在右侧目录里勾选上&#xff08;使用c进行桌面开发/适用于windows的CClang工具&#xff09;。 2.安装MS-MPI,安在默认位置即可&#xff08;https://www.micros…...

群晖 /dev/md0 根分区爆满 100% 排查清理全流程

解决群辉系统爆满安装不了套件 一、群辉安装套件报错 报错&#xff1a;系统分区的可用空间不足&#xff0c;请联络Synology支持小组来寻求帮助。这是因为系统分区&#xff08;System Partition&#xff09;空间不足&#xff0c;导致无法解压和安装该套件。与磁盘硬盘大小没有关…...

2026年,行业内热门GEO搜索优化公司口碑究竟如何?

你是否在为提升品牌在搜索引擎上的排名而烦恼&#xff1f;是否因高昂的优化成本和复杂的操作望而却步&#xff1f;又或者担心优化效果不佳&#xff0c;无法实现询盘转化&#xff1f;今天&#xff0c;我们就来深入探讨一下2026年热门的GEO优化软件&#xff0c;看看哪款能真正解决…...

OpenClaw多模型切换实战:千问3.5-35B-A3B-FP8与文本模型的协作流程

OpenClaw多模型切换实战&#xff1a;千问3.5-35B-A3B-FP8与文本模型的协作流程 1. 为什么需要多模型协作&#xff1f; 去年我在尝试用AI自动化处理工作流时&#xff0c;发现一个尴尬的问题&#xff1a;当我用同一个模型处理图片识别和文本写作时&#xff0c;要么图片理解能力…...

Go Channel 缓冲区机制分析

Go Channel 缓冲区机制分析 在Go语言的并发编程中&#xff0c;Channel是协程间通信的核心机制之一。其缓冲区机制的设计直接影响程序的性能和稳定性。理解缓冲区的运作原理&#xff0c;能够帮助开发者更高效地利用Channel&#xff0c;避免死锁或资源浪费。本文将从缓冲区的本质…...

嵌入式ONPS协议栈:轻量级TCP/IP实现与优化

1. ONPS协议栈概述ONPS是一款专为资源受限的嵌入式系统设计的开源网络协议栈&#xff0c;由国内开发者完全自主开发实现。作为一名长期从事嵌入式网络开发的工程师&#xff0c;我第一次接触ONPS时就对其轻量级设计和完整的功能实现印象深刻。与常见的LwIP等协议栈相比&#xff…...

OpenClaw隐私保护方案:Qwen3-14B本地处理敏感数据

OpenClaw隐私保护方案&#xff1a;Qwen3-14B本地处理敏感数据 1. 为什么需要本地化隐私保护方案 去年我在处理一批医疗研究数据时&#xff0c;曾因使用某云端AI服务导致文件误传至公共存储桶。虽然及时删除了数据&#xff0c;但这次经历让我意识到&#xff1a;当涉及法律文书…...