Jlink可以对CM3的芯片进行加/去读保护,比如去除读保护,可以用Unsecured chip或者STM32 Unlock,但是对于CM0芯片无论是加还是去除读保护都是无效的。但是通过STLink的OptionByte操作却可以,但是出现特别奇怪的是,程序在Run的时候,STlinkV2竟然也无法操作CM0,只能先用Jlink对其进行Erase,再用STLink进行去保护操作。在Seeger官网没有找到售后的mail,与ST的FAE/微雪的FAE联系上,均未果。
目前通读了Flash这章节,对比两个架构,主要的不同在于CM3只需要对Flash_KEY按顺序写入即可对Flash进行操作,但是CM0的芯片除此之外,还需要对OptionByte区域进行写入KEY值,才能对Optionbyte进行操作。因此推测Jlink在操作Optionbyte时,只对FLASH写了Unlock KEY,并没有对OPtionByte写入Unlock KEY,所以操作无效。用STM32 Unlock时,显示Unknow device.尝试自定义对FLASH进行操作,无果。希望Segger能注意到这个问题,并尽快修正这个bug。