0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何解决STM32芯片Flash写保护的问题

FPGA之家 来源:CSDN博客小麦大叔 作者:CSDN博客小麦大叔 2022-03-14 17:24 次阅读

本文介绍了如何解决STM32芯片Flash写保护导致无法下载程序,无法在线调试的问题;如果您遇到相同的问题,希望本文可以带来一些帮助。

1 FLASH的写保护

如果对Flash设置了写保护,那就无法对Flash进行编程和擦除。

在开发STM32的时候,如果出现这种情况,通常仿真器都支持对Flash进行解锁,像jlink,stlink等仿真器都支持这个功能。

2 错误提示

在使用MDK进行调试的时候,出现报错 ==Flash Timeout.Reset Target and try it again==,具体如下图所示;

如何解决STM32芯片Flash写保护的问题

折腾了一番之后,并没有解决问题,因为使用的仿真器是stlink,因此下载了stlink utility尝试解决问题;

3 stlink utility

3.1 基本功能

stlink utility是ST官方提供的免费软件,支持STM32 ST-LINK的程序包括带有命令行界面(CLI)的图形用户界面(GUI)。该工具还提供了较多的其他功能,具体如下;

可以对STM32 内部存储器 (Flash,RAM,OTP和其他存储器),外部存储器进行编程;

验证程序内容(校验和,在编程期间和之后进行校验,与文件进行比较等)

还能实现 STM32编程自动化;

另外还提供其他的功能;

3.2 解锁Flash

在stlink连接目标板的情况下,打开stlink utility,在菜单栏的Target下选择connect,因为这时候Flash已经被锁住了,所以同样地也看到相应的错误提示 Can not read memory Disable Read Out Protection and retry,具体如下图所示;

如何解决STM32芯片Flash写保护的问题

OK,下面只需要接触写保护就行了,所以在菜单栏target里打开Option Bytes...选项,或者直接通过快捷键ctrl+B打开,请确保当前已经正确连接了stlink和目标板,否则会出现报错;

正确连接的情况下,打开Option Bytes...,发现在这里Read Out Protection选项是enable,这个表示无法通过swd读取STM32内部Flash的程序。

如何解决STM32芯片Flash写保护的问题

关键点:将Read Out Protection选项设置为disable,点击Apply,这时候Flash已经成功解锁了。但是同时发现,内部Flash已经被擦除了;

这可能STM32的保护机制有关,防止程序被拷机,然后进行反编译破解,这样也可以提高破解的门槛。具体显示如下图所示;

如何解决STM32芯片Flash写保护的问题

完成以上步骤之后,在菜单栏Target下选择Disconnect,或者通过快捷键ctrl+D断开和目标板的连接;重新进入MDK,就能正常对目标板进行调试,仿真,以及程序的烧写。

3.3 写保护

在菜单栏target里打开Option Bytes...选项,我们还看到下面有Flash sector protection选项;选择Select all之后,发现所有Page都已经写保护了,只要选择apply选项就可以对Flash进行写保护;具体如下所示;

如何解决STM32芯片Flash写保护的问题

4 总结

对于Flash写保护的问题可以结合STM32参考手册进行相应的学习,其内部Flash提供相应的保护机制,本文只是结合ST官方工具stlink utility解决一下常见的这个简单的问题。

笔者能力和水平有限,文中难免有错误和纰漏之处,请大佬们不吝赐教;

原文标题:如何优雅地解决STM32的Flash写保护的问题?

文章出处:【微信公众号:FPGA之家】欢迎添加关注!文章转载请注明出处。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 芯片
    +关注

    关注

    454

    文章

    50659

    浏览量

    422975
  • FlaSh
    +关注

    关注

    10

    文章

    1632

    浏览量

    147896
  • STM32
    +关注

    关注

    2269

    文章

    10889

    浏览量

    355575

原文标题:如何优雅地解决STM32的Flash写保护的问题?

