1、引言
實(shí)際工程中如果需要對(duì) MCU 的 option bytes 進(jìn)行修改,可以有以下幾種方式:
? 通過(guò) STLINK-Utility 或是 CubeProgrammer 圖形化工具進(jìn)行配置
? 通過(guò) ST-LINK_CLI.exe 命令行的方式進(jìn)行配置
? 通過(guò)應(yīng)用代碼中軟件修改寄存器的方式進(jìn)行配置
以上的方式中前兩種都需要脫離 KEIL 或是 IAR 的開(kāi)發(fā)環(huán)境進(jìn)行操作,在實(shí)際項(xiàng)目的開(kāi)發(fā)階段可以使用,但是到量產(chǎn)階段由于多了一道工序,增加了成本與出錯(cuò)的風(fēng)險(xiǎn);通過(guò)應(yīng)用代碼軟件修改的方式在一定程度上也是增加了軟件的復(fù)雜度。
如果客戶使用 KEIL 作為軟件開(kāi)發(fā)環(huán)境,則存在一種更簡(jiǎn)單的方式,就是使用 opt.s 文件,采用該方法可以與應(yīng)用工程融合在一起,一步完成 option bytes 的配置。
2、opt.s 文件介紹
Opt.s 文件存在于 KEIL 的開(kāi)發(fā)包中,以 F3 系列 MCU 為例,可以在如下的路徑中找到。
打開(kāi)該文件后,可以看到如下部分截圖,類似匯編語(yǔ)言的方式對(duì)變量進(jìn)行賦值,其實(shí)也就是對(duì) option bytes 中的各個(gè)關(guān)鍵變量進(jìn)行賦值操作。
2、通過(guò) opt.s 配置 option bytes
通過(guò) opt.s 修改 option bytes 只能在 KEIL 開(kāi)發(fā)環(huán)境下進(jìn)行,接下來(lái)在 STM32F334R8 為例說(shuō)明。
Step 1:新建或是任意打開(kāi)一個(gè)基于 STM32F334R8 的工程,這里直接使用 CubeMx 例程中STM32F334R8-Nucleo 下的 GPIO_IOToggle 例程。
Step 2:將 STM32F3xx_OPT.s 添加到功能目錄中,如下:
Step 3:雙擊打開(kāi) STM32F3xx_OPT.s 文件,如下圖所示。KEIL 提供了兩種編輯方式,如果對(duì).s 文件的編程方式以及 option bytes 變量的每個(gè) bit 都非常熟悉的話,可以直接在 text editor 下對(duì).s 文件中進(jìn)行修改;更加簡(jiǎn)單的方式是直接在 Configuration Wizard 下進(jìn)行配置。建議采用后面一種配置方式,更加簡(jiǎn)單明了。
Step 4:Configuration Wizard 下修改配置,比如將 RDP 由 level 0 更改為 level 1 并保存修改,此時(shí)可以通過(guò) Text Editor 查看對(duì)應(yīng)的 RDP 的值也變了。
Step 5:重新編譯工程,可以看到 opt.s 文件被直接編譯到應(yīng)用工程中。
Step 6:將生成的燒錄文件直接下載到目標(biāo)板中。此時(shí)需要注意的是,在燒錄前一定要將對(duì)應(yīng)的 Flash options 的燒錄算法添加到 Programming Algorithm 中,如下所示,完成后直接連接目標(biāo)板進(jìn)行燒錄即可。
完成以上的操作后,可以對(duì)上述進(jìn)行的 option bytes 的修改進(jìn)行驗(yàn)證,可以直接打開(kāi)CubeProgrammer 讀取目標(biāo)板的 option bytes,得到的結(jié)果如下圖所示,可以看到,RDP 的結(jié)果與上述配置一致。
4、小結(jié)
通過(guò)將 opt.s 文件添加到工程中實(shí)現(xiàn) option bytes 的配置,好處是將配置融合到燒錄文件中,不需要通過(guò)其他工具或是在應(yīng)用代碼中去操作 option bytes,簡(jiǎn)化量產(chǎn)過(guò)程中的燒錄工序。但是目前該方法不是所有的 MCU 型號(hào)都適用,例如對(duì) G4 雙 Bank 系列就存在問(wèn)題,需要等待官方提供適合雙 Bank 的 option bytes 的燒錄算法與 opt.s 文件。
-
寄存器
+關(guān)注
關(guān)注
31文章
5372瀏覽量
121282 -
軟件
+關(guān)注
關(guān)注
69文章
5028瀏覽量
88139 -
代碼
+關(guān)注
關(guān)注
30文章
4837瀏覽量
69121
原文標(biāo)題:工程師筆記|在 KEIL 中通過(guò) opt.s 文件設(shè)置 Option Bytes
文章出處:【微信號(hào):STM32_STM8_MCU,微信公眾號(hào):STM32單片機(jī)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
工程師筆記|STM32G4 應(yīng)用程序與 Option Bytes 同時(shí)燒錄問(wèn)題
STVP中stm8af6226的Option bytes與Datasheet不符是為什么?
在STM32F103XX系統(tǒng)的mcu里,F(xiàn)LASH_OBR寄存器中有個(gè)USER【User option bytes】字段,這是什么意思?
st-link utility為什么option bytes總是失?。?/a>
STM8S配置字節(jié)OPTION BYTE
MDK-ARM工程中各目標(biāo)(Targets)之間選項(xiàng)(Option)配置有什么區(qū)別 ?
![MDK-ARM工程中各目標(biāo)(Targets)之間選項(xiàng)(<b class='flag-5'>Option</b>)<b class='flag-5'>配置</b>有什么區(qū)別 ?](https://file.elecfans.com/web1/M00/B7/D1/pIYBAF5sQg-AJ-OlAAEBX7Su3VU116.png)
CANape |Option Driver Assistance功能詳解
![CANape |<b class='flag-5'>Option</b> Driver Assistance功能詳解](https://file.elecfans.com/web2/M00/5A/E8/pYYBAGLrNaiAOyVfAAA3ueYWLGM505.png)
Option的基礎(chǔ)用法
STM8S的配置字節(jié)Option Byte
![STM8S的<b class='flag-5'>配置</b>字節(jié)<b class='flag-5'>Option</b> Byte](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
評(píng)論