1、引言
實際工程中如果需要對 MCU 的 option bytes 進行修改,可以有以下幾種方式:
? 通過 STLINK-Utility 或是 CubeProgrammer 圖形化工具進行配置
? 通過 ST-LINK_CLI.exe 命令行的方式進行配置
? 通過應用代碼中軟件修改寄存器的方式進行配置
以上的方式中前兩種都需要脫離 KEIL 或是 IAR 的開發(fā)環(huán)境進行操作,在實際項目的開發(fā)階段可以使用,但是到量產階段由于多了一道工序,增加了成本與出錯的風險;通過應用代碼軟件修改的方式在一定程度上也是增加了軟件的復雜度。
如果客戶使用 KEIL 作為軟件開發(fā)環(huán)境,則存在一種更簡單的方式,就是使用 opt.s 文件,采用該方法可以與應用工程融合在一起,一步完成 option bytes 的配置。
2、opt.s 文件介紹
Opt.s 文件存在于 KEIL 的開發(fā)包中,以 F3 系列 MCU 為例,可以在如下的路徑中找到。
打開該文件后,可以看到如下部分截圖,類似匯編語言的方式對變量進行賦值,其實也就是對 option bytes 中的各個關鍵變量進行賦值操作。
3、通過 opt.s 配置 option bytes
通過 opt.s 修改 option bytes 只能在 KEIL 開發(fā)環(huán)境下進行,接下來在 STM32F334R8 為例說明。
Step 1:新建或是任意打開一個基于 STM32F334R8 的工程,這里直接使用 CubeMx 例程中STM32F334R8-Nucleo 下的 GPIO_IOToggle 例程。
Step 2:將 STM32F3xx_OPT.s 添加到功能目錄中,如下:
Step 3:雙擊打開 STM32F3xx_OPT.s 文件,如下圖所示。KEIL 提供了兩種編輯方式,如果對.s 文件的編程方式以及 option bytes 變量的每個 bit 都非常熟悉的話,可以直接在 text editor 下對.s 文件中進行修改;更加簡單的方式是直接在 Configuration Wizard 下進行配置。建議采用后面一種配置方式,更加簡單明了。
Step 4:Configuration Wizard 下修改配置,比如將 RDP 由 level 0 更改為 level 1 并保存修改,此時可以通過 Text Editor 查看對應的 RDP 的值也變了。
Step 5:重新編譯工程,可以看到 opt.s 文件被直接編譯到應用工程中。
Step 6:將生成的燒錄文件直接下載到目標板中。此時需要注意的是,在燒錄前一定要將對應的 Flash options 的燒錄算法添加到 Programming Algorithm 中,如下所示,完成后直接連接目標板進行燒錄即可。
完成以上的操作后,可以對上述進行的 option bytes 的修改進行驗證,可以直接打開CubeProgrammer 讀取目標板的 option bytes,得到的結果如下圖所示,可以看到,RDP 的結果與上述配置一致。
4、小結
通過將 opt.s 文件添加到工程中實現 option bytes 的配置,好處是將配置融合到燒錄文件中,不需要通過其他工具或是在應用代碼中去操作 option bytes,簡化量產過程中的燒錄工序。但是目前該方法不是所有的 MCU 型號都適用,例如對 G4 雙 Bank 系列就存在問題,需要等待官方提供適合雙 Bank 的 option bytes 的燒錄算法與 opt.s 文件。
來源:STM32單片機
免責聲明:本文為轉載文章,轉載此文目的在于傳遞更多信息,版權歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權問題,請聯系小編進行處理
審核編輯 黃宇
-
keil
+關注
關注
68文章
1211瀏覽量
166682
發(fā)布評論請先 登錄
相關推薦
評論