文章出处:【微信号:zhuyandz,微信公众号:FPGA之家】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    设置FLASH写保护及解除的方法

    51.1 选项字节与读写保护在实际发布的产品中,在STM32芯片的内部FLASH存储了控制程序,如果不作任何保护措施的话,可以使用下载器直接
    发表于 12-03 07:24

    STM32对内部Flash保护措施

    一、STM32对内部Flash保护措施所有STM32芯片都提供对Flash
    发表于 01-20 07:23

    STM32芯片解除写保护的操作步骤有哪些

    STM32芯片解除写保护的方法(亲测有效)前言方法一、用J-Flash来解除写保护1.设置2.操作步骤(1)下载安装JFlash软件,已安装
    发表于 02-21 07:13

    FLASH_CRYPT_CNT写保护何解除?

    验证flash加密功能时不小心将FLASH_CRYPT_CNT字段设置成写保护了,导致现在无法关闭flash加密。请问有什么方法取消写保护
    发表于 02-10 07:53

    请问FLASH_CRYPT_CNT写保护何解除?

    验证flash加密功能时不小心将FLASH_CRYPT_CNT字段设置成写保护了,导致现在无法关闭flash加密。请问有什么方法取消写保护
    发表于 03-06 06:14

    何解STM32芯片Flash写保护导致无法下载程序,无法在线调试的问题

      本文介绍了如何解STM32芯片Flash写保护导致无法下载程序,无法在线调试的问题;如果您遇到相同的问题,希望本文可以带来一些帮助;
    的头像 发表于 12-22 16:51 1.4w次阅读

    第51章 设置FLASH的读写保护及解除

    51.1 选项字节与读写保护在实际发布的产品中,在STM32芯片的内部FLASH存储了控制程序,如果不作任何保护措施的话,可以使用下载器直接
    发表于 11-23 17:51 12次下载
    第51章     设置<b class='flag-5'>FLASH</b>的读<b class='flag-5'>写保护</b>及解除

    STM32芯片解除写保护的方法(亲测有效)

    STM32芯片解除写保护的方法(亲测有效)前言方法一、用J-Flash来解除写保护1.设置2.操作步骤(1)下载安装JFlash软件,已安装
    发表于 12-24 19:38 22次下载
    <b class='flag-5'>STM32</b><b class='flag-5'>芯片</b>解除<b class='flag-5'>写保护</b>的方法(亲测有效)

    STM32Flash写保护,SWD引脚锁的各种解决办法汇总(2020-03-10)

    问题现象:MDK,J-Flash,IAR等无法连接芯片,有时候链接上了,但是无法下载。注意:如果下载器线的接触不良,也会有这个问题。问题描述:1、Flash写保护根本原因是工程设计有
    发表于 12-27 18:45 14次下载
    <b class='flag-5'>STM32</b>的<b class='flag-5'>Flash</b>读<b class='flag-5'>写保护</b>,SWD引脚锁的各种解决办法汇总(2020-03-10)

    STM32Flash写了保护怎么办?

    为了防止对Flash的非法访问,所有STM32芯片都提供对Flash保护,具体分为写保护和读
    发表于 02-08 16:39 7次下载
    <b class='flag-5'>STM32</b>的<b class='flag-5'>Flash</b>写了<b class='flag-5'>保护</b>怎么办?

    STM32Flash写了保护怎么办?

    STM32还提供了一个特别的保护,即对Flash存储区施加读保护后,即使没有启用写保护Flash
    的头像 发表于 04-02 15:55 4193次阅读

    讲讲STM32单片机Flash的读保护写保护

    讲讲STM32单片机Flash的读保护写保护
    的头像 发表于 10-26 15:52 8383次阅读
    讲讲<b class='flag-5'>STM32</b>单片机<b class='flag-5'>Flash</b>的读<b class='flag-5'>保护</b>和<b class='flag-5'>写保护</b>

    STM32用串口下载后,不小心写保护和读保护了,如何解锁?

    STM32用串口下载后,不小心写保护和读保护了,如何解锁? 在STM32的开发过程中,有些时候可能会不小心开启了
    的头像 发表于 10-29 17:24 4613次阅读

    STM32Flash写了保护怎么办?STM32如何设置读保护和解除读保护

    保护机制,然后才能更好地解决这个问题。 STM32Flash有两种保护,一种是写保护,一种是读保护
    的头像 发表于 10-29 17:24 1.2w次阅读

    STM32加密问题:怎样预置一段Flash保护和清除读保护的程序

    STM32芯片中,我们可以通过设置BFB2和BFB1位来对Flash进行保护。BFB2位用于读保护写保
    的头像 发表于 10-29 17:24 2553次阅读