如今電子產(chǎn)品市場(chǎng)風(fēng)云變幻,暗流洶涌,有沒有小伙伴遇到自己費(fèi)了大力氣寫出來(lái)的代碼,很容易就被別人“借鑒”了,真的是讓聞?wù)邆?,聽著落淚啊。
那有沒有什么方法可以防止別人將你的代碼從MCU讀出來(lái)呢?答案當(dāng)然是肯定的,GD32 MCU全系列都有“讀保護(hù)”功能,我們以GD32F30x系列為例,來(lái)看下用戶手冊(cè)中的選項(xiàng)字節(jié)的介紹:

我們可以看到,地址0x1fff f800存儲(chǔ)的是安全保護(hù)值,也就是我們所說的讀保護(hù)。當(dāng)該值為0xA5的時(shí)候,MCU處于無(wú)保護(hù)狀態(tài),此時(shí)可以通過Jlink、GDlink配合一些上位機(jī)比如Jflash、GDlink Programmer就可以讀出,當(dāng)然,通過串口ISP也可以讀出代碼;當(dāng)讀保護(hù)值為非0xA5時(shí),就說明MCU已經(jīng)進(jìn)入讀保護(hù)狀態(tài)了,此時(shí)除了MCU自己的程序可以訪問flash外,其他方式的片上flash訪問都是無(wú)效的。所以,讀保護(hù)加上后小伙伴們就可以不用擔(dān)心代碼被別人讀出來(lái)了。
所以加讀保護(hù)和解除讀保護(hù)的操作就很好理解了,實(shí)際上就是對(duì)選項(xiàng)字節(jié)進(jìn)行操作,將0x1fff f800地址的值設(shè)置為保護(hù)值/非保護(hù)值就可以了。
這時(shí)候有小伙伴就會(huì)問了,那既然讀保護(hù)狀態(tài)可以解除,別人拿到我的芯片,先解除保護(hù),再讀出來(lái)不就可以了?實(shí)際上這個(gè)問題完全不用擔(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ù)就是沒有用的“空”數(shù)據(jù)啦。
小伙伴現(xiàn)在知道什么是讀保護(hù)了嗎?我們后面也會(huì)介紹加讀保護(hù)和去除讀保護(hù)的方法哦。
-
單片機(jī)
+關(guān)注
關(guān)注
6078文章
45593瀏覽量
674012 -
mcu
+關(guān)注
關(guān)注
147文章
19160瀏覽量
404833 -
GD32
+關(guān)注
關(guān)注
7文章
434瀏覽量
27656
發(fā)布評(píng)論請(qǐng)先 登錄
GD32 MCU 入門教程】GD32 MCU 常見外設(shè)介紹(12)FMC 模塊介紹
GD32的MCU介紹
JFlash解除GD32讀保護(hù)的方法
《GD32 MCU原理及固件庫(kù)開發(fā)指南》 + 初讀感悟
兆易創(chuàng)新GD32 MCU選型手冊(cè),適用于GD32全系列MCU
不同型號(hào)的GD32 MCU如何區(qū)分?
【GD32 MCU 入門教程】GD32 MCU 常見外設(shè)介紹(14)RTC 模塊介紹
【GD32 MCU入門教程】GD32 MCU GPIO 結(jié)構(gòu)與使用注意事項(xiàng)
什么是GD32 MCU讀保護(hù)?
評(píng)論