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

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

3天内不再提示

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

工程师邓生 来源:未知 作者:刘芹 2023-10-29 17:24 次阅读

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

在STM32的开发过程中,有些时候可能会不小心开启了写保护和读保护,这将导致程序无法正常使用。此时,需要解锁芯片以便重新烧写程序。本文将介绍如何在STM32中解锁写保护和读保护,并提供详实的步骤以供参考。

1. 测试板子

在开始解锁之前,需要测试板子是否在保护状态下。首先,连接板子到电脑,并打开开发环境。在开发环境的终端中输入命令:

``` bash
stm32flash /dev/tty.usbserialXXXX -Rs
```

如果板子上的芯片已经被保护,则会显示以下信息

``` bash
Failed to init device.
```

如果芯片没有被保护,则会显示以下信息(具体数字可能会有所不同):

``` bash
Device ID: 0x414
Memory Size: 256KB
Pages: 128
Page Size: 2048B
Option Byte: 0xff
```

2. 准备J-Link软件

为了解锁STM32芯片,需要安装J-Link软件。首先,需要下载并安装J-Link软件包,然后将STM32的JTAG或SWD接口与J-link进行连接。连接后,启动J-Link软件,并按照以下步骤进行设置:

a. 选择Options > Project Settings

b. 选择Target、Interface和Device选项卡,并设置正确的芯片型号和调试器

c. 在Option选择卡上,选择Unlock option bytes选项

d. 点击OK并保存设置

3. 进行解锁

解锁STM32的步骤如下:

a. 连接J-Link调试器,并在J-Link软件中配置正确的芯片型号和调试器

b. 选择J-Link > Connect

c. 在J-Link软件中选择Target > disable readout protection

d. 等待解锁完成

4. 测试解锁状态

在解锁完成后,需要重新测试板子是否能够成功烧写程序。首先,断开J-Link调试器,并使用以下命令测试:

``` bash
stm32flash /dev/tty.usbserialXXXX -Rs
```

如果芯片已被解锁,则会显示板子的相关信息,如:

``` bash
Device ID: 0x414
Memory Size: 256KB
Pages: 128
Page Size: 2048B
Option Byte: 0xff
```

5. 确认解锁状态

为了确认芯片是否已经解锁,需要查看芯片的Option Byte值,其中0xAA代表未开启读保护,而任意其他值则代表开启了读保护。打开开发环境的终端,输入以下命令:

``` bash
stm32flash /dev/tty.usbserialXXXX -RW 0x1FFF7800:1
```

其中,dev/tty.usbserialXXXX为串口名称,根据实际情况进行修改。如果芯片未被锁定,则会返回Option Byte的值。

综上所述,解锁STM32芯片需要安装J-Link软件,并设置正确的芯片和调试器。然后,选择disable readout protection选项进行解锁。最后,通过测试和查看Option Byte值来确认解锁是否成功。若果您在进行解锁 STM32 的过程中遇到了任何问题,建议您参考资料或者联系相关的技术支持部门寻求帮助。

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

    关注

    1

    文章

    288

    浏览量

    23409
  • STM32芯片
    +关注

    关注

    0

    文章

    38

    浏览量

    4311
  • stm32串口
    +关注

    关注

    0

    文章

    6

    浏览量

    1991
收藏 人收藏

    评论

    相关推荐

    请问STM32进入睡眠模式怎么下载程序?

    今天做低功耗实验,不小心把唤醒的代码屏蔽,板子开机1秒左右就进入深度睡眠,这下下载不了程序
    发表于 04-24 08:00

    不小心把SWIM引脚设置成了out,结果修改的程序怎么也下载不下去了,芯片是不是报废了?

    犯了个低级错误,不小心把SWIM引脚设置成了out,结果修改的程序怎么也下载不下去了,STVP还是内嵌的programmer均显示连接设备。不知道是不是有其他方法?还是这块芯片就报废了呢?
    发表于 04-22 07:24

    STM32F446读写保护意外打开的原因?

    程序第一次上电会判断保护是否打开,如果没打开保护则设置保护,以此来
    发表于 04-19 07:43

    不小心把板载STLINK的单片机程序给擦出了,导致现在USB连接无法识别,怎么解决?

    不小心把板载STLINK的单片机程序给擦出了,导致现在USB连接无法识别,哪里可以提供程序让我重新下载?非常感谢!!
    发表于 04-19 06:44

    STM32F0设置FALSH写保护不能下载程序是什么原因导致的?

    开发环境KEIL5+JLINK进行程序调试,STM32F0根据选项字节进行FALSH写保护,下次不能再程序下载
    发表于 04-18 07:51

    STM32串口下载方式(ISP)的写保护位编程错误的原因?

    正常使用STM32系列MCU的PCBA,都会在生产中将代码编程进去,并且设置必要的读写保护,不设置保护状态直接出厂的,应该没有这种情况吧?我在通过ISP功能进行编程,读写保护设置时,发
    发表于 04-09 06:39

    STM32F407保护无法解锁何解决?

    项目中用到STM32F407,程序烧录,开始运行正常,后面出现芯片死机不运行的情况,Jlink重新烧录程序提示保护。 网上搜索方法,STlink工具,STLNK Utility
    发表于 03-25 08:09

    Pflash恢复保护命令最终会在Aurix TC3xx控制器上重置目标是为什么?

    我正在连接 T32 调试器的 Aurix TC3xx 控制器评估板上测试 Pflash /写保护机制,我配置 UCB_pFlash 和 UCB 调试,我成功解锁
    发表于 01-24 06:42

    JLINK下载程序点了secure chip之后,如何解锁芯片的保护状态?

    如果JLINK下载程序,不小心点了一下secure chip之后,芯片就处于保护状态下,不能连接到JLINK,也不能用jlink下载程序,
    发表于 01-11 07:24

    相机储卡的写保护开关为锁定怎么办?

    相机储卡的写保护开关为锁定怎么办? 相机存储卡的写保护开关被锁定时,意味着您无法对存储卡进行任何写操作,例如拍摄照片、录制视频或删除文件。 首先,在尝试任何解决方法之前,确保存储卡写保护
    的头像 发表于 12-09 14:32 3852次阅读

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

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

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

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

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

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

    RA2快速设计指南 [6] 寄存器写保护和I/O端口配置

    RA2快速设计指南 [6] 寄存器写保护和I/O端口配置
    的头像 发表于 10-24 16:48 350次阅读
    RA2快速设计指南 [6] 寄存器<b class='flag-5'>写保护</b>和I/O端口配置

    STM32L4 STM32L4+和STM32G4系列微控制器上的专利代码读取保护

    基于Arm®(a)内核的STM32L4、STM32L4+和STM32G4系列微控制器采用多种机制,可对全存储器或特定段进行读写保护
    发表于 09-07 07:45