现象
使用J-Link烧录模组固件,出现可以读取和擦除,但是无法烧录问题,提示错误如下:
- ERROR: Programming failed @ address 0x08000080 (program error)
- End of flash programming
- ERROR: Program failed
读出来的时候这个地址数据是全0。使用J-link中的Unsecure Chip也不行。
使用STM32CubeProgrammer可以连接,但是却无法擦除,错误提示如下:
Error: Mass erase operation failed.Please verify flash protection
原因
猜测是因为意外的擦除或烧录导致选项字节出现问题。
解决
出现问题时,STM32CubeProgrammer连接后可以读取选项字节:
选项字节中的Read Out Protection一栏中RDP这个时候读出来会是AA,先改成BB,点击应用,然后再改回AA,点击应用,这个时候就可以烧录。
或者使用STM32 ST-LINK Utility软件操作也可以。