历史上的今天
返回首页

历史上的今天

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

正在发生

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

2019-10-09 来源:eefocus

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


问题
某客户在其产品的设计中,使用了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 设置读保护之后,需要重新上电才可激活新的选项字节并运行程序。


推荐阅读

史海拾趣

Advanced Ceramic X Corporation公司的发展小趣事

非常抱歉,由于我无法直接获取到Advanced Ceramic X Corporation公司的具体发展细节,因此无法为您直接编写关于该公司发展的五个具体故事。然而,我可以为您提供一种构建这类故事的框架,您可以根据这个框架,结合公司的公开信息,来编写符合要求的故事。

故事框架示例

故事一:技术突破引领市场

Advanced Ceramic X Corporation自成立以来,一直致力于陶瓷材料的研究与开发。某年,公司成功研发出一种具有极高耐高温性能的新型陶瓷材料,这一技术突破使得公司在航空航天领域获得了广泛应用,推动了公司的快速发展。随着技术的不断完善和市场需求的增长,公司逐渐成为了陶瓷材料领域的领军企业。

故事二:国际合作拓宽市场

为了进一步扩大市场份额,Advanced Ceramic X Corporation积极寻求国际合作机会。公司与欧洲一家知名陶瓷材料公司签订了战略合作协议,共同开发新型陶瓷产品。这一合作不仅提高了公司的技术水平,还拓宽了公司的国际市场,使得公司的产品在全球范围内得到了广泛应用。

故事三:环保理念驱动创新

在环保意识日益增强的背景下,Advanced Ceramic X Corporation积极响应国家环保政策,将环保理念融入产品研发和生产过程中。公司成功研发出一种环保型陶瓷材料,该材料不仅具有优异的性能,而且在生产过程中产生的污染极低。这一创新举措赢得了客户的广泛赞誉,也提升了公司的品牌形象。

故事四:人才培养与团队建设

Advanced Ceramic X Corporation深知人才是企业发展的核心动力。公司注重人才培养和团队建设,通过定期举办技术培训、团队建设活动等方式,提高员工的业务能力和团队协作能力。同时,公司还积极引进国内外优秀人才,为公司的长远发展奠定了坚实的基础。

故事五:社会责任与公益事业

作为一家有社会责任感的企业,Advanced Ceramic X Corporation积极参与公益事业。公司捐资支持教育事业、扶贫济困等公益活动,为社会发展贡献自己的力量。同时,公司还关注员工福利,为员工提供良好的工作环境和福利待遇,增强了员工的归属感和忠诚度。

请注意,上述故事仅为示例,并未涉及Advanced Ceramic X Corporation公司的具体发展情况。您可以根据公司的实际情况和公开信息,结合上述框架来编写符合要求的故事。在编写过程中,请确保只描述事实,避免加入个人主观评价。

Big-Sun Electronics Co Ltd公司的发展小趣事

随着国内市场的逐步饱和,Big-Sun Electronics Co Ltd公司开始将目光投向国际市场。公司积极参与国际电子展会,与海外客户建立起了良好的合作关系。同时,Big-Sun还与国际知名电子企业开展技术合作,共同研发新产品,进一步提升了公司的国际竞争力。

AverLogic公司的发展小趣事

随着产品的成功推出,AverLogic公司开始积极拓展市场,寻求与国际知名电子品牌的合作。通过与这些品牌的深度合作,公司不仅将产品推向了更广阔的市场,还从合作伙伴那里获得了宝贵的市场反馈和技术支持。这些合作不仅提升了AverLogic的品牌影响力,也为其后续的产品研发和市场布局提供了有力的支持。

API Technologies公司的发展小趣事

API Technologies的初创时期,正值电子行业的蓬勃发展期。公司面临着激烈的市场竞争和技术革新的挑战。然而,创始人凭借对电子技术的深刻理解和敏锐的市场洞察力,成功开发出了一系列高性能、高可靠性的电子元器件,迅速在市场中占据了一席之地。同时,公司也积极寻求与合作伙伴的合作,共同推动技术创新和市场拓展。

Headland Technology Product Group公司的发展小趣事

