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

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

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

在 KEIL 中通過 opt.s 文件設(shè)置 Option Bytes

jf_pJlTbmA9 ? 來源:STM32單片機(jī) ? 作者:STM32單片機(jī) ? 2023-09-28 17:30 ? 次閱讀

1、引言

實(shí)際工程中如果需要對(duì) MCU 的 option bytes 進(jìn)行修改,可以有以下幾種方式:

? 通過 STLINK-Utility 或是 CubeProgrammer 圖形化工具進(jìn)行配置

? 通過 ST-LINK_CLI.exe 命令行的方式進(jìn)行配置

? 通過應(yīng)用代碼中軟件修改寄存器的方式進(jìn)行配置

以上的方式中前兩種都需要脫離 KEIL 或是 IAR 的開發(fā)環(huán)境進(jìn)行操作,在實(shí)際項(xiàng)目的開發(fā)階段可以使用,但是到量產(chǎn)階段由于多了一道工序,增加了成本與出錯(cuò)的風(fēng)險(xiǎn);通過應(yīng)用代碼軟件修改的方式在一定程度上也是增加了軟件的復(fù)雜度。

如果客戶使用 KEIL 作為軟件開發(fā)環(huán)境,則存在一種更簡(jiǎn)單的方式,就是使用 opt.s 文件,采用該方法可以與應(yīng)用工程融合在一起,一步完成 option bytes 的配置。

2、opt.s 文件介紹

Opt.s 文件存在于 KEIL 的開發(fā)包中,以 F3 系列 MCU 為例,可以在如下的路徑中找到。

1666769955539036.png

打開該文件后,可以看到如下部分截圖,類似匯編語言的方式對(duì)變量進(jìn)行賦值,其實(shí)也就是對(duì) option bytes 中的各個(gè)關(guān)鍵變量進(jìn)行賦值操作。

1666769964550170.png

3、通過 opt.s 配置 option bytes

通過 opt.s 修改 option bytes 只能在 KEIL 開發(fā)環(huán)境下進(jìn)行,接下來在 STM32F334R8 為例說明。

Step 1:新建或是任意打開一個(gè)基于 STM32F334R8 的工程,這里直接使用 CubeMx 例程中STM32F334R8-Nucleo 下的 GPIO_IOToggle 例程。

Step 2:將 STM32F3xx_OPT.s 添加到功能目錄中,如下:

1666769978991580.png

Step 3:雙擊打開 STM32F3xx_OPT.s 文件,如下圖所示。KEIL 提供了兩種編輯方式,如果對(duì).s 文件的編程方式以及 option bytes 變量的每個(gè) bit 都非常熟悉的話,可以直接在 text editor 下對(duì).s 文件中進(jìn)行修改;更加簡(jiǎn)單的方式是直接在 Configuration Wizard 下進(jìn)行配置。建議采用后面一種配置方式,更加簡(jiǎn)單明了。

1666769990265882.png

Step 4:Configuration Wizard 下修改配置,比如將 RDP 由 level 0 更改為 level 1 并保存修改,此時(shí)可以通過 Text Editor 查看對(duì)應(yīng)的 RDP 的值也變了。

1666770001104499.png

Step 5:重新編譯工程,可以看到 opt.s 文件被直接編譯到應(yīng)用工程中。

1666770021261625.png

Step 6:將生成的燒錄文件直接下載到目標(biāo)板中。此時(shí)需要注意的是,在燒錄前一定要將對(duì)應(yīng)的 Flash options 的燒錄算法添加到 Programming Algorithm 中,如下所示,完成后直接連接目標(biāo)板進(jìn)行燒錄即可。

1666770028703345.png

完成以上的操作后,可以對(duì)上述進(jìn)行的 option bytes 的修改進(jìn)行驗(yàn)證,可以直接打開CubeProgrammer 讀取目標(biāo)板的 option bytes,得到的結(jié)果如下圖所示,可以看到,RDP 的結(jié)果與上述配置一致。

1666770039746029.png

4、小結(jié)

通過將 opt.s 文件添加到工程中實(shí)現(xiàn) option bytes 的配置,好處是將配置融合到燒錄文件中,不需要通過其他工具或是在應(yīng)用代碼中去操作 option bytes,簡(jiǎn)化量產(chǎn)過程中的燒錄工序。但是目前該方法不是所有的 MCU 型號(hào)都適用,例如對(duì) G4 雙 Bank 系列就存在問題,需要等待官方提供適合雙 Bank 的 option bytes 的燒錄算法與 opt.s 文件。

來源:STM32單片機(jī)

免責(zé)聲明:本文為轉(zhuǎn)載文章,轉(zhuǎn)載此文目的在于傳遞更多信息,版權(quán)歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權(quán)問題,請(qǐng)聯(lián)系小編進(jìn)行處理

