STM32對內部Flash的保護措施

2021-07-07 06:14:07 字數 884 閱讀 2967

1、stm32對內部flash的保護措施  

所有stm32的晶元都提供對flash的保護,防止對flash的非法訪問 - 寫保護和讀保護。 

1)、讀保護即大家通常說的「加密」,是作用於整個flash儲存區域。一旦設定了flash的讀保護,內建的flash儲存區只能通過程式的正常執行才能讀出,而不能通過下述任何一種方式讀出: 

通過偵錯程式(jtag或swd); 

從ram中啟動並執行的程式; 

2)、寫保護是以四頁(1kb/頁) flash儲存區為單位提供寫保護,對被保護的頁實施程式設計或擦除操作將不被執行,同時產生操作錯誤標誌。   

讀與寫設定的效果見下表: 

讀保護 寫保護      對flash的操作功能 

有效 有效 cpu只能讀,禁止除錯和非法訪問。 

有效 無效 cpu可以讀寫,禁止除錯和非法訪問,頁0~3為寫保護。 

無效 有效 cpu可讀,允許除錯和非法訪問。 

無效 無效 cpu可以讀寫,允許除錯和非法訪問。 

2、當flash讀保護生效時,cpu執行程式可以讀受保護的flash區,但存在兩個例外情況: 

1)、除錯執行程式時; 

2)、從ram啟動並執行程式時 

stm32還提供了乙個特別的保護,即對flash儲存區施加讀保護後,即使沒有啟用寫保護,flash的第 0 ~ 3 頁也將處於寫保護狀態,這是為了防止修改復位或中斷向量而跳轉到ram區執行非法程式**。 

3、flash保護相關函式 

flash_unlock();   //flash解鎖 

flash_readoutprotection(disable);  //flash讀保護禁止   

flash_readoutprotection(enable);   //flash讀保護允許

STM32對內部Flash的保護措施

1 stm32對內部flash的保護措施 所有stm32的晶元都提供對flash的保護,防止對flash的非法訪問 寫保護和讀保護。1 讀保護即大家通常說的 加密 是作用於整個flash儲存區域。一旦設定了flash的讀保護,內建的flash儲存區只能通過程式的正常執行才能讀出,而不能通過下述任何一...

stm32 讀寫內部Flash

stm32的flash分為主儲存塊和資訊塊。主儲存塊用於儲存具體的程式 和使用者資料,資訊塊用於負責由stm32出廠是放置2kb的啟動程式 bootloader 和512b的使用者配置資訊區。主儲存塊是以頁為單位劃分的,一頁大小為1kb。範圍為從位址0x08000000開始的128kb內。對flas...

STM32 讀寫內部Flash

flash模組組織 儲存器被組織為程式儲存器模組,資料eeprom模組和資訊塊。程式儲存器塊分為4 kb的扇區,每個扇區都是進一步分成16頁,每頁256位元組。該操作用於擦除程式儲存器中的頁面 64個字 要做到這一點 解鎖flash pecr暫存器 1.將pekey1 0x89abcdef寫入程式設...