那曲檬骨新材料有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

STM32加密問題:怎樣預置一段Flash讀保護和清除讀保護的程序

工程師鄧生 ? 來源:未知 ? 作者:劉芹 ? 2023-10-29 17:24 ? 次閱讀

STM32加密問題:怎樣預置一段Flash讀保護和清除讀保護的程序

在STM32加密方案中,為了對芯片進行加密,我們需要加入讀保護功能。讀保護功能即使未經授權的人無法讀取芯片的Flash程序,在STM32芯片中,我們可以通過設置BFB2和BFB1位來對Flash進行保護。BFB2位用于讀保護和寫保護,其中1表示打開讀保護和寫保護,0表示關閉讀保護和寫保護;BFB1位用于寫保護,1表示打開寫保護,0表示關閉寫保護。在本文中,我們將討論如何預置一段Flash讀保護和清除讀保護的程序。

預置Flash讀保護程序:

我們首先需要在STM32中編寫一段Flash讀保護程序。該程序主要用于保護芯片的程序不被未經授權的人讀取。以下是預置Flash讀保護程序的步驟:

1.選擇合適的開發環境。建議使用Keil MDK Arm開發環境。

2.創建一個新的工程并定義一個main函數。可以按照以下代碼定義main函數:

int main(void) {
//對Flash進行讀保護
FLASH_OB_Unlock();
FLASH_OB_RDPConfig(OB_RDP_Level_2);
FLASH_OB_Launch();
FLASH_OB_Lock();

//程序執行完畢后重啟
NVIC_SystemReset();

while(1);

}

在此代碼中,我們使用FLASH_OB_RDPConfig函數來設置讀保護級別。OB_RDP_Level_2表示設置為級別2,也就是最高級別的讀保護。FLASH_OB_Launch函數用于啟動Flash設置操作,然后使用FLASH_OB_Lock函數鎖定Flash。

3.編譯并下載程序到STM32芯片。完成以上步驟后,芯片現在將受到讀保護。

預置Flash清除讀保護程序:

如果我們需要更改STM32芯片的Flash保護設置,我們需要先清除讀保護。以下是預置Flash清除讀保護程序的步驟:

1.創建一個新的工程并定義一個main函數。可以按照以下代碼定義main函數:

int main(void) {
//對Flash進行清除讀保護
FLASH_OB_Unlock();
FLASH_OB_RDPConfig(OB_RDP_Level_0);
FLASH_OB_Launch();
FLASH_OB_Lock();

//程序執行完畢后重啟
NVIC_SystemReset();

while(1);

}

在此代碼中,我們使用FLASH_OB_RDPConfig函數將讀保護級別設置為0,這意味著芯片上的讀保護已被禁用。代碼還使用FLASH_OB_Launch函數和FLASH_OB_Lock函數鎖定Flash。

2.編譯并下載程序到STM32芯片。完成以上步驟后,讀保護已被禁用。

總結:

通過編寫預置Flash讀保護和清除讀保護程序,我們可以更有效地保障STM32芯片的安全性。需要注意的是,在進行這些操作時,需要仔細檢查代碼,確保程序正確地執行了讀保護和清除讀保護動作,并且不會導致芯片的其他問題。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • FlaSh
    +關注

    關注

    10

    文章

    1642

    瀏覽量

    148677
  • STM32
    +關注

    關注

    2272

    文章

    10924

    瀏覽量

    357583
  • 芯片加密
    +關注

    關注

    0

    文章

    8

    瀏覽量

    9414
