硬汉嵌入式论坛

 找回密码
 立即注册
查看: 1250|回复: 3
收起左侧

解决STM32单片机从用户程序App无法成功跳转到系统Bootloader实现USB固件升级的问题

[复制链接]

2

主题

12

回帖

18

积分

新手上路

山川如故

积分
18
发表于 2024-5-17 22:58:15 | 显示全部楼层 |阅读模式
具体内容参考新写的这篇博客,解决了阿波罗开发板F429IGT6芯片跳转到系统Bootloader失败的问题。博客链接:解决STM32单片机从用户程序App无法成功跳转到系统Bootloader实现USB固件升级的问题-CSDN博客

https://blog.csdn.net/weixin_43259293/article/details/139005424
回复

使用道具 举报

2

主题

12

回帖

18

积分

新手上路

山川如故

积分
18
 楼主| 发表于 2024-5-17 23:27:51 | 显示全部楼层
更正一点,对于Cotex-M内核的单片机,__set_PRIMASK(1)和__disable_irq()效果是一样的,都是关闭中断, __set_PRIMASK(0)和__enable_irq();效果是一样的,都是开启中断,所以不用修改这两行代码也可以的。
回复

使用道具 举报

2

主题

12

回帖

18

积分

新手上路

山川如故

积分
18
 楼主| 发表于 2024-5-17 23:28:25 | 显示全部楼层
更正一点,对于Cotex-M内核的单片机,__set_PRIMASK(1)和__disable_irq()效果是一样的,都是关闭中断, __set_PRIMASK(0)和__enable_irq();效果是一样的,都是开启中断,所以不用修改这两行代码也可以的。

经测试,使用-O0优化无法成功进入Bootloader,但使用-O1/-O2/-O3都可以成功进入。

使用CubeProgrammer软件通过UART的方式连接芯片时,需要注意一下RTS和DTR的设置,RTS设置为Low,DTR设置为High,这样才能够成功链接到芯片。

通过USB连接芯片则不需要设置这些参数,直接使芯片进入Bootloader模式然后插上电脑就可以识别到了
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
116779
QQ
发表于 2024-5-18 11:49:46 | 显示全部楼层
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-7-6 17:41 , Processed in 0.563563 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表