如何优雅地解决STM32的Flash写保护的问题

发布时间:2023-04-06  

本文介绍了如何解决 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 的程序。



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

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

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

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

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


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

相关文章

    。 3、在Keil MDK软件中设置ST-Link烧录程序方式:点击”Options for Targer”按钮。 ①选择”Debug”界面;②选择ST-Link Debugger;③点击OK按钮......
    讲解TK-Scope仿真/烧录NAND Flash、SPI存储器的启动方法。LPC3000系列芯片NAND Flash、SPI存储器启动原理是一样的:芯片上电复位后,通过片内BootLoader把外部存储设备中的程序......
    程序烧录方式你了解多少?;说起给单片机烧录程序,大家应该都不陌生,我最早接触单片机是从51单片机开始的,型号是STC89C52RC,当时烧录程序就是用的下面这种烧录软件——STC-ISP。 这种......
    单片机烧录程序怎么分类;说起给单片机烧录程序,大家应该都不陌生,我最早接触单片机是从51单片机开始的,型号是STC89C52RC,当时烧录程序就是用的下面这种烧录软件——STC-ISP。 这种......
    单片机烧录程序的几种常见方法;最近看到一个小伙伴问了一个比较基础的问题,大概就是问:单片机烧录程序常见方法有哪些? 下面就来说下常见的三种烧录程序的方法:ISP、IAP和ICP,以及......
    一样,下载程序时的步骤都是类似的,无非就是选择好串口和波特率,加载HEX文件,选择附加选项后再烧录程序即可。 ISP普通烧录 根据上表所示,我们用STM32的串口下载程序的步骤为: 1.电脑通过USB线连......
    的区别将在后续章节中介绍。 从嵌入式SRAM中启动。显然,该方法是在STM32的内置SRAM中启动,选择该启动模式后,内置SRAM的起始地址将被重映射到0x00000000地址,代码在此处开始运行。这种模式由于烧录程序......
    的区别将在后续章节中介绍。 3)从嵌入式SRAM中启动。显然,该方法是在STM32的内置SRAM中启动,选择该启动模式后,内置SRAM的起始地址将被重映射到0x00000000地址,代码在此处开始运行。这种模式由于烧录程序......
    配置不方便,而常用的串口配置很方便,所有通过这个程序转换,就可以用串口烧录程序到内部FLASH中了。 STM32的启动方式: BOOT1=x  BOOT0=0  从用户闪存启动,这是正常的工作模式。BOOT1......
    STM32调试步骤(2024-02-03)
    不是第一次连接学习板,则按下面图示操作 连接成功后,会有如下提示,否则说明板子与jlink之间连接有问题 5、烧录程序,按照下图所示操作 6、烧录成功后,按下学习板上的RST按键(学习......

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>