使用OpenOCD提取STM32固件

环境:Ubuntu22.4

软件:OpenOCD(Open On-Chip Debugger) 

  • openocd 的安装

       使用apt直接安装

$ sudo apt-get install openocd
  • openocd 的使用 

      openocd运行需要配置调试器的配置文件和目标芯片的配置文件,下面我用的是stlink-v2接口和        stm32f0discovery芯片型号

$ openocd -f /usr/share/openocd/scripts/interface/stlink-v2.cfg  -f /usr/share/openocd/scripts/board/stm32f0discovery.cfg

      openocd 运行之后,使用 telnet 连接本地端口4444与芯片交互,然后使用help命令查看芯片          支持的命令,一般提取固件使用 demp_image 命令 

  • 连接开发板

      下载相应的芯片手册,本文章用的STM32F0discovery型号芯片,在手册中找到调试接口,这          个芯片的调试接口 STLINK-V2 此芯片可以通过USB转Mini连接线使开发板直接连接到虚拟机

      

 

  •  查看芯片手册找到固件位置

        

      根据上图手册可知,固件的起始地址 0x8000000,大小 0x10000 

  • 提取固件 

      首先运行 openocd,运行命令如下框,连接成功会有如下图输出

$ openocd -f /usr/share/openocd/scripts/interface/stlink-v2.cfg  -f /usr/share/openocd/scripts/board/stm32f0discovery.cfg

      其次使用 telnet 连接 localhost:4444 端口,命令如下

# telnet localhost 4444

     如下输出信息代表成功:

      然后输入命令 halt 中断代码执行

> halt

      最后使用 dump_image 导出固件的文件名(文件名可以更改) 起始地址 导出的数据长度 来提          取固件(固件的起始        地址和大小上一步已经获取到了)

> dump_image flash.bin 0x8000000 0x10000

      如下输出信息代表成功提取固件 

      不是所有MCU都能以此提取固件,不少厂商开启了代码都保护功能(为防止固件被提取而设          计的),以下是STM32F0discovery手册中关于代码读保护的介绍

     

 

 

 

 

 

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值