历史上的今天

今天是:2024年10月09日(星期三)

正在发生

2019年10月09日 | 使用STM32 ST-LINK Utility 设置读保护后不能运行

发布者:温文儒雅 来源: eefocus关键字:STM32  ST-LINK  Utility  设置读保护 手机看文章 扫描二维码
随时随地手机看文章

前言
有些时候,我们总是按自己的想法,觉得不会有问题的时候,出现了一些看起来奇奇怪怪的问题,只不过最后还是可以发现这是有理可据的。


问题
某客户在其产品的设计中,使用了STM32F411VET6。客户工程师在开发过程中,尝试使用STM32 ST-LINK Utility 软件配合 ST-LINK 给32F411EDISCOVERY 板上的STM32 加上Level 1 的读保护。工程师发 现,原本在板子上正常运行的代码,加上读保护后,就不运行了。按了板上的RESET 按键也无济于事。


调研
1.了解问题
客户工程师使用32F411EDISCOVERY 来验证读保护的功能。


客户打开STM32 ST-LINK Utility 软件,点击“连接Connect to the target”按钮,再把功能代码下载到板上的STM32F411VET6,实现跑马灯的功能。然后,点击“Target → Option Bytes”调出选项字节对话框,将读保护Read OutProtection 设置为Level 1,如下:


 

点击“Apply”之后,STM32 ST-LINK Utility 就将选项字节烧写进去了。此时,弹出一个对话框:


 

此对话框告知我们无法读取存储器。这是对的,因为我们已经将读保护设置成Level 1 了,点击“OK”就可以了。


此时,客户所说的问题来了,板子上的跑马灯不跑了,按下板上的Reset 按键也没用,程序没有运行。


2.问题分析
关于此问题,需要查找一份比较老的编程手册PM0075。此文档虽然是STM32F10xxx 的编程手册,但是有些内容还是值得我们借鉴的,比如现在遇到的这个问题。
翻到2.4.1 Read Protection 章节,在这里,我们看到如下的句子:


第一句话的意思是:读保护是在设置RDP 选项字节后,再执行一次系统复位以重载新的RDP 选项字节后才生效的。接下来的这个注意就很重要了,它的意思是:当读保护被设置的时候调试器仍然通过JTAG/SWD 连接在目标芯片,那么要让选项字节生效,必须执行一次上电复位,而不是系统复位,目的是断开调试器的连接。


对于使用STM32 ST-LINK Utility 来更改RDP 选项字节的操作,正好符合了这两句话的意思,ST-LINK 还通过SWD 接口接在STM32F411VET6 上,所以需要一次上电复位才可以。


那为什么按下Reset 键也没用呢?我们看一下32F411EDISCOVERY 的电路图,看到RESET 键的电路如下:


此按键是接到STM32F411VET6 的NRST 引脚上的。

来看一下STM32F411 参考手册RM0383 关于System Reset 的定义:



 

在NRST 引脚上产生的低电平复位,也就是外部复位,是属于系统复位System Reset 的一种。这就是为什么在Discovery 板上按RESET 键不能起作用的原因了。


3.问题解决
只要将32F411DISCOVERY 板连接到PC 的USB 断开,让其断电后,重新插入USB 口,上电,就可以看到跑马灯程序又在运行了。


结论
由于使用STM32 ST-LINK Utility 给STM32 设置读保护时,需要ST-LINK 调试器通过JTAG/SWD 连接到STM32 上进行选项字节的更新,要使更新生效,必须让STM32 重新上电,执行上电复位才行。


处理
使用STM32 ST-LINK Utility 给STM32 设置读保护之后,需要重新上电才可激活新的选项字节并运行程序。


关键字:STM32  ST-LINK  Utility  设置读保护 引用地址:使用STM32 ST-LINK Utility 设置读保护后不能运行

上一篇:stm32F103 DMA通道
下一篇:STM32F4(Flash读保护)

推荐阅读

有了单片机学习板之后你就要多练习,把学习板和电脑连好,打开调试软件坐在电脑前,先学会怎么用调试软件,然后从最简单的流水灯实验做起,等你能让那八个流水灯按照你的意愿随意流动时你已经入门了,你会发现单片机是多么迷人的东西啊,太好玩了,这不是在学习知识,而是在玩,当你编写的程序按你的意愿实现时你比做什么事都开心,你会上瘾的,真的。做电...
开始时候使用的是stdlib的库,最近发现cube库用的越来越广泛了,遂开始使用cube库来完成ADC的多通道采集实验。ADC 的driver 在STM32F0XX_HAL_DRIVER当中,有stm32f0xx_hal_adc.c文件中,我们可以在stm32f0xx_hal_conf.h中开启 宏定义 ADC 模块。ADC有三种工作模式,polling interruptDMA我这里使用了polling的方式来获取多通道的数据。首先是要声明...
半导体知识产权(IP)领先供应商Imagination Technologies(简称“Imagination”)日前宣布,Simon Beresford-Wylie将担任公司首席执行官。 Beresford-Wylie此前担任Arqiva首席执行官,Arqiva是英国领先的通信、广播和媒体服务提供商。在加入Arqiva之前,他曾担任三星电子网络业务部全球执行顾问和执行副总裁。Beresford-Wylie还是诺基亚西门子通信公司...
概述离子束用于各种应用场合,诸如,质谱仪和离子注入机等。离子 束电流通常非常小(mA), 所以需要使用静电计或皮安表来进行测量。今天安泰测试为大家介绍如何使用吉时利皮安表6485 型和 6487 型皮安表来进行这种测量工作。在电流灵敏度更高时,可以改用静电计来进行测量。测量方法如果离子源偏离地电位,那么离子收集电极多半处在地电位。在这种情...

史海拾趣

小广播
最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

厂商技术中心

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2026 EEWORLD.com.cn, Inc. All rights reserved