打印

STM32无法更新程序

[复制链接]
6237|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 fygj2093 于 2010-9-15 19:11 编辑

本人购买了一块STM32F103ZET6评估板,配有KEIL3和ULINK下载器。后因需要防止程序被读出,想尝试下读保护功能,于是在程序中添加了使能读保护的代码。板子复位后正常运行,查询读保护状态位已置位,但无法更新程序。查阅资料得知使能读保护后前4页FLASH会自动写保护,觉得是因此导致无法更新程序,故想通过擦除FLASH来解除写保护,在KEIL的Options--Utilities--Flash Download Setup中点选了Erase Full Chip,下载时提示擦除完成但下载失败,之后选择部分擦除,提示Flash Timeout.Reset the Target and try it again。
是否芯片的启动代码也被我擦除了?只能报废或返厂?
现有的工具还能否解决此问题?
请大虾些指点一下。十分感谢
沙发
airwill| | 2010-9-17 10:25 | 只看该作者
本帖最后由 airwill 于 2010-9-17 10:26 编辑

STM32_Flash_RM_CH_V6.pdf   
P11 上这么描述

当保护字节被写入相应的值以后:
1  只允许从用户代码中对主闪存存储器的读操作(以非调试方式从主闪存存储器启动)。
2  第0~3页(小容量和中容量产品),或第0~1页(大容量和互联型产品)被自动加上了写保护,
其它部分的存储器可以通过在主闪存存储器中执行的代码进行编程(实现IAP或数据存储等
功能),但不允许在调试模式下或在从内部SRAM启动后执行写或擦除操作(整片擦除除
外)。


3  所有通过JTAG/SWD向内置SRAM装载代码并执行代码的功能依然有效,亦可以通过
JTAG/SWD从内置SRAM启动,这个功能可以用来解除读保护。当读保护的选项字节转变
为存储器未保护的数值时,将会执行整片擦除过程。



不过我也没有试验过, 等待楼主的进一步试验.

使用特权

评论回复
板凳
zhongyb| | 2010-9-17 10:44 | 只看该作者
方法1.使用片上的ISP功能执行全片擦除;
方法2.使用JLINK以及JLINK自带的STM32解锁软件解锁,也就是全片擦除。
ENJOY

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
fygj2093 + 1 感谢
地板
gavin_li| | 2010-9-19 16:20 | 只看该作者
mark

使用特权

评论回复
5
fygj2093|  楼主 | 2010-9-21 10:51 | 只看该作者
方法1.使用片上的ISP功能执行全片擦除;
方法2.使用JLINK以及JLINK自带的STM32解锁软件解锁,也就是全片擦除。
ENJOY
zhongyb 发表于 2010-9-17 10:44

我手上只有ULINK呀。

使用特权

评论回复
6
zhongyb| | 2010-9-21 17:22 | 只看该作者
不是还有方法1吗?
方法1.使用片上的ISP功能执行全片擦除;
不需要使用任何仿真器,只需要串口线就能操作。

使用特权

评论回复
7
fygj2093|  楼主 | 2010-9-27 16:12 | 只看该作者
使用ISP方法已解决问题了。非常感谢

使用特权

评论回复
8
baidudz| | 2010-9-27 18:28 | 只看该作者
那得恭喜楼主了:lol

使用特权

评论回复
9
yingxuexuan| | 2013-3-14 11:08 | 只看该作者
flash timeout.reset the target and try it again
请看附件

11.jpg (43.35 KB )

11.jpg

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

3

帖子

1

粉丝