现象:芯片可以连接上,option byte看上去也正常,但是不管是烧录还是擦除都会报失败,日志如下,flash的内容很有规律且奇怪,内容如下:
擦除的时候报错如下: 13:47:54 : The elf loader Mass Erase function fails. 13:47:54 : Error occured during flash mass erase! 烧录的时候报错如下 15:04:36 : The elf loader Sector Erase function fails. 15:04:36 : Memory-Loader error 15:04:36 : Error occured during erase operation! 15:04:36 : Programming error @ 0x08000000! 15:04:38 : Programmed memory Checksum: 0x000F4100
原因:芯片上锁(level 1)之后,不经过改变option byte直接烧录,在烧录页面中选择自动解锁(如下图),导致option byte写入出错,从而出现上述现象。
解决方法:把Read Out Protection改成level 1,勾上PCROP_RDP,点击Apply,这个时候芯片将上锁(Read Out Protection变为level 1),接着再把Read Out Protection改成level 0,其他选项不动,点击Apply解锁就可以恢复了,如下图:
总结:这个现象目前在STM32G070和STM32G030上都出现过,其他芯片如果有类似现象可以参考这个解决方法试试。 以下是不会出问题的正确烧录方法: 1、 连接好芯片之后先点击Target->Option byte,把Read Out Protection改成level 0,点击Apply解锁:
2、 然后再点击烧录按钮进行烧录:
转载请标明出处!
|