哈哈哈哈哈操欧洲电影,久草网在线,亚洲久久熟女熟妇视频,麻豆精品色,久久福利在线视频,日韩中文字幕的,淫乱毛视频一区,亚洲成人一二三,中文人妻日韩精品电影

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

STM32的Flash寫了保護(hù)怎么辦?

STM32嵌入式開發(fā) ? 來源:STM32嵌入式開發(fā) ? 作者:STM32嵌入式開發(fā) ? 2022-04-02 15:55 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

關(guān)于STM32對內(nèi)部Flash的保護(hù)

為了防止對Flash的非法訪問,所有STM32的芯片都提供對Flash的保護(hù),具體分為寫保護(hù)和讀保護(hù)。

如果對Flash設(shè)置了寫保護(hù),那就無法對Flash進(jìn)行編程和擦除。在開發(fā)STM32的時(shí)候,如果出現(xiàn)這種情況,通常仿真器都支持對Flash進(jìn)行解鎖,像jlink,stlink等仿真器都支持這個(gè)功能。

在使用MDK進(jìn)行調(diào)試的時(shí)候,可能會遇到如下圖所示的報(bào)錯(cuò)信息,這時(shí)候就要排查Flash是不是被保護(hù)起來了。

f4b3f78e-b019-11ec-aa7f-dac502259ad0.png

讀保護(hù)即大家通常說的“加密”,是作用于整個(gè)Flash存儲區(qū)域,相關(guān)文章:STM32等單片機(jī)程序加密的方法一旦設(shè)置了Flash的讀保護(hù),內(nèi)置的Flash存儲區(qū)只能通過程序的正常執(zhí)行才能讀出,而不能通過下述任何一種方式讀出:

  • 通過調(diào)試器(JTAG或SWD)

  • RAM中啟動并執(zhí)行的程序

寫保護(hù)是以四頁(1KB/頁) Flash存儲區(qū)為單位提供寫保護(hù),對被保護(hù)的頁實(shí)施編程或擦除操作將不被執(zhí)行,同時(shí)產(chǎn)生操作錯(cuò)誤標(biāo)志,讀與寫設(shè)置的效果見下表:

f4c95912-b019-11ec-aa7f-dac502259ad0.png

當(dāng)Flash讀保護(hù)生效時(shí),CPU執(zhí)行程序可以讀受保護(hù)的Flash區(qū),但存在兩個(gè)例外情況:

  • 調(diào)試執(zhí)行程序時(shí)

  • 從RAM啟動并執(zhí)行程序時(shí)

STM32還提供了一個(gè)特別的保護(hù),即對Flash存儲區(qū)施加讀保護(hù)后,即使沒有啟用寫保護(hù),F(xiàn)lash的第 0 ~ 3 頁也將處于寫保護(hù)狀態(tài),這是為了防止修改復(fù)位或中斷向量而跳轉(zhuǎn)到RAM區(qū)執(zhí)行非法程序代碼。
Flash保護(hù)的相關(guān)函數(shù)

FLASH_Unlock();   //Flash解鎖 FLASH_ReadOutProtection(DISABLE);  //Flash讀保護(hù)禁止   FLASH_ReadOutProtection(ENABLE);   //Flash讀保護(hù)允許

STM32如何設(shè)置讀保護(hù)和解除讀保護(hù)?

讀保護(hù)設(shè)置后將不能讀出Flash中的內(nèi)容。

如何設(shè)置讀保護(hù)

在程序的開頭加入“設(shè)置讀保護(hù)”的代碼即可,每次運(yùn)行代碼時(shí)都檢查一下,如果沒有開就打開,如果打開了就跳過。其中,設(shè)置讀保護(hù)的代碼如下:

