那曲檬骨新材料有限公司

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

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

3天內不再提示

如何解決STM32芯片Flash寫保護導致無法下載程序,無法在線調試的問題

GReq_mcu168 ? 來源:玩轉單片機 ? 作者:玩轉單片機 ? 2020-12-22 16:51 ? 次閱讀

本文介紹了如何解決STM32芯片Flash寫保護導致無法下載程序,無法在線調試的問題;如果您遇到相同的問題,希望本文可以帶來一些幫助;

1 FLASH的寫保護

如果對Flash設置了寫保護,那就無法對Flash進行編程和擦除。

在開發STM32的時候,如果出現這種情況,通常仿真器都支持對Flash進行解鎖,像jlink,stlink等仿真器都支持這個功能。

2 錯誤提示

在使用MDK進行調試的時候,出現報錯 ==Flash Timeout.Reset Target and try it again==,具體如下圖所示;

折騰了一番之后,并沒有解決問題,因為使用的仿真器是stlink,因此下載了stlink utility嘗試解決問題;

3 stlink utility

3.1 基本功能

stlink utility是ST官方提供的免費軟件,支持STM32 ST-LINK的程序包括帶有命令行界面(CLI)的圖形用戶界面(GUI)。該工具還提供了較多的其他功能,具體如下;

可以對STM32內部存儲器(Flash,RAM,OTP和其他存儲器),外部存儲器進行編程;

驗證程序內容(校驗和,在編程期間和之后進行校驗,與文件進行比較等)

還能實現 STM32編程自動化;

另外還提供其他的功能;

3.2 解鎖Flash

在stlink連接目標板的情況下,打開stlink utility,在菜單欄的Target下選擇connect,因為這時候Flash已經被鎖住了,所以同樣地也看到相應的錯誤提示Can not read memory Disable Read Out Protection and retry,具體如下圖所示;

OK,下面只需要接觸寫保護就行了,所以在菜單欄target里打開Option Bytes...選項,或者直接通過快捷鍵ctrl+B打開,請確保當前已經正確連接了stlink和目標板,否則會出現報錯;

正確連接的情況下,打開Option Bytes...,發現在這里Read Out Protection選項是enable,這個表示無法通過swd讀取STM32內部Flash的程序。

e9bbff56-442d-11eb-8b86-12bb97331649.png

關鍵點:將Read Out Protection選項設置為disable,點擊Apply,這時候Flash已經成功解鎖了。但是同時發現,內部Flash已經被擦除了;

這可能STM32的保護機制有關,防止程序被拷機,然后進行反編譯破解,這樣也可以提高破解的門檻。具體顯示如下圖所示;

e9efce4e-442d-11eb-8b86-12bb97331649.png

完成以上步驟之后,在菜單欄Target下選擇Disconnect,或者通過快捷鍵ctrl+D斷開和目標板的連接;重新進入MDK,就能正常對目標板進行調試,仿真,以及程序的燒寫。

3.3 寫保護

在菜單欄target里打開Option Bytes...選項,我們還看到下面有Flash sector protection選項;選擇Select all之后,發現所有Page都已經寫保護了,只要選擇apply選項就可以對Flash進行寫保護;具體如下所示;

ea2baf4a-442d-11eb-8b86-12bb97331649.png

4 總結

對于Flash寫保護的問題可以結合STM32參考手冊進行相應的學習,其內部Flash提供相應的保護機制,本文只是結合ST官方工具stlink utility解決一下常見的這個簡單的問題。

責任編輯:xj

原文標題:如何優雅地解決STM32的Flash寫保護的問題?

文章出處:【微信公眾號:玩轉單片機】歡迎添加關注!文章轉載請注明出處。

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

    關注

    6043

    文章

    44621

    瀏覽量

    638579
  • FlaSh
    +關注

    關注

    10

    文章

    1642

    瀏覽量

    148681
  • STM32
    +關注

    關注

    2272

    文章

    10924

    瀏覽量

    357585

原文標題:如何優雅地解決STM32的Flash寫保護的問題?

