首页 > 其他分享 >STM32烧写失败之Contents mismatch at: 0800005CH (Flash=FFH Required=29H) !

STM32烧写失败之Contents mismatch at: 0800005CH (Flash=FFH Required=29H) !

时间:2025-01-04 18:01:05浏览次数:3  
标签:reset RESET Required 29H 复位 Flash Cortex VECTRESET SYSRESETREQ

一)问题:用ULINK2给STM32F103C8T6下载程序,下载方式设置如下:
在这里插入图片描述

出现下面两个问题:
1)下载问题界面如下:
在这里插入图片描述
这个错误的信息大概可以理解为,在0x08000063地址上读取到flash存储为FF,但实际上应该写入08H,即校验时读取到数据与实际写入的不符。
2)在DEBUG调试的时候,出现如下问题:
调试的时候,无法跳转到main()函数,无法进行调试。
在这里插入图片描述
二)尝试了解决方案如下:
1)检查电源电压和复位电路(复位引脚3.3V经过10K电阻上拉)、VCC和复位NRST的电压为3.1V.芯片供电无误。
2)打开STM32 ST-LINK Utility软件,使用ST_link连接电脑和板子,打开Target-connect,连接时,会报flash sectors read protect的警告,对芯片的flash进行全擦除。(问题如故)
3)升级软件包Keil.STM32F1xx_DFP.2.4.1为最新。(问题如故)
4)尝试更换下载算法,d:\Keil_v5\Packs\Keil\STM32F1xx_DFP\2.4.1\Flash\STM32F10x_128.FLM(问题如故)。
5)编译器优化,之前开的是Level0,基本没优化,之后我更改为level1,代码有所缩减,但是没有解决问题(问题如故)。
6)下载程序时,取消校验,这个就纯属掩耳盗铃。
7)减小下载速度,问题如故。
三)解决办法:
将Debug菜单 - Reset菜单选项(HWreset/sysresetReq/Vectreset)由“sysresetReq”改为“HWreset”,下载正常,调试也正常。更改界面如下:
在这里插入图片描述
可以正常Debug,如图:
在这里插入图片描述

在这里插入图片描述
四)原因分析:
一些概念如下:
1、Reset — HW RESET
英文含义:performs a hardware reset by asserting the hardware reset (HW RESET) signal.
中文含义:复位-硬件复位通过置位硬件复位(HW RESET)信号来执行硬件复位。
2、Reset — SYSRESETREQ
英文含义:performs a software reset by setting the SYSRESETREQ bit. The Cortex-M core and on-chip peripherals are reset.
中文含义:通过将SYSRESETREQ位置1来执行软件复位。 Cortex-M内核和片上外设被重置。
3、Reset — VECTRESET
英文含义:performs a software reset by setting the VECTRESET bit. Only the Cortex-M core is reset. The on-chip peripherals are not affected. For some Cortex-M devices, VECTRESET is the only way to reset the core. VECTRESET is not supported on Cortex-M0 and Cortex-M1 cores.
中文含义:复位-VECTRESET通过将VECTRESET位置1来执行软件复位。 仅Cortex-M内核被重置。 片上外设不受影响。 对于某些Cortex-M设备,VECTRESET是重置内核的唯一方法。 Cortex-M0和Cortex-M1内核不支持VECTRESET。
4、Reset — Autodetect
英文含义:selects one of the above reset methods based on the target device. The SYSRESETREQ method is used if an unknown device is detected.
中文含义:重置-自动检测根据目标设备选择上述重置方法之一。 如果检测到未知设备,则使用SYSRESETREQ方法。

连接类型选项:
Normal:默认的连接策略,连接后只是将 PC 停在当前执行的指令处
with Pre–reset:在连接前,先执行一次 HW RESET
under Reset:在连接过程中一直保持 HW RESET 有效(该选项适用于用户程序误将 JTAG/SWD 禁掉的情况)
without Stop:连接后任 CPU 自由执行(适用于观测存储器或者外设 SFR 情况)

复位类型选项:
HW RESET:通过翻转ULink2的nSRST/nRESET引脚(一般也会接到MCU reset脚)来复位MCU
SYSRESETREQ:借助Cortex-M内核模块SCB中的AIRCR寄存器的SYSRESETREQ位来同时复位MCU外设模块
VECTRESET:借助Cortex-M内核模块SCB中的AIRCR寄存器的VECTRESET位功能来复位Core

由于我的MCU的NRST连接到了ULink2的nSRST/nRESET引脚和PCB板上另一个芯片的复位管脚,可能的原因是:SYSRESETREQ复位方式由于另一个芯片的影响,无法进行MCU的正常复位,然而,HW RESET方式下,ULINK2可以通过硬件反转NRST复位引脚,成功复位MCU。