int main(void){  ...if (FLASH_GetReadOutProtectionStatus()!=SET)//檢查設(shè)置讀保護(hù)與否  {    FLASH_Unlock();         //寫保護(hù)時(shí)可以不用這句話,可用可不用    FLASH_ReadOutProtection(ENABLE);     //設(shè)置讀保護(hù)  }  ...while(1)  {    ...  }}

上面的代碼執(zhí)行后,使用j-link就不能讀出程序了,實(shí)現(xiàn)了代碼讀保護(hù)。需要注意的是,芯片讀保護(hù)后無法再次燒寫新的程序到Flash中,必須要解除讀保護(hù)才可以。但是當(dāng)解除讀保護(hù)的時(shí)候STM32會自動擦除整個(gè)Flash,起到保護(hù)數(shù)據(jù)的作用。

通過代碼解除Flash保護(hù)

解除讀保護(hù)可以設(shè)置在按鍵里面,方便實(shí)現(xiàn)解鎖,也可以設(shè)置在命令中。如下是解除讀保護(hù)代碼:

f4dd8cb6-b019-11ec-aa7f-dac502259ad0.png

程序中設(shè)置一個(gè)按鍵或者命令,可以隨時(shí)解除Flash的讀保護(hù),讓芯片又可以重新燒錄程序。如果沒有留,還可以專門寫一個(gè)程序,下載到RAM中去運(yùn)行,用來解除讀保護(hù)。

注意:執(zhí)行后,F(xiàn)lash會自動全部擦除。


	
int main(void){Chip_Init();  FLASH_Unlock(); //不解鎖FALSH也可設(shè)置讀保護(hù),可用可不用  FLASH_ReadOutProtection(DISABLE);}

通過ST-LinkUtility來解除Flash保護(hù)

在STLink連接目標(biāo)板的情況下打開程序燒寫軟件ST-Link Utility,在菜單欄的Target下選擇connect,因?yàn)檫@時(shí)候Flash已經(jīng)被鎖住了,能看到如下圖所示的錯(cuò)誤提示。

f4ef2930-b019-11ec-aa7f-dac502259ad0.png

下面來操作如何解除Flash保護(hù)。

請確保當(dāng)前已經(jīng)正確接了STLink和目標(biāo)板,在菜單欄Target里打開Option Bytes...選項(xiàng),發(fā)現(xiàn)在這里Read Out Protection選項(xiàng)是Enable,這個(gè)表示無法通過SWD讀取STM32內(nèi)部Flash的程序。

f5093122-b019-11ec-aa7f-dac502259ad0.png

將Read Out Protection選項(xiàng)設(shè)置為Disable,并點(diǎn)擊Apply。

這時(shí)候Flash已經(jīng)成功解鎖了,跟上文提到的解除Flash保護(hù)的結(jié)果一樣,內(nèi)部Flash已經(jīng)被擦除了,如下圖紅框中所示。

f51b3f8e-b019-11ec-aa7f-dac502259ad0.png

完成以上步驟之后,在菜單欄Target下選擇Disconnect斷開與目標(biāo)板連接。

重新進(jìn)入MDK,可以正常對目標(biāo)板燒寫程序了。

通過ST-LinkUtility來設(shè)置Flash保護(hù)

f536c650-b019-11ec-aa7f-dac502259ad0.png

在菜單欄Target里打開Option Bytes...選項(xiàng),可以看到下面有Flash sector protection選項(xiàng)。選擇Select all之后,發(fā)現(xiàn)所有Page的Protection項(xiàng)都已經(jīng)變成Write Protection了,只要選擇Apply選項(xiàng)就可以對Flash進(jìn)行寫保護(hù),如上圖所示。


審核編輯 :李倩


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • FlaSh
    +關(guān)注

    關(guān)注

    10

    文章

    1758

    瀏覽量

    155858
  • STM32
    +關(guān)注

    關(guān)注

    2312

    文章

    11189

    瀏覽量

    374501
  • 調(diào)試器
    +關(guān)注

    關(guān)注

    1

    文章

    329

    瀏覽量

    25200

原文標(biāo)題:STM32的Flash寫了保護(hù)怎么辦?

文章出處:【微信號:c-stm32,微信公眾號:STM32嵌入式開發(fā)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    剛?cè)胄锌床欢娐穲D怎么辦?

    剛?cè)胄锌床欢娐穲D怎么辦?很多電子新手剛?cè)胄袝r(shí),面對密密麻麻的電路圖總會犯怵:“這么多元件和線路,到底從哪看起?”別慌!今天就帶大家拆解電路圖的核心邏輯,只要掌握這5大模塊,看懂電路圖真的沒那么難
    的頭像 發(fā)表于 04-02 09:01 ?207次閱讀
    剛?cè)胄锌床欢娐穲D<b class='flag-5'>怎么辦</b>?

    三防漆不固化怎么辦?從材料到工藝的排查指南 |鉻銳特實(shí)業(yè)

    鉻銳特實(shí)業(yè)|東莞廠家|三防漆不固化怎么辦?從材料過期、固化條件錯(cuò)配、涂層過厚、前處理不當(dāng)?shù)江h(huán)境溫濕度,一文帶你系統(tǒng)排查三防漆固化不良問題,附行業(yè)數(shù)據(jù)及實(shí)用解決方法。
    的頭像 發(fā)表于 02-22 01:22 ?289次閱讀
    三防漆不固化<b class='flag-5'>怎么辦</b>?從材料到工藝的排查指南 |鉻銳特實(shí)業(yè)

    智能顯示模塊上電后顯示“No Project”怎么辦?

    智能顯示模塊上電后顯示“No Project”怎么辦
    發(fā)表于 01-20 15:20

    STM32保護(hù)的解除和出現(xiàn)的原因,使用串口和ST-LINK Utility解除讀保護(hù)

    STM32保護(hù)保護(hù)保護(hù)出現(xiàn)的現(xiàn)象 1、串口下載會出現(xiàn): 當(dāng)出現(xiàn)這個(gè)讀保護(hù)字樣的時(shí)候就是芯片已經(jīng)讀
    的頭像 發(fā)表于 12-30 10:10 ?1963次閱讀
    <b class='flag-5'>STM32</b>讀<b class='flag-5'>保護(hù)</b>的解除和出現(xiàn)的原因,使用串口和ST-LINK Utility解除讀<b class='flag-5'>保護(hù)</b>

    CW32F030 FLASH的讀保護(hù)功能

    CW32F030 支持 FLASH保護(hù)功能,設(shè)置讀保護(hù)后,無法通過 ISP 或 SWD 方式對 FLASH 進(jìn)行讀取操作。讀保護(hù)只支持整
    發(fā)表于 12-11 06:54

    使用單片機(jī)系統(tǒng)時(shí)間不準(zhǔn)怎么辦

    使用單片機(jī)系統(tǒng)時(shí)間不準(zhǔn),怎么辦?具體的是與晶振有關(guān)系還是MCU內(nèi)部有關(guān)系,時(shí)間一長顯示的時(shí)間就慢了
    發(fā)表于 12-05 07:51

    請問單片機(jī)RAM空間不夠用了怎么辦?

    單片機(jī)RAM空間不夠用了怎么辦?
    發(fā)表于 11-25 08:09

    FLASH 存儲器4級讀保護(hù)等級的設(shè)置

    LEVEL0 無讀保護(hù),可通過 SWD 或者 ISP 方式對 FLASH 進(jìn)行讀取操作。 ? LEVEL1 FLASH保護(hù),不可通過 SWD 或 ISP 方式讀取??赏ㄟ^ ISP
    發(fā)表于 11-17 08:09

    STM32C011開發(fā)(3)----Flash操作

    STM32C011 系列微控制器內(nèi)置 Flash 存儲器,支持程序存儲與數(shù)據(jù)保存,具備頁面擦除、雙字寫入、讀寫保護(hù)等功能。本文將簡要介紹 STM32C011 的
    的頭像 發(fā)表于 09-18 16:48 ?5238次閱讀
    <b class='flag-5'>STM32</b>C011開發(fā)(3)----<b class='flag-5'>Flash</b>操作

    Flash保護(hù)怎么實(shí)現(xiàn)?

    我們客戶要求要對代碼存儲區(qū)(code flash)增加外部讀保護(hù)機(jī)制 我在TRM手冊中只看到有flash保護(hù)保護(hù)應(yīng)該怎么實(shí)現(xiàn)?
    發(fā)表于 07-30 07:30

    電腦開機(jī)每次自動開啟很多軟件怎么辦

    電腦開機(jī)每次自動開啟很多軟件怎么辦
    發(fā)表于 07-17 06:40

    路由器能連上但是沒有網(wǎng)絡(luò)怎么辦?

    路由器能連上但是沒有網(wǎng)絡(luò)怎么辦
    發(fā)表于 07-10 06:15

    請問STM32U5不支持ST-LINK v2怎么辦?

    STM32U5不支持ST-LINK v2怎么辦
    發(fā)表于 06-09 07:59

    電腦連接到openmv,但不會自動彈出盤符,請問怎么辦

    電腦連接到openmv,但不會自動彈出盤符,請問怎么辦?
    發(fā)表于 05-27 06:53

    FPGA的Jtag接口燒了,怎么辦?

    在展開今天的文章前,先來討論一個(gè)問題:FPGA的jtag接口燒了怎么辦?JTAG接口的輸入引腳通常設(shè)計(jì)為高阻抗,這使得它們對靜電電荷積累非常敏感,由于JTAG接口需要頻繁連接調(diào)試器、下載線纜等外
    的頭像 發(fā)表于 04-27 11:01 ?2818次閱讀
    FPGA的Jtag接口燒了,<b class='flag-5'>怎么辦</b>?
    攀枝花市| 奇台县| 慈利县| 时尚| 延津县| 五华县| 清新县| 五华县| 宿州市| 麻城市| 沾化县| 仙游县| 弋阳县| 嘉定区| 黑龙江省| 龙南县| 龙岩市| 天长市| 德惠市| 邯郸县| 墨脱县| 公安县| 泰兴市| 卓尼县| 来宾市| 东至县| 湾仔区| 大渡口区| 沂水县| 邢台市| 罗田县| 观塘区| 闽侯县| 华池县| 上林县| 吉木乃县| 剑阁县| 太仓市| 虞城县| 三河市| 襄樊市|