Clion+dap仿真器,移植stm32项目
阅读原文时间:2023年07月15日阅读:1

稚晖君的回答:配置CLion用于STM32开发【优雅の嵌入式开发】

野火论坛:DAP仿真器的使用教程

wuxx:nanoDAP使用疑难杂症解析

qq_40947291:OpenOCD下载导致单片机被锁住解决办法


开发板stm32f103指南者,仿真器:野火DAP,Keil_v5,Clion_2022.3.2


首先测试DAP仿真器能在Keil5正常使用,实际上这儿就踩了不少坑,按“野火论坛:Dap仿真器的使用教程”配置无效,但通过串口烧录程序是能跑起来的。于是更改配置如下:启动Keil5->options for target->debug->settings:  debug选项卡:

  • 左上角适配器是普通的CMSIS-DAP,没有显示野火字样。
  • Connect框必须选择 under Reset,作用等同于下载程序时按复位键。
  • Reset框没有自动探测,实际上选 SYSRESETTREQ 也是可以的。
  • 除了Debug选项卡外,FLASH DownLoad选项卡中的 Reset And Run 可能也要勾选。


测试仿真器下载有效,接下来开始写代码。先配置Clion运行环境,再用Clion新建CubeMX工程。参考开篇“稚晖君的回答”配置环境。这里提出几个容易踩坑的地方:在配置Openocd时要加载cfg配置文件,野火DAP仿真器遵循CMSIS-DAP标准,其配置文件dapLinkFire.cfg如下:

# choose st-link/j-link/dap-link etc.
adapter driver cmsis-dap
transport select swd

0x10000 = 64K Flash Size

set FLASH_SIZE 0x20000

导入OpenOCD\share\openocd\scripts\target下的stm.32f1x.cfg文件,

# 具体导入哪个,和stm32型号有关可以倒网上查找
source [find target/stm32f1x.cfg]

download speed = 10MHz

adapter speed 10000

将dapLinkFire.cfg另存为ANSI编码。

Clion中锤子代表编译,三角代表烧录下载程序,虫子代表debug。

打开Clion,配置右上角的Openocd,这里Board config file要选择dapLinkFire.cfg(配置文件位置随意)。

打开Settings,配置MinGW64:

配置Debug:这里Generator选MinGW可以生成hex文件。

配置OpenOCD和CubeMX


完成上述配置应该能通过编译了,但此时下载程序还会报错:下载超时,或无法识别芯片等。为了证明开发板没问题,可以尝试通过串口烧录.hex看看结果,如果通过串口烧录没问题,那就是Clion和开发板连接问题。

Error: Error connecting DP: cannot read IDR
in procedure 'program'
** OpenOCD init failed **
shutdown command invoked

识别芯片失败的解决方案:按住开发板RESET按钮,Clion上点击下载,出现这个打印就马上放开,烧录成功Clion会提示。如果提示成功但开发板没效果,再次点击 RESET按钮

后来在网上看到这么一句话:

为什么按住复位键可以识别出目标芯片,松开就不行?原因是开发板中的程序复用了下载口SWCLK和SWDIO,将其作为了普通GPIO来使用。解决方法是先按住复位键,点击下载的同时松开复位键,此时一定要把握好时机,因为系统启动的时候, 还没走到复用下载口的代码,此时无法烧录下载。故一般情况下除非迫不得已,不建议把下载口复用为普通GPIO使用,因其会造成如上的烧录问题。 (另外一种方法是尝试把页面下的debug标签处设置改成under reset)。

clion提示 cmake-build-debug-mingw“): CreateProcess error=193, %1 不是有效的 Win32 应用程序。

解决方案:大概是因为插件 embeded development support 加载出了问题,重新启用该插件,重新配置下图方框内选项

手机扫一扫

移动阅读更方便

阿里云服务器
腾讯云服务器
七牛云服务器

你可能感兴趣的文章