分析:
复位的时序会影响程序的下载和调试(能否停在程序入口函数,能否进行单步),具体的影响逻辑没有理清楚。
五)经验教训
MCU的复位管脚一定要谨慎使用,当需要和其他芯片连接时,要清楚上下拉强度,清楚驱动电流大小。否则复位失效。

标签:reset,RESET,Required,29H,复位,Flash,Cortex,VECTRESET,SYSRESETREQ
From: https://blog.csdn.net/wgf350357114/article/details/144932011

相关文章

  • IAP篇一 —— FLASH内存划分 & Target设置 附Bootloader
    目录前言一、存储器映射                1、外设寄存器                2、运存                3、用户代码区                        1、Mainmemory                ......
  • 从零开始学TiDB(8) TiFlash 主要架构
    一.TiFlash的主要架构 二.TiFlash主要功能1.异步复制2.一致性读取 T0时刻从客户端写入两行数据k=1value=100k=999value=7分别写入到了两个region,并且产生raftlog 此时TiFlash还没有TiKV的这两行数据此时TiFlash同步了key=1value=100的数据还没有同步ke......
  • 设计一个包含KV操作、 磨损均衡的FLASH数据存储组件
    一、需求介绍寿命问题问题描述:在嵌入式环境中常用的存储器有NORFlash、NANDFlash、EEPROM,前两个一般擦写寿命约为10w次,EEPROM的使用次数约为100w次,寿命长的我先不管QAQ,这里的寿命指的是当flash中的存储单元写入或者擦除超过这个次数,这个存储单元可能会出现出错、变慢等无法......
  • 【STS测试】failure of android.security.sts.KernelLtsTest#testRequiredKernelLts_W
    总结:获取以下信息:1.安全补丁版本spl:2024-12-052.kernel版本5.15.1483.确认spl+6个月是否在【kernel-lifetimes.xml】中对应版本的生命周期之内,如果不在,则报出异常逻辑:确保安全补丁版本+6个月之后,仍旧在kernel的生命周期之内。也就是kernel版本该升级就升级吧。----------......
  • STM32外部SPI-FLASH字库实践
    背景使用STM32使用液晶屏时,对于一些点阵屏,预先需定义好相应的字模,对于12864的话,使用的自身的FLASH空间就可以存放下所需的字模,几十KB的空间。如果使用大的点阵屏,或者点阵密度较大时,且使用到的字体较多,如果只是用STM32自身的FLASH,对于一些小空间的芯片就不太够有空间去存放字模了......
  • ESP32-QSPI-外部flash驱动
    在某些情况下,有些资源过于大,所以需要使用外部flash保存数据这篇文章使用ESP32S3作为主控,驱动读写外部flash1.硬件连接flash通常为8pin,最主要的线为这六根:MOSIGPIO11MISOGPIO13CLK12HD9WP14CS10需要注意的是,flash的HD和WP引脚在不同的读写模式下,具有不同的功能......
  • Flash动画综合设计
    Flash动画综合设计并发布、嵌入到网页 【作业要求】自己选定主题,创意制作Flash动画,并与网页进行集成【实验环境】l 所需硬件环境为微机;l 所需软件环境为Flash8.0【创意内容】 一、国旗飘荡效果 设计思路:我选择了中国国旗作为主题,想通过动态效果让国旗看起来像在风......
  • redis-cli (error) NOAUTH Authentication required问题解决
    1.查找redis-cli所在目录whichredis-cli2.切换到redis-cli目录3.切换到usr/bin目录执行以下命令redis-cli-hip-pport4.验证redis登录密码auth'password'5.获取redis数据......
  • stm32读写外部flash失败怎么回事
    STM32读写外部Flash失败可能由多种原因引起,以下是一些常见的问题及其解决方案:一、硬件连接问题SPI接口连接错误:确保STM32的SPI接口与外部Flash的连接正确,包括时钟线(SCK)、数据线(MOSI、MISO)以及片选线(CS)。检查连接是否松动或存在断路。电源和地连接:确保外部Flash......
  • esp32-将flash分区进行内存映射
    1.前言为什么需要将flash分区映射到内存区域在某些情况下,我们需要在单片机中保存一个较大的数组,比如字库、图片等,使用const将其编译到代码中,可以指针访问他们。但是,在线刷或者OTA更新时,也不可避免的需要更新他们,造成了时间或者空间上的浪费。但是如果将其按照静态数据存放在fl......