近年来,随着环保意识的日益增强,HBControls积极响应国家号召,致力于绿色环保产品的研发和生产。公司投入大量资金引进环保设备和技术,对生产流程进行改造升级,以减少对环境的影响。同时,HBControls还积极推广绿色供应链理念,与供应商共同构建绿色、低碳的供应链体系。这些举措不仅提升了公司的社会形象,也为企业的可持续发展奠定了坚实的基础。

Conflux公司的发展小趣事

作为一家具有社会责任感的企业,Conflux始终关注社会公益事业。公司积极参与扶贫、教育等公益活动,为社会做出积极贡献。同时,Conflux还注重环保和可持续发展,通过采用环保材料和节能技术,降低生产过程中的环境污染。这些举措不仅提升了公司的社会形象,也赢得了社会各界的广泛赞誉。

以上五个故事是虚构的,但反映了一个科技公司可能经历的发展阶段和策略选择。在现实中,一个公司的成长和发展往往涉及更多复杂的因素和决策过程。希望这些故事能够为您提供一些启发和参考。

问答坊 | AI 解惑

一种新型高电压充电方式

目前对于UPS、EPS、逆变电源等的大功率产品,开发设计者设计的蓄电池逆变电压往往很高。面对由很多蓄电池串联而成的高电压蓄电池组,设计者对蓄电池组的充电往往以市电经过变压器升压后整流或市电整流后经高频电子BOOST升压的传统方式来实现。前者 ...…

查看全部问答>

【讨论】“嵌入式裸奔”、“嵌入式OS”、“OS”各适合什么场合?

如果你只能用的心: A)如果你手上是4位MCU? B)如果你手上是8位MCU? C)如果你手上是16位MCU? D)如果你手上是外设不多的32位MCU? E)如果你手上是外设丰富的32位MCU? F)如果你手上是外设极其丰富的64位MCU? 你要做什么产品: a)如果你 ...…

查看全部问答>

DSP分类

怎么从名称熵推知是TI还ADI的 DSP ?…

查看全部问答>

仪器类设计

仪器类设计 [ 本帖最后由 小虾米gg 于 2009-9-2 15:28 编辑 ]…

查看全部问答>

74LS08 74LS30中文资料

74LS08    74LS30中文资料…

查看全部问答>

方向识别,高手指导一下!

我在做一个东西,想找一个成本比较的识别方法,来实现识别五米开外的物体。原想用红外源发射接收的但是找了市面上找了都只有开关式的红外,高手指导一下,多谢了~~…

查看全部问答>

两路CMOS摄像头同时输入到TI DM6446 的方法请教讨论

HI,大家好,想在TI DM6446平台上,同时输入两路CMOS摄像头的方法,请教下可否用以下方法实现: 硬件上,两个CMOS数据输入到一个二选一的高速转换器的输入口中,输入直接到 DM6446 的视频输入口 软件上,在RAM里面 建立两个 视频流的区域,即A区和B区,程序 ...…

查看全部问答>

.net下,如何删除gdi对象?

Bitmap bmp = new Bitmap(\"\\\\pics\\\\a.jpg\"); IntPtr hBitmap = bmp.GetHbitmap(); pictureBox1.Image = System.Drawing.Image.FromHbitmap(hBitmap); 如果不及时删除hBitmap 所指向的GDI对象,调用次数多了,内存会溢出。 msdn中的例 ...…

查看全部问答>

某PCI设备在已有相应驱动程序的情况下,要添加另一驱动,两驱动并行工作,可以实现吗?

我有一块PCI接口的DSP开发板。PCI接口芯片是AMCC S5933。该PCI板卡已安装了相应的驱动。 我想读写AMCC S5933的配置寄存器和操作寄存器,实现主模式传输。想用Windriver写个简单的驱动程序,并写相应的应用程序,实现配置功能。但是,原来已安装的 ...…

查看全部问答>

一个关于ListCtrl的问题

遇到一些问题。希望各位不吝赐教。先谢过了。 现在有两个界面,称为A和B吧。 通过网口传输数据。在A界面接收数据,然后在B界面通过一个ListCtrl显示 ListCtrl控件选择为report 每接收一个数据就在list中显示一个。 现在的问题是。如果在A界面 ...…

查看全部问答>