收藏 人收藏

    評論

    相關推薦

    相間距離保護一段保護范圍介紹

    引言 電力系統是現代社會的重要基礎設施,其安全穩定運行對于保障國民經濟和人民生活具有重要意義。在電力系統中,相間距離保護種重要的保護方式,其主要作用是保護電力系統的相間故障。
    的頭像 發表于 08-05 10:11 ?1059次閱讀

    BLUENRG-LP開啟保護的問題求解

    樣的結果。 2.嘗試在程序中通過軟件操作FLASH寄存器開啟保護,結果也是樣,開啟后,復位
    發表于 05-29 06:20

    STM32G0如果只執行寫保護編程時,先擦除選項字節,此時保護字節是FF,那是不是就讀保護生效了?

    如果只執行寫保護編程時,先擦除選項字節,此時保護字節是FF,那是不是就讀保護生效了?程序再修改為A5,會不會就引起
    發表于 05-20 08:17

    STM32F1 IAP操作保護選項字節設置,APP使用系統復位跳轉后無法運行IAP的原因?

    最近調試程序,是基于STM32F1做的IAP,升級前后需要修改選項字節,FLASH_EraseOptionBytes函數內OB->RDP=RDP_Key語句實現
    發表于 05-13 08:09

    求助,關于STM32F302_FLASH保護的問題求解

    查看好些STM32F302資料,想通過FLASH保護來實現加密功能,添加以下代碼后,沒能實現預期功能: #define OB_RDP_L
    發表于 05-08 06:26

    STM32是如何從flash讀取指令并執行的?

    [td]因為STM32H750自帶的FLASH太小,而工程文件超過這個flash的容量,所以需要外掛flash來存
    發表于 04-24 07:09

    STM8S003F3的保護可以通過程序打開嗎?

    STM8S003F3的保護可以通過程序打開嗎
    發表于 04-17 06:43

    請問STM32怎么在代碼中把保護加進去呢?

    STM32怎么在代碼中把保護加進去呢?
    發表于 04-16 06:28

    STM32F7開啟保護Level2后,還能擦除重新燒錄程序嗎?

    STM32F7開啟保護Level2之后,還能擦除重新燒錄程序嗎?
    發表于 04-01 07:38

    STM32F030F4P6下載程序時提示Unable to run verification,設置保護失敗的原因?

    新買的芯片STM32F030F4P6,測試時使用ST LINK可以正常連接讀取FLASH,下載程序時提示Unable to run verification!然后嘗試設置
    發表于 03-27 06:37

    STM32G0加保護后為什么就連不上了?

    STM32G0 加保護 百分之十芯片 發現再次連接不上用Jlink STLink都不行 怎么可以連接上
    發表于 03-25 06:27

    stm32誤設置RDP保護LV2 chip protection怎么恢復啊?

    stm32 誤設置 RDP 保護LV2chip protection 怎么恢復
    發表于 03-19 08:29

    STM32 FLASH模擬EEPROM,燒寫程序時設置為保護Level-2級別,還能正常讀寫這個模擬的EEPROM嗎?

    STM32系列內部FLASH模擬EEPROM,燒寫程序時設置為保護Level-2級別,還能正常讀寫這個模擬的EEPROM嗎?
    發表于 03-13 07:34

    STM32F407串口IDLE標識被自動清除是為什么呢?

    我現在有一段STM32F407的程序,我寫了串口收發的程序,但我發現每次stm32接收完數據后IDLE標識被自動
    發表于 03-07 07:38

    PSoC6怎么設置Flash保護防止被外部讀取?

    PSoC6 怎么設置Flash保護,防止被外部讀取,最好是通過軟件設置。
    發表于 02-18 08:08
    德州扑克冠军| 属蛇做生意坐向| 大发888casino下载| 百家乐官网最新心得| 百家乐单注技巧| 欧洲三大博彩公司| 百家乐官网稳赢战术技巧| 威尼斯人娱乐城备用网| 百家乐官网筹码方| 百家乐筹码托盘| 百家乐官网遥控洗牌器| 高级百家乐桌布| 波音百家乐官网自动投注| 百家乐官网一拖三| 旅百家乐赢钱律| 百家乐官网www| 百家乐官网网址多少| 大亨百家乐游戏| 京城娱乐城| 赌百家乐心里技巧| 上栗县| 百家乐明灯| 至尊百家乐官网qvod| 汉百家乐春| 百家乐官网皇室百家乐官网| 真人游戏机| 如何胜百家乐的玩法技巧和规则 | 百家乐玩法官网| 做生意怎么看风水| 百家乐官网开户优惠多的平台是哪家 | 威尼斯人娱乐城易博| 百家乐出千原理| 百家乐官网光纤洗牌机如何做弊| 新大发888娱乐城| 上海玩百家乐算不算违法| 百家乐官网喜牛| 百家乐官网境外赌博| 大发888游戏平台88| 百家乐2号死机| 24山的丑方位| 百家乐官网鞋业|