審核編輯 黃宇

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

    關(guān)注

    68

    文章

    1207

    瀏覽量

    166173
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    怎樣將keil的程序?qū)С?/a>

    1. 準(zhǔn)備工作 開始導(dǎo)出程序之前,需要確保已經(jīng)完成了以下準(zhǔn)備工作: 安裝Keil MDK-ARM軟件。 創(chuàng)建一個(gè)新的項(xiàng)目,并添加所需的源文件和庫文件。 配置項(xiàng)目
    的頭像 發(fā)表于 09-02 10:23 ?300次閱讀

    如何把keil軟件設(shè)置成中文

    軟件。您將看到主界面,其中包含菜單欄、工具欄和項(xiàng)目窗口。 打開“選項(xiàng)”菜單: 菜單欄,找到并點(diǎn)擊“選項(xiàng)”菜單。這將打開一個(gè)下拉菜單,其中包含各種設(shè)置選項(xiàng)。 選擇“環(huán)境”選項(xiàng):
    的頭像 發(fā)表于 09-02 10:21 ?668次閱讀

    STM32F103XX系統(tǒng)的mcu里,F(xiàn)LASH_OBR寄存器中有個(gè)USER【User option bytes】字段,這是什么意思?

    STM32F103XX系統(tǒng)的mcu里,F(xiàn)LASH_OBR寄存器中有個(gè)USER【User option bytes】字段,請(qǐng)問這個(gè)是什么意思?用于什么作用的?必須得配置還是可選的?能隨便配置嗎?
    發(fā)表于 05-10 06:13

    STVPstm8af6226的Option bytes與Datasheet不符是為什么?

    有沒有人用過stm8af6226,燒錄軟件STVP中選擇芯片只有STM8AF6226TXSSS這一款,但里面的Option bytes內(nèi)容與stm8af6226的Datasheet不符,而是
    發(fā)表于 05-09 08:22

    STM8L051的LSI設(shè)置,用IAR沒法option byte設(shè)置LSI-EN怎么解決?

    option byte里面沒有LSI-EN選項(xiàng),是軟件問題還是這個(gè)芯片有什么制約?我想用LSI作為系統(tǒng)時(shí)鐘該怎么設(shè)置
    發(fā)表于 04-26 07:26

    STM32G0x0_OPT.FLM文件怎么MDK工程里使用?

    STM32G0x0_128.FLM文件可以工程里直接添加實(shí)現(xiàn)代碼的燒錄調(diào)試,但是STM32G0x0_OPT.FLM不知道如何使用?MDK工程要怎么修改?有例程嗎?
    發(fā)表于 03-29 06:33

    如何使用OPT_FLM文件實(shí)現(xiàn)解除讀保護(hù)功能?

    MDK工程里debug選項(xiàng)選擇燒錄的FLM文件就可以下載調(diào)試代碼,那OPT_FLM文件該怎么工程里使用實(shí)現(xiàn)解除讀保護(hù)功能呢?直接在debug里選擇是不行的,求指點(diǎn)
    發(fā)表于 03-28 07:11

    使用STM32CubeMX生成的keil文件,keil運(yùn)行時(shí)報(bào)錯(cuò)的原因?

    使用STM32CubeMX過程,生成的keil文件。 file:///C:/Users/Zhanggp/AppData/Local/Temp/ksohtml11808/wps1.j
    發(fā)表于 03-26 07:10

    CN0359例程的程序源碼,KEIL編譯時(shí)startup_ADuCM360.s文件報(bào)錯(cuò)的原因?怎么解決?

    CN0359例程的程序源碼,KEIL編譯時(shí),startup_ADuCM360.s文件報(bào)錯(cuò)。
    發(fā)表于 01-12 07:08

    keil如何生成bin文件

    Keil是一種集成開發(fā)環(huán)境(IDE),專為ARM架構(gòu)的嵌入式系統(tǒng)開發(fā)而設(shè)計(jì)。Keil中生成bin文件是將代碼編譯并轉(zhuǎn)換為可執(zhí)行文件的過程。
    的頭像 發(fā)表于 12-15 13:43 ?9731次閱讀

    linux文件訪問權(quán)限怎么設(shè)置

    、權(quán)限的類型、權(quán)限的表示方法以及如何使用命令來設(shè)置文件訪問權(quán)限。 一、Linux 文件訪問權(quán)限的背景知識(shí) Linux ,每個(gè)
    的頭像 發(fā)表于 11-23 10:20 ?1259次閱讀

    keil4用stc12c5a60s2芯片不能生hex文件的原因?

    你好,請(qǐng)問keil4用stc12c5a60s2芯片,能編譯,不能生hex文件是什么原因?
    發(fā)表于 10-26 07:41

    STM8S配置字節(jié)OPTION BYTE

    的尷尬。選項(xiàng)字節(jié)用于配置硬件特性和存儲(chǔ)器保護(hù)狀態(tài),這些字節(jié)位于同一頁的特定存儲(chǔ)器陣列。 選項(xiàng)字節(jié)可以I C P / S W I M模式或I A P模式
    發(fā)表于 10-10 06:07

    STM8S的配置字節(jié)Option Byte

    電子發(fā)燒友網(wǎng)站提供《STM8S的配置字節(jié)Option Byte.pdf》資料免費(fèi)下載
    發(fā)表于 10-07 16:12 ?0次下載
    STM8<b class='flag-5'>S</b>的配置字節(jié)<b class='flag-5'>Option</b> Byte

    STM32G4 應(yīng)用程序與 Option Bytes 同時(shí)燒錄問題

    STM32G4 應(yīng)用程序與 Option Bytes 同時(shí)燒錄問題
    的頭像 發(fā)表于 09-28 18:02 ?906次閱讀
    STM32G4 應(yīng)用程序與 <b class='flag-5'>Option</b> <b class='flag-5'>Bytes</b> 同時(shí)燒錄問題