STM32CubeIDE在DAPLink下载程序后实现自动复位

新版STM32CubeIDE不再直接支持DAPLink下载器,而是通过OpenOCD中间组件间接支持第三方下载器,扩展了所支持的调试下载器种类
要使用DAPLink作为下载器,需要选择ST-LINK(OpenOCD)作为探头(如下图),OpenOCD默认配置文件Script File默认为ST-Link,需要手动修改为自定义配置文件 dap.cfg
在这里插入图片描述

在使用DAPLink烧录STM32固件后,需要手动对STM32进行硬件复位才能进入运行状态,不然会一直处于死机状态。通过分析STM32CubeIDE发送给OpenOCD的配置文件,并没有发现下载完成后复位的命令

在完成下载后增加复位命令即可实现目的。在自定义配置文件dap.cfg末尾增加如下指令即可。该指令在STM32CubeIDE断开OpenOCD GDB Server后,OpenOCD会自动对STM32进行复位操作,

$_TARGETNAME configure -event gdb-detach { 
	gdb_detach_hook 
	reset 
}

dap.cfg 配置文件示例如下,不同芯片略微不同。需要修改三处

# This is an genericBoard board with a single STM32F401CCUx chip
#
# Generated by STM32CubeIDE
# Take care that such file, as generated, may be overridden without any early notice. Please have a look to debug launch configuration setup(s)

# DAPLink 需要修改下面一行
source [find interface/cmsis-dap.cfg]

set WORKAREASIZE 0x8000

# DAPLink 需要修改下面一行
transport select "swd"

set CHIPNAME STM32F401CCUx
set BOARDNAME genericBoard

# Enable debug when in low power modes
set ENABLE_LOW_POWER 1

# Stop Watchdog counters when halt
set STOP_WATCHDOG 1

# STlink Debug clock frequency
set CLOCK_FREQ 4000

# Reset configuration
# use hardware reset, connect under reset
# connect_assert_srst needed if low power mode application running (WFI...)
reset_config srst_only srst_nogate connect_assert_srst
set CONNECT_UNDER_RESET 1
set CORE_RESET 0

# ACCESS PORT NUMBER
set AP_NUM 0
# GDB PORT
set GDB_PORT 3333

# BCTM CPU variables

source [find target/stm32f4x.cfg]

# 下面代码段实现下载程序后自动复位STM32
$_TARGETNAME configure -event gdb-detach { 
	gdb_detach_hook 
	reset 
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值