本帖最后由 SUPER_CRJ 于 2019-10-18 13:45 编辑
自己通过SWD编写的下载器,存在一个问题:
就是STM32F1解除读保护需要重新断电。(因为这个断电多了一个步骤体验非常不好。当然:除非不做写入的检验)
原因是根据:
STM32F1xx闪存编程手册中:明确提到(图片后面有:可以使用Bootloader关闭读保护不用断电,但是Bootloader不是SWD能启动的,还要手工操作Boot引脚。):
进行复位(上电复位)以重新加载选择字节(和新的RDP代码),此时读保护被解除
Reset the device (POR Reset) to reload the option bytes (and the new RDP code) and, to disable the read protection.
但是测试了:jlink/STLINK加保护和编程,是不需要断电的(难道:jlink/STlink在这种情况下也没有读出Flash检验?)。(而且有其它的下载器也不需要断电操作(有的下载器是内部加了一个LDO实现断电。))具体的时序还没有测试。本来想在手册上找找原因的,但是找了几天,一直没有头绪。
如果不断电,其实也可以写,但是无法读出Flash进行比对。
1571376986(1).jpg (58.75 KB, 下载次数: 0)
下载附件
2019-10-18 13:37 上传
另外附件为手册:
STM32F10xxx闪存编程参考手册.pdf
(464.42 KB, 下载次数: 2)
2019-10-18 13:40 上传
点击文件名下载附件
PM0042---STM32F10xxx-Flash-Programming-V5.0-(Feb-2009).pdf
(237.12 KB, 下载次数: 3)
2019-10-18 13:40 上传
点击文件名下载附件
最后看jlink操作的指令都是M3内核中的操作。
应该是系统复位就行了,包括所有复位。
估计不是,因为我软件代码中最后是增加了内核复位的。
我今天等会用个开发板测试一下。
昨天用jlink截取的,解Flash的读保护,看懂了前面几百条,后面还有几百个指令是操作M3内核的,看不懂,今天用STLINK看看。
一周热门 更多>