打印

郁闷阿,昨天锁了两个stm32片子

[复制链接]
8707|24
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xzm0662|  楼主 | 2008-12-8 16:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
调用了库里的读保护函数,结果,后来stlink2仿真器就连不上了,Jlink下载完就报错。
是不是只能用ISP擦了?
沙发
香水城| | 2008-12-8 16:30 | 只看该作者

可以用ISP擦除,或下载程序在RAM中擦除

使用特权

评论回复
板凳
xzm0662|  楼主 | 2008-12-8 16:36 | 只看该作者

下载程序在RAM中擦除怎么操作?

只是听说过,具体怎么做啊?是不是要写个小程序擦全部flash?具体怎么做?有人做过吗?

使用特权

评论回复
地板
香水城| | 2008-12-8 16:48 | 只看该作者

你可以调用库里的函数设置读保护,同理可以调用函数解除

当然要自己写个小程序。

使用特权

评论回复
5
xzm0662|  楼主 | 2008-12-8 16:57 | 只看该作者

只擦读保护马?还是要擦除全片?

擦保护之前是不是要擦全片?

使用特权

评论回复
6
香水城| | 2008-12-8 17:09 | 只看该作者

解除读保护后,芯片仍处于保护状态,但下次上电时自动擦

所以解除读保护之前不必擦除全片。

请注意,解除读保护不是擦除操作,而是写操作,即需要在读保护位写入一个特定的键才能解除读保护,擦除读保护位或写入错误的键都会施加读保护。

使用特权

评论回复
7
pheavecn| | 2008-12-8 18:03 | 只看该作者

LS版主解释似乎不够精准:

To disable the read protection from the embedded SRAM:
● Erase the entire option byte area. As a result, the read protection code (RDP) will be
0xFF. At this stage the read protection is still enabled.
● Program the correct RDP code 0x00A5 to unprotect the memory. This operation first
forces a Mass Erase of the main Flash memory.
● Reset the device (POR Reset) to reload the option bytes (and the new RDP code) and,
to disable the read protection.

解除读保护之前,就会自动擦除全片,之后才有解除读保护的动作。
这点是很重要的,保证保护有效。

使用特权

评论回复
8
ijk| | 2008-12-8 18:05 | 只看该作者

如果电路板支持boot跳线

  如果电路板支持boot跳线,那么就很简单,跳到SRAM方式,然后直接用仿真器(stlink,JLink,ULink)下载都可以

使用特权

评论回复
9
香水城| | 2008-12-8 18:13 | 只看该作者

哈哈,7楼的注释更加清晰

俺那句话中的“解除读保护”是一个动作,而不是一个状态。


这个例子可以看出,要清晰准确地表达想法,让他人不会误解,不是一件容易的事情。

使用特权

评论回复
10
xzm0662|  楼主 | 2008-12-8 23:58 | 只看该作者

多谢了!搞定

列一下操作,希望对后来者有帮助。
iar 4.42A下建了个工程文件,选stm32 cpu.写个简单的程序,
#include "stm32f10x_lib.h"


void main(void)
{
    FLASH_Unlock();

            FLASH_ReadOutProtection(DISABLE);
            FLASH_Lock();
        
while(1);
}
把这个文件和stm32的库文件都加入工程,编译找不到头文件路径的话把路径加在工程设置里。
链接配置选个用ram的xcl文件。
然后,随便用stlink或jlink.下载运行。
重新上电,这时如果用memory窗口已经可以看到flash区域是ff了,呵呵。恢复了

多谢pheavecn 和香水城!

使用特权

评论回复
11
xzm0662|  楼主 | 2008-12-9 00:00 | 只看该作者

另,不需要跳boot0,仿真器可以直接下程序到0x20000000

使用特权

评论回复
12
ddllxxrr| | 2008-12-17 19:46 | 只看该作者

恩,没怎么明白,跟着顶下

使用特权

评论回复
13
fspeed| | 2008-12-17 20:56 | 只看该作者

我几天前试过的

接好USART1到电脑,用从ST网站下载的Flash Loader Demo就能解

使用特权

评论回复
14
渤海三叠浪| | 2009-4-2 14:19 | 只看该作者

以后可能用到

使用特权

评论回复
15
SLEET1986| | 2010-10-6 15:28 | 只看该作者
新手了解一下。。

使用特权

评论回复
16
whoareyou369| | 2010-10-7 07:26 | 只看该作者
新手学习一下。

使用特权

评论回复
17
清风过山岗| | 2010-10-7 08:42 | 只看该作者
芯片不小心被加密了,JTAG是联不上了;此时解决办法就是用ISP全芯擦除;擦除后就可以用了;
如果只是在用户程序中加了一些保护一类的,应该上电时不会进入用户程序(NXP的有相关的设置,STM的我不熟悉);直接在JTAG里面上电后擦掉FLASH应该可以的;

使用特权

评论回复
18
拿起书本| | 2011-2-27 23:50 | 只看该作者
学习中

使用特权

评论回复
19
dfsa| | 2011-2-28 16:28 | 只看该作者
学习一下

使用特权

评论回复
20
火箭球迷| | 2011-2-28 18:59 | 只看该作者
7楼的大侠还是英文版的

使用特权

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

本版积分规则

35

主题

163

帖子

0

粉丝