问题描述:
调试Flash读保护时,Jlink不能下载程序。
调试flash读保护时,点了jlink中Unsecure chip 后 能连接、能擦出芯片,但不能下载程序和读芯片,请问怎样解决···
binglin:
J-Flase ARM里下载程序,芯片型号不对是写不进程序的。
检查芯片型号是否配置正确
菜单:Options->CPU页。
在配置CPU时,一定要在Device这项里配置CPU型号,不能在Core这项里配置。
linew:
CPU型号已选对,具体情况是我下载了一个读保护的程序,接着点了jlink-》target-》Unsecure chip ,接着点了擦除芯片,之后就不能读出芯片和烧程序了,但依然可以connect 和 erase chip ; 点 Read back 和 program 时 出现弹出错误提示 PC=··· ,R0=···· R1=···
Jlink出错
- 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
binglin:
你这种现象我上个月也遇到过,当时也是用V4.08l的驱动。
你换更换J-LINK的驱动程序,不要用V4.08l版。
linew:
一开始用4.08, 之后我用4.11也是出现同样情况
binglin:
试试用4.04a版本的,这个版本坛子上的下载,你找一下。
linew:
应该不行,我用ISP 读芯片,提示芯片已加密,无法读取信息;还有用ST 的Flash loader demo 串口提示芯片加了读保护,当点解除读保护,提示命令无效
binglin:
配置读保护是可以清除的,我在写入到应用板时都配置的读保护,很多时候修改了程序后要更新程序(要解除读保护更新程序),经无数次实操圾明是没有问题的。
ISP也经常用,它在仿真器不能正常仿真目标板时,当用仿真器也无法解锁芯片时,,ISP是最后的也就是最可靠的解锁工具。
linew:
问题已解决,可能是在jlink那里点了Unsecure chip,所以用ISP无法解锁了;
在RAM中运行
int main(void)
{
RCC_DeInit();
FLASH_Unlock();
FLASH_ReadOutProtection(DISABLE);
}
问题解决了。
linew:
请问binglin stm32最有效的加密或保护方法是哪种,读保护算不算呢
ID加密 或加密算法怎样
binglin:
“问题已解决,可能是在jlink那里点了Unsecure chip,所以用ISP无法解锁了;在RAM中运行
int main(void)
{
RCC_DeInit();
FLASH_Unlock();
FLASH_ReadOutProtection(DISABLE);
}
问题解决了。”在JLINK里捃行了Unsecure chip,ISP同样可以解开的,其实 FLASH_Unlock(); FLASH_ReadOutProtection(DISABLE); 其实与ISP里面的解锁代码是一样的。
binglin:
“请问binglin stm32最有效的加密或保护方法是哪种,读保护算不算呢ID加密 或加密算法怎样”读保护算就是加密了。
wqb202:
有个问题想请教一下binglin ,如果用secure chip加密,断电重上电后,还可以重新用Jlink重新连接芯片吗?如果能那么是直接下载程序会清除读保护吗?还是在先UNsecure chip才能再下载!现在手上没有开发板,只有在调试项目的板子,没有引出COM口ISP,所以不敢试呀!
binglin:
用secure chip加密,断电重上电后,Jlink当然可以重新连接芯片,如果不能又怎么还能够执行Unsecure chip呢?secure chip加密后,断电或不断电重启都是肯定可以重新连接的。
如果在secure chip加密要再次下载,则先连接芯片然后执行UNsecure chip才能再下载,我一般是执行UNsecure chip后直接按F7(自动模式)将程序写进去。
注:执行UNsecure chip,JLINK与目标板会自动断开,直接按F7(自动模式)执行时,JLINK会自动联接、擦除芯片、写入及校验以及执行secure chip,这些操作是否全部执行由你的配置决定。