当前位置: 首页 > news >正文

STM32CubeProgrammer + STLINK V2 烧录

发现使用STM32C8T6 + STLINK V2 + STM32CubeProgrammer无法成功烧录,总是报错 file error。至于原因,姑且参考:STLINK V2 无法用STM32CubeProgrammer下载程序-CSDN博客

 解决方案:

烧录工具由STLINK换成OpenOCD。

stm32f1x.cfg

# SPDX-License-Identifier: GPL-2.0-or-later# script for stm32f1x family#
# stm32 devices support both JTAG and SWD transports.
#
source [find target/swj-dp.tcl]
source [find mem_helper.tcl]if { [info exists CHIPNAME] } {set _CHIPNAME $CHIPNAME
} else {set _CHIPNAME stm32f1x
}set _ENDIAN little# Work-area is a space in RAM used for flash programming
# By default use 4kB (as found on some STM32F100s)
if { [info exists WORKAREASIZE] } {set _WORKAREASIZE $WORKAREASIZE
} else {set _WORKAREASIZE 0x1000
}# Allow overriding the Flash bank size
if { [info exists FLASH_SIZE] } {set _FLASH_SIZE $FLASH_SIZE
} else {# autodetect sizeset _FLASH_SIZE 0
}#jtag scan chain
if { [info exists CPUTAPID] } {set _CPUTAPID $CPUTAPID
} else {if { [using_jtag] } {# See STM Document RM0008 Section 26.6.3set _CPUTAPID 0x3ba00477} {# this is the SW-DP tap id not the jtag tap idset _CPUTAPID 0x1ba01477}
}swj_newdap $_CHIPNAME cpu -irlen 4 -ircapture 0x1 -irmask 0xf -expected-id $_CPUTAPID
dap create $_CHIPNAME.dap -chain-position $_CHIPNAME.cpuif {[using_jtag]} {jtag newtap $_CHIPNAME bs -irlen 5
}set _TARGETNAME $_CHIPNAME.cpu
target create $_TARGETNAME cortex_m -endian $_ENDIAN -dap $_CHIPNAME.dap$_TARGETNAME configure -work-area-phys 0x20000000 -work-area-size $_WORKAREASIZE -work-area-backup 0# flash size will be probed
set _FLASHNAME $_CHIPNAME.flash
flash bank $_FLASHNAME stm32f1x 0x08000000 $_FLASH_SIZE 0 0 $_TARGETNAME# JTAG speed should be <= F_CPU/6. F_CPU after reset is 8MHz, so use F_JTAG = 1MHz
adapter speed 1000adapter srst delay 100
if {[using_jtag]} {jtag_ntrst_delay 100
}reset_config srst_nogateif {![using_hla]} {# if srst is not fitted use SYSRESETREQ to# perform a soft resetcortex_m reset_config sysresetreq
}$_TARGETNAME configure -event examine-end {# DBGMCU_CR |= DBG_WWDG_STOP | DBG_IWDG_STOP |#              DBG_STANDBY | DBG_STOP | DBG_SLEEPmmw 0xE0042004 0x00000307 0
}tpiu create $_CHIPNAME.tpiu -dap $_CHIPNAME.dap -ap-num 0 -baseaddr 0xE0040000lappend _telnet_autocomplete_skip _proc_pre_enable_$_CHIPNAME.tpiu
proc _proc_pre_enable_$_CHIPNAME.tpiu {_targetname} {targets $_targetname# Set TRACE_IOEN; TRACE_MODE is set to async; when using sync# change this value accordingly to configure trace pins# assignmentmmw 0xE0042004 0x00000020 0
}$_CHIPNAME.tpiu configure -event pre-enable "_proc_pre_enable_$_CHIPNAME.tpiu $_TARGETNAME"

 StLink_v2.cfg

source [find interface/stlink.cfg]
transport select hla_swd
source [find target/stm32f1x.cfg]
adapter speed 10000

stlink.cfg

# SPDX-License-Identifier: GPL-2.0-or-later#
# STMicroelectronics ST-LINK/V1, ST-LINK/V2, ST-LINK/V2-1, STLINK-V3 in-circuit
# debugger/programmer
#adapter driver hla
hla_layout stlink
hla_device_desc "ST-LINK"
hla_vid_pid 0x0483 0x3744 0x0483 0x3748 0x0483 0x374b 0x0483 0x374d 0x0483 0x374e 0x0483 0x374f 0x0483 0x3752 0x0483 0x3753 0x0483 0x3754 0x0483 0x3755 0x0483 0x3757# Optionally specify the serial number of ST-LINK/V2 usb device.  ST-LINK/V2
# devices seem to have serial numbers with unreadable characters.  ST-LINK/V2
# firmware version >= V2.J21.S4 recommended to avoid issues with adapter serial
# number reset issues.
# eg.
# adapter serial "\xaa\xbc\x6e\x06\x50\x75\xff\x55\x17\x42\x19\x3f"

 参考:

烧录器配置 | Embedded IDE For VSCode

Vscode EIDE+Cortex Debug搭建STM32开发仿真环境_cortex-debug-CSDN博客 

Clion搭建stm32开发环境(STM32F103C8T6),有这一篇就够(只愿意博君一笑!!!)_clion写单片机-CSDN博客 

相关文章:

  • wrap:包装
  • C#版开源免费的Bouncy Castle密码库
  • SA3D:基于 NeRF 的三维场景分割方法
  • k8s+wordpress+zabbix+elastic+filebeat+kibana服务搭建以及测试
  • APK漏洞扫描工具
  • 高可用篇_A Docker容器化技术_V 基于DockerCompose实现容器编排
  • MyBatis拦截器四种类型和自定义拦截器的使用流程
  • 黑豹程序员-java按限定范围产生多个随机数
  • BUUCTF-----[SWPU2019]Web1
  • C# 协程的使用
  • DVWA靶场-暴力破解
  • 【Java EE】线程安全的集合类
  • STM32点亮LED灯与蜂鸣器发声
  • .net6Api后台+uniapp导出Excel
  • @Autowired 与@Resource的区别
  • ES学习笔记(12)--Symbol
  • Go 语言编译器的 //go: 详解
  • JAVA SE 6 GC调优笔记
  • Mysql数据库的条件查询语句
  • Object.assign方法不能实现深复制
  • rc-form之最单纯情况
  • 技术胖1-4季视频复习— (看视频笔记)
  • 马上搞懂 GeoJSON
  • 浅谈Kotlin实战篇之自定义View图片圆角简单应用(一)
  • 通信类
  • 微信小程序--------语音识别(前端自己也能玩)
  • 微信支付JSAPI,实测!终极方案
  • No resource identifier found for attribute,RxJava之zip操作符
  • puppet连载22:define用法
  • 曜石科技宣布获得千万级天使轮投资,全方面布局电竞产业链 ...
  • # 睡眠3秒_床上这样睡觉的人,睡眠质量多半不好
  • #if和#ifdef区别
  • (八)Flask之app.route装饰器函数的参数
  • (第9篇)大数据的的超级应用——数据挖掘-推荐系统
  • (二) Windows 下 Sublime Text 3 安装离线插件 Anaconda
  • (附源码)apringboot计算机专业大学生就业指南 毕业设计061355
  • (附源码)springboot高校宿舍交电费系统 毕业设计031552
  • (机器学习-深度学习快速入门)第一章第一节:Python环境和数据分析
  • ******IT公司面试题汇总+优秀技术博客汇总
  • .NET处理HTTP请求
  • .vue文件怎么使用_我在项目中是这样配置Vue的
  • /boot 内存空间不够
  • @RequestMapping-占位符映射
  • @Tag和@Operation标签失效问题。SpringDoc 2.2.0(OpenApi 3)和Spring Boot 3.1.1集成
  • [20140403]查询是否产生日志
  • [AIGC] Kong:一个强大的 API 网关和服务平台
  • [bzoj1901]: Zju2112 Dynamic Rankings
  • [CF494C]Helping People
  • [C语言]——C语言常见概念(1)
  • [G-CS-MR.PS02] 機巧之形2: Ruler Circle
  • [JavaEE系列] Thread类的基本用法
  • [JavaScript]_[初级]_[关于forin或for...in循环语句的用法]
  • [js] 正则表达式
  • [LeetCode] NO. 169 Majority Element
  • [linux] C语言Linux系统编程进程基本概念