冷门小实验——直接调用片上bootloader里面的函数

2019-10-15 01:58发布

前面0X1FFFEC00开始的那写函数不用白不用,这次用到擦写和写FLASH的函数。

我这个片子是 STM32F030F4P6,注意每种型号不一样哦,这个只能用在STM32F030F4P6上。
其实没什么意义,除非FLASH不够用



直接把0X1FFFEC00到0X1FFFFFFF读到BIN文件



上IDA 反汇编找到FLASH操作的函数,然后在程序里直接调用。

这个没仔细分析,只找到我要用的函数

stm32f0boot.zip (39.35 KB, 下载次数: 244) 2017-2-18 14:53 上传 点击文件名下载附件


               .equ fjiesuo,              0x1fffef62
                .equ ojiesuo,              0x1fffef6e
                .equ quanca,             0x1fffeff8
                .equ yeca,               0x1fffefda  
                .equ zica,               0x1ffff020
                .equ xieflash,           0x1fffef9a
                .equ zixie,              0x1ffff048
                .equ xiebaohu,           0x1ffff0a6
                .equ jiancedubaohu,      0x1ffff124
                .equ flashmang,          0x1fffef7a


           FPEC解锁
           ldr r4, = fjiesuo
        movs r5, # 3
        add r5, pc
        mov lr, r5
        mov pc, r4

OPTWRE解锁
        ldr r4, = ojiesuo
        movs r5, # 3
        add r5, pc
        mov lr, r5
        mov pc, r4


页擦除,擦除0X8000400这一页
        ldr r4, = yeca
        ldr r0, = 0x8000400
        movs r5, # 3
        add r5, pc
        mov lr, r5
        mov pc, r4

写FLASH

     0X8000400写0X12345678


        ldr r4, = xieflash
        ldr r0, = 0x8000400
        ldr r1, = 0x12345678
        movs r5, # 3
        add r5, pc
    mov lr, r5
    mov pc, r4


写前

1.png


写后

2.png

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。