如今電子產(chǎn)品市場(chǎng)風(fēng)云變幻,暗流洶涌,有沒(méi)有小伙伴遇到自己費(fèi)了大力氣寫出來(lái)的代碼,很容易就被別人“借鑒”了,真的是讓聞?wù)邆?,?tīng)著落淚啊。
那有沒(méi)有什么方法可以防止別人將你的代碼從MCU讀出來(lái)呢?答案當(dāng)然是肯定的,GD32 MCU全系列都有“讀保護(hù)”功能,我們以GD32F30x系列為例,來(lái)看下用戶手冊(cè)中的選項(xiàng)字節(jié)的介紹:
我們可以看到,地址0x1fff f800存儲(chǔ)的是安全保護(hù)值,也就是我們所說(shuō)的讀保護(hù)。當(dāng)該值為0xA5的時(shí)候,MCU處于無(wú)保護(hù)狀態(tài),此時(shí)可以通過(guò)Jlink、GDlink配合一些上位機(jī)比如Jflash、GDlink Programmer就可以讀出,當(dāng)然,通過(guò)串口ISP也可以讀出代碼;當(dāng)讀保護(hù)值為非0xA5時(shí),就說(shuō)明MCU已經(jīng)進(jìn)入讀保護(hù)狀態(tài)了,此時(shí)除了MCU自己的程序可以訪問(wèn)flash外,其他方式的片上flash訪問(wèn)都是無(wú)效的。所以,讀保護(hù)加上后小伙伴們就可以不用擔(dān)心代碼被別人讀出來(lái)了。
所以加讀保護(hù)和解除讀保護(hù)的操作就很好理解了,實(shí)際上就是對(duì)選項(xiàng)字節(jié)進(jìn)行操作,將0x1fff f800地址的值設(shè)置為保護(hù)值/非保護(hù)值就可以了。
這時(shí)候有小伙伴就會(huì)問(wèn)了,那既然讀保護(hù)狀態(tài)可以解除,別人拿到我的芯片,先解除保護(hù),再讀出來(lái)不就可以了?實(shí)際上這個(gè)問(wèn)題完全不用擔(dān)心,當(dāng)MCU被加讀保護(hù)后,MCU內(nèi)部同時(shí)也給Flash上的數(shù)據(jù)增加了一個(gè)“自毀裝置”,當(dāng)有人對(duì)芯片進(jìn)行解保護(hù)操作的時(shí)候,這個(gè)“自毀裝置”就會(huì)將Flash上所有的數(shù)據(jù)都清空,這時(shí)候從芯片讀出來(lái)的數(shù)據(jù)就是沒(méi)有用的“空”數(shù)據(jù)啦。
小伙伴現(xiàn)在知道什么是讀保護(hù)了嗎?我們后面也會(huì)介紹加讀保護(hù)和去除讀保護(hù)的方法哦。
-
單片機(jī)
+關(guān)注
關(guān)注
6037文章
44558瀏覽量
635408 -
mcu
+關(guān)注
關(guān)注
146文章
17149瀏覽量
351225 -
GD32
+關(guān)注
關(guān)注
7文章
403瀏覽量
24357
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論