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

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

3天内不再提示

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

GReq_mcu168 来源:玩转单片机 作者:玩转单片机 2020-12-22 16:51 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

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

1 FLASH的写保护

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

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

2 错误提示

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

折腾了一番之后,并没有解决问题,因为使用的仿真器是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,具体如下图所示;

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

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

e9bbff56-442d-11eb-8b86-12bb97331649.png

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

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

e9efce4e-442d-11eb-8b86-12bb97331649.png

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

3.3 写保护

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

ea2baf4a-442d-11eb-8b86-12bb97331649.png

4 总结

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

责任编辑:xj

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

文章出处:【微信公众号:玩转单片机】欢迎添加关注!文章转载请注明出处。

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

    关注

    6074

    文章

    45340

    浏览量

    663501
  • FlaSh
    +关注

    关注

    10

    文章

    1715

    浏览量

    154701
  • STM32
    +关注

    关注

    2305

    文章

    11120

    浏览量

    371138

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

文章出处:【微信号:mcu168,微信公众号:硬件攻城狮】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    在Nuclei IDE中烧写程序无法成功的原因及部分解决办法

    mcu的flash出了问题,可能每次上电程序自动从flash中运行,里面有些东西使得板子无法下载新的程序
    发表于 10-31 06:24

    解决程序无法下载问题

    下载到FPGA的fpga _flash(QSPIflash的一部分),然后插入蜂鸟调试器,重新下载helloworld程序,发现可以
    发表于 10-30 07:35

    SD NAND写保护问题的分析

    “安全移除”、长期使用产生坏块、空间已满等,系统为避免进一步数据损坏,可能将卡自动挂为“只读” 。 恶意程序篡改分区表、文件系统设置,甚至设置隐藏的只读/写保护属性,导致无法写入或格式
    的头像 发表于 10-21 10:28 274次阅读
    SD NAND<b class='flag-5'>写保护</b>问题的分析

    STM32C011开发(3)----Flash操作

    STM32C011 系列微控制器内置 Flash 存储器,支持程序存储与数据保存,具备页面擦除、双字写入、读写保护等功能。本文将简要介绍 STM32
    的头像 发表于 09-18 16:48 3621次阅读
    <b class='flag-5'>STM32</b>C011开发(3)----<b class='flag-5'>Flash</b>操作

    请问stm32n6570dk如何解保护程序

    问题: 无法擦除和烧录程序,错误提示为 Mass erase operation failed. Please verify flash protection。 发现: 在OTP MPU界面
    发表于 07-25 08:56

    Nor flash芯片低温无法启动

    关于针对NOR Flash芯片在低温环境下无法启动的问题,详细分析与解决方案如下所述: 1. 低温失效原因分析 1.1 半导体物理特性变化 阈值电压(Vth)漂移:低温下MOSFET阈值电压升高(约
    的头像 发表于 06-30 17:23 594次阅读
    Nor <b class='flag-5'>flash</b><b class='flag-5'>芯片</b>低温<b class='flag-5'>无法</b>启动

    STM32H750B-DK 板载STLINK 烧录自己程序导致无法使用了,怎么解决?

    STM32H750B-DK 板载STLINK 烧录自己程序导致无法使用了,说有此开发板的板子STLINK 程序,谢谢! 补充:
    发表于 06-20 06:15

    什么是SD卡、TF卡写保护写保护的常见原因

    部分SD卡、TF卡适配器或卡套上设有物理写保护开关,当开关滑动到"锁定"位置时,卡片会自动进入写保护状态。这是最常见也是最容易解决的写保护原因。
    的头像 发表于 06-10 00:00 3926次阅读
    什么是SD卡、TF卡<b class='flag-5'>写保护</b>?<b class='flag-5'>写保护</b>的常见原因

    【案例3.9】电路板无法启动的故障分析

    电路板从最接近CPU的那片Flash存储器加载程序时出现异常,导致电路板无法启动。在案例3.8中提到,在一驱多的设计出现故障时,验证时钟信号边沿的单调性是重要的
    的头像 发表于 06-07 09:04 522次阅读
    【案例3.9】电路板<b class='flag-5'>无法</b>启动的故障分析

    STM32G473解除写保护失败的原因?

    在进行使用串口升级,下载程序时,有一个步骤是解除flash写保护。在此过程中是基本上按照官方例程的实现的,包括了flash、选项字节的解锁
    发表于 04-28 07:05

    STM32G473解除写保护失败的原因?

    在进行使用串口升级,下载程序时,有一个步骤是解除flash写保护。在此过程中是基本上按照官方例程的实现的,包括了flash、选项字节的解锁
    发表于 04-22 10:29

    STM32CubeIDE在线调试时,如何配置擦除Flash的部分Page?

    STM32CubeIDE在线调试时,如何配置擦除Flash的部分Page
    发表于 03-13 08:02

    使用STM32F407ZGT6芯片做小车主控时,总是在运行时芯片突然被锁,无法下载程序怎么解决?

    在使用STM32F407ZGT6芯片做小车主控时,总是在运行时芯片突然被锁,无法下载程序。 使用
    发表于 03-11 06:20

    myST账号无法注册导致stm32cubemx无法下载hal库的固件包,为什么?

    myST账号无法注册导致stm32cubemx无法下载hal库的固件包,myST账号注册卡在最后的邮箱验证环节,一直卡着
    发表于 03-11 06:17

    STM32下载程序的方式有哪些?

    Flash 存储器编程/擦除控制器将被锁定后,有什么办法可以将FLASH重置,我有个开发板能检测到芯片,但是下载程序的时候,出现
    发表于 03-07 11:56