ST-Link/V2 flash ROM writer
This commit is contained in:
29
tool/asm-thumb/opt_bytes_write.S
Normal file
29
tool/asm-thumb/opt_bytes_write.S
Normal file
@@ -0,0 +1,29 @@
|
||||
/* ARM Thumb Assembler code */
|
||||
// arm-none-eabi-gcc -Wa,-amhls=opt_bytes_write.lst -c opt_bytes_write.S
|
||||
|
||||
#define FLASH_CR_OPTPG 0x0010
|
||||
#define FLASH_SR_BSY 0x0001
|
||||
|
||||
#define FLASH_SR_OFFSET 0x0c
|
||||
#define FLASH_CR_OFFSET 0x10
|
||||
|
||||
#define OB_RDP_UNLOCK 0x00a5
|
||||
|
||||
.cpu cortex-m3
|
||||
.thumb
|
||||
movw r0, #OB_RDP_UNLOCK
|
||||
ldr r1, .TARGET_ADDR
|
||||
ldr r2, .FLASH_BASE_ADDR
|
||||
mov r3, #FLASH_CR_OPTPG
|
||||
mov r4, #FLASH_SR_BSY
|
||||
str r3, [r2, #FLASH_CR_OFFSET]
|
||||
strh r0, [r1]
|
||||
1: ldr r0, [r2, #FLASH_SR_OFFSET]
|
||||
tst r0, r4
|
||||
bne 1b
|
||||
mov r0, #0
|
||||
str r0, [r2, #FLASH_CR_OFFSET]
|
||||
bkpt #0x00
|
||||
.align 2
|
||||
.FLASH_BASE_ADDR: .word 0x40022000
|
||||
.TARGET_ADDR: .word 0x1FFFF800
|
||||
Reference in New Issue
Block a user