久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2843|回復: 0
打印 上一主題 下一主題
收起左側

STM32對芯片啟動讀保護,實現加密(詳解)

[復制鏈接]
跳轉到指定樓層
樓主
STM32可以對存儲在flash上的程序進行讀保護.
•    啟動讀保護后,用戶就不能再讀寫程序了.
•    所以,在燒寫程序之前,需要程序調用關閉讀保護.關閉讀保護后,會自動清空flash上的程序

頭文件位于:#include "stm32f10x_flash.h"

啟動保護,用在main()函數初始化時調用:

void Set_Protect(void) //啟動保護
{
  if(FLASH_GetReadOutProtectionStatus() != SET)
  {
    FLASH_Unlock(); //解鎖  
    FLASH_ReadOutProtection(ENABLE);
    FLASH_Lock();//上鎖
  }
}

注意:
當代碼第一次調用Set_Protect()函數啟動讀保護時。
期間不能再次調用Off_Protect()函數關閉讀保護,需要重新斷電才能關閉讀保護(因為Flash狀態啟動讀保護后,不能立即設置Status=1)

關閉讀保護,在串口接收某個有效數據或按下某個按鍵時,調用:

void Off_Protect(void) //關閉保護
{
  if(FLASH_GetReadOutProtectionStatus() != RESET)
  {
    FLASH_Unlock(); //不解鎖FALSH也可設置讀保護
    FLASH_ReadOutProtection(DISABLE);
    FLASH_Lock();//上鎖
  }
}


運行測試
1.第一步,下載程序

2.下載成功后,再次燒寫程序,校驗是否啟動讀保護(因為啟動讀保護后,不能進行讀寫程序了)
  
3.通過ST-LINK Utility工具嘗試連接芯片,發現確實不能讀數據了

然后只要代碼調用Off_Protect()函數,便可以取消保護了

oid SysLockProtectedProc(u8 nType)
{
        //設置讀保護:
        if (nType == 0x01)
        {
                if (FLASH_OB_GetRDP() != SET)
                {
                        FLASH_Unlock();

                        FLASH_OB_Unlock();

                        FLASH_ClearFlag(FLASH_FLAG_EOP | FLASH_FLAG_PGERR | FLASH_FLAG_WRPERR);

                        FLASH_OB_RDPConfig(OB_RDP_Level_1);
                        FLASH_OB_Lock();
                }
        }
        //解除讀保護
        else
        {
                if (FLASH_OB_GetRDP()  != RESET)
                {
                        FLASH_Unlock();

                        FLASH_OB_Unlock();

                        FLASH_ClearFlag(FLASH_FLAG_EOP | FLASH_FLAG_PGERR | FLASH_FLAG_WRPERR);

                        FLASH_OB_RDPConfig(OB_RDP_Level_0);
                        FLASH_OB_Lock();
                }
        }
}

上面這個函數可以實現讀保護,下載完程序后要斷電,在上電。這樣就無法下載和調試。需要用STVP全片擦除。或者事先寫好解除保護的程序。
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏2 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品一区一区 | av在线一区二区三区 | 免费av播放| 色综合99| 日韩在线一区二区三区 | 国产资源视频 | 一区在线观看 | 91亚洲国产成人久久精品网站 | 亚洲三区在线观看 | 欧美区日韩区 | 成人在线电影网站 | 成人av免费看 | 亚洲一区二区中文字幕在线观看 | 免费看一区二区三区 | 国产羞羞视频在线观看 | 色婷婷综合久久久中字幕精品久久 | 亚洲人在线观看视频 | 九九热在线视频免费观看 | 亚洲精品日韩精品 | 亚洲久草视频 | 午夜精品久久久久久久久久久久 | 狠狠爱综合 | 精品日本久久久久久久久久 | 欧美激情一区二区三级高清视频 | 99精品免费久久久久久日本 | 国产视频中文字幕 | 91中文在线观看 | 日韩成人av在线 | 色综合久久久 | 极品电影院| 欧美高清视频在线观看 | 伦理二区 | 淫片专区| 色偷偷噜噜噜亚洲男人 | 国产精品黄色 | 91激情视频 | 欧美1区2区 | 欧美爱爱视频网站 | 国产成人精品午夜 | 国产99久久精品一区二区300 | 久久久国产一区二区三区 |