如果你還不了解什么是STM32對其Flash的保護,那么今天就來給你講解一下什么是STM32的Flash保護!
01、什么是Flash?
STM32的FLASH組織結構,可能因不同系列、型號略有不同。比如大家熟悉的STM32F1中小容量一頁大小只有1K,而F1大容量一頁有2K。
還比如有些系列以扇區為最小單元,有的扇區最小16K,有的128K不等。
通常Flash包含幾大塊,這里以F40x為例:
主存儲器:用來存放用戶代碼或數據。
系統存儲器:用來存放出廠程序,一般是啟動程序代碼。
OTP 區域:一小段一次性可編程區域,供用戶存放特定的數據。
02、什么是STM32對內部Flash的保護?
所有的STM32芯片都會提供對Flash的保護,防止對Flash的非法訪問,分為:寫保護和讀保護。
1、讀保護就是大家通常說的“加密”,作用于整個Flash存儲區域。如果一旦設置了Flash的讀保護,那么單片機內置的Flash存儲區就只能通過程序的正常執行才能讀出,而不能通過下述方式讀出:
(1) 使用調試器(JTAG或SWD);
(2)從內存RAM中啟動并執行的程序;
2、寫保護是以四頁(1KB/頁) Flash存儲區為單位提供寫保護,如果對Flash設置了寫保護,那么就無法對Flash進行編程和擦除,而且同時產生操作錯誤標志。 當出現下圖標志的時候,就要檢查Flash是否被保護起來了。
03、讀保護與寫保護的相關效果
當設置讀保護與寫保護時,其效果如下圖所示:
1)flash保護的相關函數
2)STM32如何設置讀保護?
我們只需要在程序開頭加入“設置讀保護”的代碼就可以,這樣就可以在每次運行代碼的時候都檢查一下,如果沒有開的話就打開,如果開了就跳過。下面是讀保護的代碼:
當我們在程序的開頭執行了上面的代碼之后,使用j-link就不能在讀出程序了,這樣就實現了讀保護。
3)如何通過代碼解除Flash保護
解除讀保護可以下面代碼來進行解除,我們為了方便解鎖,可以設置一個按鍵。
來源:玩轉單片機與嵌入式
免責聲明:本文為轉載文章,轉載此文目的在于傳遞更多信息,版權歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權問題,請聯系小編進行處理
審核編輯 黃宇
-
FlaSh
+關注
關注
10文章
1642瀏覽量
148674 -
STM32
+關注
關注
2272文章
10923瀏覽量
357575
發布評論請先 登錄
相關推薦
STM32CUBEMX開發GD32F303讀保護與寫保護概述
![<b class='flag-5'>STM32</b>CUBEMX開發GD32F303<b class='flag-5'>讀</b><b class='flag-5'>保護</b>與<b class='flag-5'>寫保護</b>概述](https://file1.elecfans.com/web2/M00/8C/E8/wKgaomS04SCAew-7AAOLcJM0fZY978.jpg)
PIC單片機寫保護的問題
如何解決STM32芯片Flash寫保護導致無法下載程序,無法在線調試的問題
第51章 設置FLASH的讀寫保護及解除
![第51章 設置<b class='flag-5'>FLASH</b>的讀<b class='flag-5'>寫保護</b>及解除](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
STM32的Flash讀寫保護,SWD引腳鎖的各種解決辦法匯總(2020-03-10)
![<b class='flag-5'>STM32</b>的<b class='flag-5'>Flash</b>讀<b class='flag-5'>寫保護</b>,SWD引腳鎖的各種解決辦法匯總(2020-03-10)](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
如何解決STM32芯片Flash寫保護的問題
STM32CUBEMX開發GD32F303(2)----讀保護與寫保護
![<b class='flag-5'>STM32</b>CUBEMX開發GD32F303(2)----<b class='flag-5'>讀</b><b class='flag-5'>保護</b>與<b class='flag-5'>寫保護</b>](https://file.elecfans.com/web2/M00/7D/21/poYBAGN9kXWAQuCVAAKuW5rnAN0744.jpg)
評論