新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 解讀STM32單片機:代碼實現 PCROP清除

        解讀STM32單片機:代碼實現 PCROP清除

        作者: 時間:2017-09-25 來源:網絡 收藏

          前言

        本文引用地址:http://www.104case.com/article/201709/364744.htm

           專有代碼讀出保護,將某個區域設置為僅允許執行,可防止代碼被非法讀出與修改。ST網站提供了免費的參考代碼,但是例程中僅僅提供了用代碼設置。為方便利用PCROP進行知識產權保護的開發和部署,這篇文章提供了方法,可在RDP級別設置為1或者0時,使用代碼清除PCROP。

          ST網站上的PCROP參考代碼

          學習使用PCROP,可從ST網站下載文檔以及參考代碼。文檔里有一步一步的詳細說明。參考代碼則實現了,如何設置編譯開發環境去掉文字庫(Literal pool),以避免受保護區域需要被讀訪問;參考代碼也實現了如何利用代碼使能PCROP保護以及如何導出接口符號供二次開發使用。

          你可以編譯運行PCROP參考代碼。一旦下載到開發板并運行后,扇區2會自動被設置成PCROP保護。你將無法再次下載代碼到該扇區,也無法讀出該扇區的內容。若想通過STLink工具解除PCROP保護,則會導致整個Flash被擦除。

          使用代碼清除PCROP

          在熟悉ST網站上的PCROP參考代碼基礎之上,我們將討論如何使用代碼清除PCROP。

          1. 原理

          根據用戶手冊,要想清除PCROP保護,讀保護RDP級別必須從1設置成0。也就是說,即使當前RDP級別為0,我們也要使用代碼將其設置成1。然后,同時關掉PCROP和將RDP設置成0。這也說明,盡管是清除PCROP保護,我們的代碼必須加入RDP的設置函數, 而不能僅僅修改參考代碼中的PCROP_Enable的狀態字段使其變成PCROP_Disable。

            

         

          2. 材料準備

          開發板: F429I_Discovery

          開發工具:STM32Cube_FW_F4_V1.15.0

          STM32CubeExpansion_AN4701_F4_V1.0.0(從ST網站下載的參考代碼)

          STM32 STLink

          IAR/Keil

          注:也可以選擇其他支持PCROP的STM32系列,并選擇相應的STM32開發板與STM32固件庫。

          3. 代碼

          ? ●設置RDP到級別1

          該函數在RDP級別為0時,若需要清除PCROP, 必須被使用。

            

         

          ? ●設置RDP到級別0

          在清除PCROP保護的代碼里不會直接調用這個函數。參考手冊提到,PCROP的清除必須與RDP從1到0同時發生,而下列RDP_Disable函數則是完整獨立的,無法與PCROP的Option bytes同時操作。不過,這個代碼的中間部分,也就是實際功能部分,將在清除PCROP時被重用。

            

         

            

         

          ? ●清除PCROP

          下述代碼清除PCROP,它基于參考代碼中的PCROP_Enable函數改寫而成。首先,它通過RDP_Enable將RDP設置成1。注意實驗中不要將RDP設置成為2,否則所有的Option bytes將不再被允許修改。然后將RDP和PCROP都設置完畢,調用一次HAL_FLASH_OB_Launch達到同時將RDP設置成1并清除PCROP保護。

            

         

            

         

          4.運行

          在主函數中,調用PCROP_Disable可解除PCROP保護。RDP_Enable后需要關閉電源,重新啟動,然后系統正常運行解除PCROP保護。解除保護后,可通過STLink確認PCROP Option bytes已恢復,同時也可以看到整個Flash內容已被擦除。

          結論

          本文討論了完全使用代碼控制PCROP的設置與清除。它可以使用在PCROP代碼保護的開發與部署階段。



        關鍵詞: STM32 PCROP

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 文化| 河津市| 张家港市| 天长市| 洞口县| 沾益县| 台中市| 太保市| 凤庆县| 全州县| 广昌县| 涿鹿县| 青河县| 恩平市| 常熟市| 攀枝花市| 平远县| 黄山市| 谢通门县| 上虞市| 开远市| 徐水县| 滕州市| 临武县| 榆中县| 阜宁县| 镇平县| 防城港市| 霍城县| 阜新市| 双城市| 天门市| 遵义县| 剑川县| 长顺县| 洛宁县| 三河市| 五峰| 泾源县| 湖北省| 岱山县|