如今电子产品市场风云变幻,暗流汹涌,有没有小伙伴遇到自己费了大力气写出来的代码,很容易就被别人“借鉴”了,真的是让闻者伤心,听着落泪啊。
那有没有什么方法可以防止别人将你的代码从MCU读出来呢?答案当然是肯定的,GD32 MCU全系列都有“读保护”功能,我们以GD32F30x系列为例,来看下用户手册中的选项字节的介绍:
我们可以看到,地址0x1fff f800存储的是安全保护值,也就是我们所说的读保护。当该值为0xA5的时候,MCU处于无保护状态,此时可以通过Jlink、GDlink配合一些上位机比如Jflash、GDlink Programmer就可以读出,当然,通过串口ISP也可以读出代码;当读保护值为非0xA5时,就说明MCU已经进入读保护状态了,此时除了MCU自己的程序可以访问flash外,其他方式的片上flash访问都是无效的。所以,读保护加上后小伙伴们就可以不用担心代码被别人读出来了。
所以加读保护和解除读保护的操作就很好理解了,实际上就是对选项字节进行操作,将0x1fff f800地址的值设置为保护值/非保护值就可以了。
这时候有小伙伴就会问了,那既然读保护状态可以解除,别人拿到我的芯片,先解除保护,再读出来不就可以了?实际上这个问题完全不用担心,当MCU被加读保护后,MCU内部同时也给Flash上的数据增加了一个“自毁装置”,当有人对芯片进行解保护操作的时候,这个“自毁装置”就会将Flash上所有的数据都清空,这时候从芯片读出来的数据就是没有用的“空”数据啦。
小伙伴现在知道什么是读保护了吗?我们后面也会介绍加读保护和去除读保护的方法哦。
更多GD32 MCU相关咨询:https://www.gd32bbs.com/