gd32f105的程序自带有读保护,用st-link Utility解除读保护后在写入芯片后就运行不起来怎么解决?加读保护就可以开机运行,不加读保护就不开机。
解除读保护后需要重新编程吧。
你好,你的这个问题肯定在程序的源码中有判断读保护的代码,你没有源码的话估计直接很难直接使用,你得找到源码中那部分读保护的代码给屏蔽,重新编译下载,没有源代码直接烧bin的话估计跑不起来。
引用chatGPT作答,针对您的问题,首先需要明确一个概念:在ST公司的MCU中,读保护(RDP)和写保护(WRP)是两个不同的保护机制。
读保护(RDP)是一种硬件保护机制,用于防止未经授权的读取芯片的内部Flash存储器内容。一旦启用,RDP就会锁定Flash存储器,禁止任何读取操作,包括读取程序代码、读取配置寄存器等。因此,如果您已经解除了芯片的读保护,那么无法从芯片中读取程序代码,这也就导致了无法正常启动的问题。
解决方案:
1.检查您是否已经正确地解除了芯片的读保护。可以使用ST-Link Utility或者其他支持读保护解除的工具进行检查。
2.如果已经解除了读保护,但是程序无法正常启动,可能是由于在解除读保护的过程中,对芯片的某些设置进行了更改,导致程序无法正常启动。您可以将芯片的配置寄存器和选项字节重新配置为默认值,并重新烧写程序代码。
3.如果以上两种方法均无法解决问题,您可以尝试使用官方提供的固件更新程序对芯片进行固件更新。如果固件更新失败,那么可能是由于硬件损坏等原因导致芯片无法正常启动,您需要联系芯片供应商进行更换或维修。
需要注意的是,为了保护您的程序代码,建议您在生产环境下始终启用读保护机制,并妥善保管芯片的解锁密钥。