文章出處:【微信號:mcu168,微信公眾號:硬件攻城獅】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    en.stm32cubemx-win-v6-12-0.zip無法下載,該如何解決?

    en.stm32cubemx-win-v6-12-0.zip無法下載,該如何解決?
    發表于 09-26 06:38

    myST賬號無法注冊導致stm32cubemx無法下載hal庫的固件怎么解決?

    myST賬號無法注冊導致stm32cubemx無法下載hal庫的固件包,myST賬號注冊卡在最后的郵箱驗證環節,一直卡著
    發表于 07-23 08:05

    esp32-s2r2芯片無法下載是什么原因導致的?

    方式和其他電路都不變,只更換模組內芯片,發現仍然無法下載程序,一直處于“上電同步等待”狀態(沒換芯片之前模組
    發表于 07-01 08:29

    驗證flash加密功能時不小心將FLASH_CRYPT_CNT字段設置成寫保護了,如何取消寫保護

    驗證flash加密功能時不小心將FLASH_CRYPT_CNT字段設置成寫保護了,導致現在無法關閉fla
    發表于 06-13 07:23

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

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

    STM32F4 Keil程序在RAM中調試運行的問題求解

    自定義的計數器。 但是不經意間發現個問題: 當我拿的芯片設置了讀寫保護(jlink flash 下點命令 secure chip)后,可以進入調試,但是
    發表于 05-13 06:51

    STM32F407VET6無法正常燒錄程序怎么解決?

    Programming報錯信息是一樣的。 我猜想是寫保護原因,但我使用ST-Link配合STM32 ST-LINK Utility軟件,根本連接不上芯片。至此,我已經黔驢技窮,希望大家幫忙一起考慮下原因。 PS: 我是在自己的
    發表于 04-19 07:00

    STM32F0設置了FALSH寫保護后不能下載程序是什么原因導致的?

    開發環境用KEIL5+JLINK進行程序調試STM32F0根據選項字節進行FALSH寫保護后,下次不能再程序
    發表于 04-18 07:51

    STM32的串口下載方式(ISP)的寫保護位編程錯誤的原因?

    的錯誤,當設置寫保護位在WRP的高24bit時,會被后續的讀保護命令清除,導致該部分的扇區無法在ISP過程中正常保護。 試驗環境: a)
    發表于 04-09 06:39

    STM32程序無法正常運行的原因?如何解決?

    在使用STM32G473VETx芯片時(1.8V電源),使用GPIO口作為電源芯片的使能信號,發現鏈接下載器時GPIO口雖然能輸出電壓,但不正確,理論上應為1.8V,實際為0.5V和1
    發表于 04-08 07:30

    STM32L4R5VGT6 flash超512K時,無法下載的原因?

    the File 當flash低于512K時,就能正常下載。 2、當注釋掉Fatfs相關函數,發現超512K也是可以正常下載的。使用Fatfs相關函數,flash超512K就
    發表于 03-27 07:18

    STM32F407讀保護無法解鎖如何解決?

    項目中用到STM32F407,程序燒錄后,開始運行正常,后面出現芯片死機不運行的情況,Jlink重新燒錄程序提示保護。 網上搜索方法,用ST
    發表于 03-25 08:09

    在使用STM32F407ZGT6芯片做小車主控時,總是在運行時芯片突然被鎖,無法下載程序怎么解決?

    在使用STM32F407ZGT6芯片做小車主控時,總是在運行時芯片突然被鎖,無法下載程序。 使用
    發表于 03-14 07:02

    STM32搭載custom human interface device class(HID)后與stlink沖突會導致cubeide無法下載或者調試報錯怎么解決?

    STM32單片機搭載custom human interface device class(HID)后與stlink沖突會導致cubeide中無法下載或者
    發表于 03-07 06:41

    使用ENV把MSH功能加入RT-thread,無法燒錄顯示FLASH timeout的原因?

    STM32FLASH并沒有讀寫保護,然后我再用ENV把MSH功能去除了,重新燒錄,又能燒錄了,對比過發現添加功能前后KEIL沒啥改變,請教大神們是啥原因。
    發表于 03-05 07:03
    bet365主页| 新葡京娱乐城怎么样| 百家乐金海岸软件| 百家乐平注常赢玩法更| 网上百家乐开户送现金| 百家乐官网大小牌路的含义| 百家乐官网路纸计算| 波音娱乐城送彩金| 威尼斯人娱乐城反水| 星级百家乐技巧| 百家乐榄梯打法| 百家乐官网三路法| 百家乐官网在线投注顺势法| 黔东| 百家乐如何视频| 淘金百家乐官网的玩法技巧和规则| 百家乐官网视频游戏世界| 霞浦县| 皇冠足球投注图| 娱乐城开户送18| 大发888游戏平台 46| 百家乐专用| 海尔百家乐的玩法技巧和规则| 足球百家乐网上投注| 百家乐的技术与心态| 贵宾百家乐官网的玩法技巧和规则| 澳门百家乐官网技巧经| 百家乐官网里面的奥妙| 苏尼特右旗| 皇家赌场下载| 八大胜投注,| bet365金融技巧| 大发888手机版亚洲城| 大发888体育和娱乐| 利高百家乐官网娱乐城| 百家乐官网公式计算| 东乌珠穆沁旗| 宜川县| 蒲城县| 易胜博百家乐官网输| 百家乐官网打印程序|