001dd怎么打不开:STM32调试过程中,读保护,写保护造成的无法擦写芯片问题的解决办法和相关讨论 - STM...
来源:百度文库 编辑:中财网 时间:2024/04/29 12:20:59
[STM32] STM32调试过程中,读保护,写保护造成的无法擦写芯片问题的解决办法和相关讨论 [复制链接]
- 发短消息
- 加为好友
- 最后登录
- 2011-4-20
- 布袋
- 0
- 铜板
- 125
- 注册时间
- 2010-1-8
- 阅读权限
- 200
- 精华
- 6
- 积分
- 0
- 帖子
- 92
荣誉指导员
1# admin调试Flash读保护时,Jlink不能下载程序
发布: 2010-1-20 22:54 | 作者: linew | 来源: StmFans思蜕盟 OPELC 自由电子联盟
调试flash读保护时,点了jlink中Unsecure chip 后 能连接、能擦出芯片,但不能下载程序和读芯片,请问怎样解决···
binglin (2010-1-20 22:59:47)
J-Flase ARM里下载程序,芯片型号不对是写不进程序的。
检查芯片型号是否配置正确
菜单:Options->CPU页。
截图15.jpg
在配置CPU时,一定要在Device这项里配置CPU型号,不能在Core这项里配置。
linew (2010-1-20 23:46:31)
CPU型号已选对,具体情况是我下载了一个读保护的程序,接着点了jlink-》target-》Unsecure chip ,接着点了擦除芯片,之后就不能读出芯片和烧程序了,但依然可以connect 和 erase chip ; 点 Read back 和 program 时 出现弹出错误提示 PC=··· ,R0=···· R1=···(明天附上图片)
linew (2010-1-21 09:10:56)
Jlink出错
未命名.JPG
linew (2010-1-21 09:11:44)
- Connecting ...
- Connected successfully
- 128 sectors, 1 range, 0x8000000 - 0x803FFFF
- RAM tested O.K.
- ERROR: PC of target system has unexpected value after blank checking. (PC = 0xFFFFFFFE)!
---------------------------------------------------------------------- Registers -------------------------------------------------------------------------------------
PC = FFFFFFFE
Current: R0 = 0000B800, R1 = 08000000, R2 = 00008000, R3 = 0000B800
R4 = 20000000, R5 = 0000B7FC, R6 = 000000FF, R7 = 20000133
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
- ERROR: Failed to read back target memory
Disconnecting ...
- Disconnected
linew (2010-1-21 13:30:54)
binglin在吗
binglin (2010-1-21 14:06:46)
你这种现象我上个月也遇到过,当时也是用V4.08l的驱动。
你换更换J-LINK的驱动程序,不要用V4.08l版。
linew (2010-1-21 14:16:32)
一开始用4.08, 之后我用4.11也是出现同样情况
binglin (2010-1-21 17:12:17)
试试用4.04a版本的,这个版本坛子上的下载,你找一下。
linew (2010-1-22 11:24:42)
应该不行,我用ISP 读芯片,提示芯片已加密,无法读取信息;还有用ST 的Flash loader demo 串口提示芯片加了读保护,当点解除读保护,提示命令无效
binglin (2010-1-22 11:33:31)
配置读保护是可以清除的,我在写入到应用板时都配置的读保护,很多时候修改了程序后要更新程序(要解除读保护更新程序),经无数次实操圾明是没有问题的。
ISP也经常用,它在仿真器不能正常仿真目标板时,当用仿真器也无法解锁芯片时,,ISP是最后的也就是最可靠的解锁工具。
linew (2010-1-22 13:03:58)
问题已解决,可能是在jlink那里点了Unsecure chip,所以用ISP无法解锁了;
在RAM中运行
int main(void)
{
RCC_DeInit();
FLASH_Unlock();
FLASH_ReadOutProtection(DISABLE);
}
问题解决了。
参考链接:http://www.stmsky.com/bbs/viewth ... B%E4%B8%93%E8%B4%B4
linew (2010-1-22 13:07:11)
请问binglin stm32最有效的加密或保护方法是哪种,读保护算不算呢
ID加密 或加密算法怎样
binglin (2010-1-22 14:12:33)
QUOTE:
问题已解决,可能是在jlink那里点了Unsecure chip,所以用ISP无法解锁了;
在RAM中运行
int main(void)
{
RCC_DeInit();
FLASH_Unlock();
FLASH_ReadOutProtection(DISABLE);
}
问题解决了。
参考链接:htt ...
linew 发表于 2010-1-22 13:03
在JLINK里捃行了Unsecure chip,ISP同样可以解开的,其实 “FLASH_Unlock(); FLASH_ReadOutProtection(DISABLE); ”其实与ISP里面的解锁代码是一样的。
binglin (2010-1-22 14:15:28)
QUOTE:
请问binglin stm32最有效的加密或保护方法是哪种,读保护算不算呢
ID加密 或加密算法怎样
linew 发表于 2010-1-22 13:07
读保护算就是加密了。
wqb202 (2010-1-23 00:39:46)
有个问题想请教一下binglin ,如果用secure chip加密,断电重上电后,还可以重新用Jlink重新连接芯片吗?如果能那么是直接下载程序会清除读保护吗?还是在先UNsecure chip才能再下载!现在手上没有开发板,只有在调试项目的板子,没有引出COM口ISP,所以不敢试呀!
binglin (2010-1-23 13:37:53)
用secure chip加密,断电重上电后,Jlink当然可以重新连接芯片,如果不能又怎么还能够执行Unsecure chip呢?secure chip加密后,断电或不断电重启都是肯定可以重新连接的。
如果在secure chip加密要再次下载,则先连接芯片然后执行UNsecure chip才能再下载,我一般是执行UNsecure chip后直接按F7(自动模式)将程序写进去。
注:执行UNsecure chip,JLINK与目标板会自动断开,直接按F7(自动模式)执行时,JLINK会自动联接、擦除芯片、写入及校验以及执行secure chip,这些操作是否全部执行由你的配置决定。
举报 返回顶部
- 发短消息
- 加为好友
- 最后登录
- 2011-4-20
- 布袋
- 0
- 铜板
- 125
- 注册时间
- 2010-1-8
- 阅读权限
- 200
- 精华
- 6
- 积分
- 0
- 帖子
- 92
荣誉指导员
2# admin 发表于 2010-12-2 23:13 |只看该作者 STM32对内部Flash的内容有专门的保护措施转自:21ic 作者:香水城
所有STM32的芯片都提供对Flash的保护,防止对Flash的非法访问——写保护和读保护。
读保护是作用于整个Flash存储区,一旦设置了Flash的读保护,内置的Flash存储区只能通过程序的正常执行才能读出,而不能通过下述任何一种方式读出:
通过调试器(JTAG或SWD)
从RAM中启动并执行的程序
写保护是以四页(1KB/页)Flash存储区为单位提供保护,对被保护的页实施编程或擦除操作将不被执行,同时产生操作错误标志。
以下是一个简单的小结:
读保护 写保护 对Flash的操作功能
有效 有效 CPU只能读;禁止调试和非法访问
有效 无效 CPU可以读写;禁止调试和非法访问;页0~3为写保护
无效 有效 CPU可读;允许调试和非法访问
无效 无效 CPU可以读写;允许调试和非法访问
点评回复 引用
举报 返回顶部
- 发短消息
- 加为好友
- 最后登录
- 2011-4-20
- 布袋
- 0
- 铜板
- 125
- 注册时间
- 2010-1-8
- 阅读权限
- 200
- 精华
- 6
- 积分
- 0
- 帖子
- 92
荣誉指导员
3# admin 发表于 2010-12-3 09:10 |只看该作者 下面的则是我的经历:我昨天晚上突然就发现芯片被读保护了,我没有设对应的选项啊,不知怎么回事.今天搞定之后发现还是时不时的会自己变成读保护,郁闷中.我板子的症状:
1. 无法有Keil上的jlink方式下载,无法擦除.
2. 使用官方的flash loader demo:第一步连接之后,出现红字,提示:the target is read protected. Please click "remove protection" to remove the protectiion. WARNING:when you click "Remove protection" the flash will be mass erased and all data will be lost.
然后是remove protection按钮.点击这个按钮:This command is not supported by the target.
解决办法:(我是看了多篇文章才知道原来Jlink arm有一个unsecure chip的命令的.)
1. 在一个类似于D:\Program Files\SEGGER\JLinkARM_V404a的目录下找到JFlashARM.exe.点击它.
2. options->project settings->production 勾选secure chip.这一项的作用是让你的另一个菜单项可以使用secure chip 和unsecure chip命令.
如图:
3. Target->connect.这里要先连接板子才可以进行unsecure chip 操作.连接的时候我一开始连接不上,很郁闷.但是不小心把启动方的跳线冒弄掉了,却发现可以了.也就是说,我是在从片bootloader的启动方式下(即使用串口的那种方式)连接上的.连接上之后.targer->unsecure chip.提示成功.
4.正常用Keil里的下载方式就可以下载了.
问题:
1.我现可以下载了,但是用串口方式依然提示读保护状态.而且无法去掉,即串口方式没有改变.
2.我用串口启动方式连接的jlink,这种方式可以连接jlink可以对芯片进行操作吗?以前记得是不能的.以前都是接上跳线冒才下载程序的.而我确定的确是可以用了,因为我现在安上跳线冒下载程序也能过了.
如果谁能回答我的问题,欢迎讨论一下.