STM32
直播中

李泳瑜

8年用户 1215经验值
私信 关注
[问答]

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

STM32G0x0_128.FLM文件可以在工程里直接添加实现代码的烧录调试,但是STM32G0x0_OPT.FLM不知道如何使用?MDK工程要怎么修改?有例程吗?


回帖(1)

吴珺

2024-3-31 10:48:46
你目的就是为了修改option字节,何不直接在用户代码里进行option编程呢。


在ARM KEIL的目录下可以找到这个文件,(KeilSTM32L0xx_DFP2.0.1MDKDeviceSourceARM)打开后就是一个汇编文件,
针对Option字节的编程。个人认为实用性不大,你用它的话先得看懂它,然后自己具体调整。最后还要基于该文件做个工程
生成烧录算法文件,跟flash烧录算法文件一起使用。


内容就像下面样子:



; STM32L0xx_OPT.s: STM32L0xx Flash Option Bytes           




; Option byte organization

;-------------------------

;   Address     31:24] 23:16] 15:8] 7:0]

; 0x1FF80000       -     nRDP      -    RDP            (0xFF5500AA)

; 0x1FF80004     nUSER1  nUSER0  USER1  USER0           (0x7F8F8070)

; 0x1FF80008     nWRP1_1   nWRP1_0   WRP1_1   WRP1_0    (0xFFFF0000)

; 0x1FF8000C     nWRP1_3   nWRP1_2   WRP1_3   WRP1_2    (0xFFFF0000)

; 0x1FF80010     nWRP2_1   nWRP2_0   WRP2_1   WRP2_0    (0xFFFF0000)




;//  Flash Option Bytes

FLASH_OPT       EQU     1




......

RDP0             EQU     0xAA

RDP1             EQU     0x00

nRDP0            EQU     RDP0:EOR:0xFF

nRDP1            EQU     RDP1:EOR:0xFF




;//  Flash Write/Read Protection

;//    WRP1_0..WRP1_3

;//      Sector 0

;//      Sector 1

;//      Sector 2

;//      Sector 3

;//      Sector 4

。。。。。

;//      Sector 30

;//      Sector 31

;//   

WRP1_00           EQU     0x00

WRP1_01           EQU     0x00

WRP1_02           EQU     0x00

WRP1_03           EQU     0x00

nWRP1_00          EQU     WRP1_00:EOR:0xFF

nWRP1_01          EQU     WRP1_01:EOR:0xFF

nWRP1_02          EQU     WRP1_02:EOR:0xFF

nWRP1_03          EQU     WRP1_03:EOR:0xFF

;

;//    WRP2_0..WRP2_1

;//      Sector 32

;//      Sector 33

;//      Sector 34

。。。。。。

;//      Sector 44

;//      Sector 45

;//      Sector 46

;//      Sector 47

;//   

WRP2_00           EQU     0x00

WRP2_01           EQU     0x00

nWRP2_00          EQU     WRP2_00:EOR:0xFF

nWRP2_01          EQU     WRP2_01:EOR:0xFF

;//




......

                IF      FLASH_OPT  0

                AREA    |.ARM.__AT_0x1FF80000|, CODE, READONLY

                DCB     RDP0,  RDP1,  nRDP0,  nRDP1      

                DCB     USER0, USER1, nUSER0, nUSER1      

                DCB     WRP1_00, WRP1_01, nWRP1_00, nWRP1_01

                DCB     WRP1_02, WRP1_03, nWRP1_02, nWRP1_03

                DCB     WRP2_00, WRP2_01, nWRP2_00, nWRP2_01

                ENDIF




个人认为还不如直接根据需求进行Option编程来得直接而清爽。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分