MDK KEIL 烧录STM32下载错误:Flash Timeout.Reset the Target and try it again.解决办法(芯片解锁 解除读报护)
使用keil开发STM32点下载时出现下面的报错:
点确定后:
出现如上情况很可能是该芯片锁死,即设置了读写保护。
解决方法是想办法解锁芯片,可以使用ST-Link配合stlink utility软件,或者使用J-link,或者用一个自动取消读写保护位的程序在SRAM区运行一下(读写保护只影响 FLASH, SRAM调试时程序下载到 SRAM 中,不受影响) 。当然其实上面的方法原理都是一样,下面就使用ST-Link配合stlink utility软件解锁芯片的方法阐述一下。
stlink utility是ST官方提供的免费软件,支持STM32 ST-LINK的程序包括带有命令行界面(CLI)的图形用户界面(GUI)。该软件可自行到ST官网搜索下载最新版。
进入stlink utility软件后,Target->Connect显示不能读到flash,这也进一步证明这个芯片被设置了读报护。如果到这一步依然与图片现象一致,那么请继续往下跟着操作。
选择Target->Option Bytes
读到配置字节发现读报护果然被使能了:
将Read Out Protection选项设置位disable,点击Apply,这时候Flash已经成功解锁了:
解锁成功后ST-LINK上位机软件会自动连接芯片,这时发现flash已经全部被擦除了(因为flash读出来都是0xFFFFFFFF),这就是芯片的保护机制,主要防止一些想不劳而获的人通过调试器窃取芯片内的软件。
至此,芯片已经可以正常烧录了。
补充一点:
有些芯片比如L0系列的,Read Out Protection选项读出来是Level 0或是 Level 1
STM32 读保护有三个等级 L0 L1 L2
L0 是没有保护,可以随意读出来的,一般调试过程中选择。在L0 状态可以设置成L1 或者L2,修改完成不会擦除芯片已有的代码;
L1 是可恢复读保护,L1–>L0状态,,会自动擦除已有的程序。L1->L2,这个设置还没有试过,(正常理解是不擦除);
L2 是不可恢复读保护,此状态下,不可恢复到其他的状态,同时芯片里的程序不能再升级 类似OTP了;
这个主要是保护代码不会被其他人恶意拷贝,保护原作者的权益。
如果是这种。解锁的时候把Level 1切换到Level 0就行了。
这里注意。自己调试时不要设到Level 2去了,这样芯片就再也不能烧录新程序了。
再补充一点:
如果按上面的方法解锁了之后,再用KEIL下载还是反复报下面的错误:
换ST-link utility烧录时报下面的错误:
这个原因是上述方法没有解锁全部的Flash,还有一部分Flash没有解锁。是因为前几页flash单独设置了读报护,需要单独解锁。
选择Target->Option Bytes
发现如上图所示前4页flash被写保护,所以需要将其全部解锁才能下载。
(该部分写保护主要是为了Bootloader被破坏)
点击Unselect all,再点击Apply即可解除所有的读报护了。
MDK KEIL 烧录STM32下载错误:Flash Timeout.Reset the Target and try it again.解决办法(芯片解锁 解除读报护)相关推荐
- [Keil 烧录器下载报错] “Flash Timeout. Reset the Target and try it again”
1.首先检查是否为BOOT0,BOOT1选择导致的下载方式错误. 2.最有可能的原因是STM32芯片读写保护,导致程序烧录失败. 第二种解决办法如下: 使用ST-Link Utility去除STM32 ...
- STM32下载出错:flash timeout.reset the target and try it again
STM32下载出错:flash timeout.reset the target and try it again 1.出错提示 2.解决方法 下载连接 1.出错提示 编译环境:Keil5 下载器:高 ...
- Flash Timeout.Reset the Target and try it again 报错解决方案 STM32 ST-LINK Utility下载程序操作
在移植程序时同时遇到下列两个报错问题,配置好Flash和检查烧录器无误外还是解决不了,这时下载STM32 ST-LINK Utility 软件借助其烧录功能最终解决该问题. 打开软件后基本操作如下: ...
- keil软件STM32下载错误:Overlapping of Algorithms at Address 08000000H错误
使用keil软件编译程序,单片机是STM32F767IGT,没有错误和报警,但下载时却出现下面的错误: 解决方法:如下图所示,删去多余的选项即可.
- STM32F103ZET6程序移植为C8T6+C8T6下载程序flash timeout的解决方案
文章目录 一.程序移植 :程序移植还是蛮简单的 二.程序下载 : 会出现问题 (一)BOOT0和BOOT1 (二)程序下载 1.代码通用 2.状况不断 3.解决办法 (三)STM32F103C8T6下 ...
- oracle ipc message,【案例】Oracle RAC IPC send timeout error导致RAC的节点挂起解决办法
天萃荷净 Oracle研究中心案例分析:运维DBA反映Oracle RAC环境数据库节点挂起,分享日志发现是由于IPC send timeout error导致RAC的节点挂起. 本站文章除注明转载外 ...
- linux下生成guid,在Linux下生成GUID的程序,及编译错误 “uuid/uuid.h: No such file or directory” 的解决办法。...
在Linux下编写生成GUID的程序,如下 guid.c 文件: #include #include void uuid2string(const uuid_t uu, char* const str ...
- 错误 -source 1.6 中不支持 diamond 运算符的解决办法(已解决)
错误: -source 1.6 中不支持 diamond 运算符的解决办法 第一步:打开setting-> Build.Execution.Deployment 第二步:打开项目结构 开项目结构
- 下载logisim时显示“系统找不到指定路径”的解决办法!!!!
下载logisim时显示"系统找不到指定路径"的解决办法!!!! 最后全部搞完的时候百度到了这个: 因为我的电脑之前胡乱删了一些东西而且Java没卸载,总之就很乱,但是我没卸载干净 ...
最新文章
- keepalived 的配置文件
- K-Means ++ 和 kmeans 区别
- 数据分析体系构建那点事!
- 微信“拍一拍”,竟然可以使用Python实现,你get到了吗?
- 前几天和前58技术委员会主席聊了聊技术梦想
- (217)如何选择硬件描述语言
- SharePoint自动化系列——通过PowerShell创建SharePoint Lists
- 华为机试HJ106:字符逆序
- 经典:从追MM谈Java的23种设计模式
- MySQL触发器自动更新memcache[转]
- 逆袭进大厂:程序员究竟该如何学好前端?
- Nginx+Tomcat关于Session的管理
- 手机开热点但是电脑一直连接不上_电脑连不上wifi,手机可以连上。手机开热点,电脑可以连上。这是怎么回事,电脑就一直循环连接那个w...
- Chase your purpose,not your passion
- 把自己做的网站进行app封包
- 写给程序员看的面向对象摄影技巧
- 解决跨域设置Cookie问题
- 登录管理(权限管理) token
- VMware虚拟机安装Ubuntu以及Linux入门基础
- 免费的uml建模工具