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

bluejb119   2008-12-8 16:26 楼主
调用了库里的读保护函数,结果,后来stlink2仿真器就连不上了,Jlink下载完就报错。
是不是只能用ISP擦了?

回复评论 (22)

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

                                  
点赞  2008-12-8 16:30

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

                                 只是听说过,具体怎么做啊?是不是要写个小程序擦全部flash?具体怎么做?有人做过吗?
点赞  2008-12-8 16:36

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

                                 当然要自己写个小程序。
点赞  2008-12-8 16:48

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

                                 擦保护之前是不是要擦全片?
点赞  2008-12-8 16:57

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

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

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

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.

解除读保护之前,就会自动擦除全片,之后才有解除读保护的动作。
这点是很重要的,保证保护有效。
点赞  2008-12-8 18:03

如果电路板支持boot跳线

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

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

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


这个例子可以看出,要清晰准确地表达想法,让他人不会误解,不是一件容易的事情。
点赞  2008-12-8 18:13

多谢了!搞定

列一下操作,希望对后来者有帮助。
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 和版主!
点赞  2008-12-8 23:58

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

                                  
点赞  2008-12-9 00:00

不错!顶下。

                                  
点赞  2008-12-16 16:57

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

                                  
点赞  2008-12-17 19:46

我几天前试过的

                                 接好USART1到电脑,用从ST网站下载的Flash Loader Demo就能解
点赞  2008-12-17 20:56

以后可能用到

                                  
点赞  2009-4-2 14:19
                                 新手了解一下。。
点赞  2010-10-6 15:28
                                 新手学习一下。
点赞  2010-10-7 07:26
芯片不小心被加密了,JTAG是联不上了;此时解决办法就是用ISP全芯擦除;擦除后就可以用了;
如果只是在用户程序中加了一些保护一类的,应该上电时不会进入用户程序(NXP的有相关的设置,STM的我不熟悉);直接在JTAG里面上电后擦掉FLASH应该可以的;
点赞  2010-10-7 08:42
                                 学习中
点赞  2011-2-27 23:50
                                 学习一下
点赞  2011-2-28 16:28
12下一页
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复