1
完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
环境和工具
操作系统:win10 Ubuntu linux 子系统 (wsl) make ST-LINK V2 swd 烧录 要实现的功能 利用make 工具,实现对stm32 单片机一键烧录、擦除、读取hex等功能。实现原理是:命令行模式下 调用 ST 官方提供的命令行工具ST-LINK_CLI.exe,根据不同的参数,实现不同的功能。 遇到的问题 执行脚本,程序打印出ST-LINK CLI 的相关信息后,卡顿一分钟左右(期间ST-LINK V2 黄红灯一直交替闪烁),然后输出can't reset the core unable to connect to the st-link! 问题分析 首先,系统内st-link 的驱动是正常可用的。利用st-link utility 的图形界面工具验证过,是可以正常擦除芯片的。 makefile 里面的实现应该也没问题,之前在win7 系统一直使用,能实现完整的功能。makefile的实现如下 STLINK_CLI='/mnt/c/Program Files (x86)/STMicroelectronics/STM32 ST-LINK Utility/ST-LINK Utility/ST-LINK_CLI.exe' erase: $(STLINK_CLI) -ME read_hex: $(STLINK_CLI) -c SWD -Dump 0x0 0x8000000 a.hex 一直怀疑是wsl 调用Windows 程序的权限问题。但是权限问题解决之后,问题还是存在 问题解决 重新去查看了一遍 STM32 ST-LINK utility software description这个文档,最终找到了根本原因。调用命令行工具时,需要指定是使用JTAG 还是 SWD,否则默认使用JTAG。纳闷的是,我之前一直没指定使用SWD,之前怎么可以实现调用的?难道跟st-link_cli 的版本有关?改过后的makefile 如下 STLINK_CLI='/mnt/c/Program Files (x86)/STMicroelectronics/STM32 ST-LINK Utility/ST-LINK Utility/ST-LINK_CLI.exe' -c SWD freq=480 erase: $(STLINK_CLI) -ME read_hex: $(STLINK_CLI) -c SWD -Dump 0x0 0x8000000 a.hex |
|
|
|
只有小组成员才能发言,加入小组>>
3310 浏览 9 评论
2991 浏览 16 评论
3492 浏览 1 评论
9055 浏览 16 评论
4086 浏览 18 评论
1174浏览 3评论
603浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
596浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2333浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1894浏览 2评论
小黑屋| 手机版| Archiver| 德赢Vwin官网 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-21 17:09 , Processed in 1.174408 second(s), Total 77, Slave 58 queries .
Powered by 德赢Vwin官网 网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
德赢Vwin官网 观察
版权所有 © 湖南华秋数字科技有限公司
德赢Vwin官网 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号