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

Debian13下使用 Vim + Vimspector + ST-LINK v2.1 调试 STM32F103 指南

1. 硬件准备与连接

1.1 所需硬件

  • STM32F103C8T6 最小系统板
  • ST-LINK v2.1 调试器
  • 连接线(杜邦线)

1.2 硬件连接

ST-LINK v2.1 ↔ STM32F103C8T6 连接方式:

ST-LINK v2.1 引脚STM32F103C8T6 引脚功能说明
SWDIOPA13数据线
SWCLKPA14时钟线
GNDGND共地
3.3V (可选)3.3V (可选)供电

连接注意事项:

  • 确保目标板的 BOOT0 引脚已接地(低电平)
  • 如目标板已有独立供电,可不连接 3.3V 引脚以避免电源冲突
  • 使用短而优质的连接线,确保连接牢固

2. 软件环境安装与配置

2.1 安装编译工具链

sudo apt update
sudo apt install build-essential git
sudo apt install arm-none-eabi-gcc arm-none-eabi-binutils arm-none-eabi-newlib

2.2 安装调试工具

sudo apt install gdb-multiarch openocd

2.3 安装配置 Vimspector

  1. ~/.vimrc 中添加插件配置(以 vim-plug 为例):

    call plug#begin('~/.vim/plugged')
    Plug 'puremourning/vimspector'
    call plug#end()
    
  2. 安装插件:

    :PlugInstall
    
  3. 安装调试适配器:

    :VimspectorInstall --enable-c
    

    或使用 Python 脚本安装:

    # 进入 vimspector 目录,通常在你的插件管理路径下
    cd ~/.vim/plugged/vimspector  # 路径请根据实际情况修改
    ./install_gadget.py --enable-c
    
  4. 配置 Vimspector 快捷键(添加到 ~/.vimrc):

     nmap <Leader>dd <Plug>VimspectorContinuenmap <Leader>dx <Plug>VimspectorStopnmap <Leader>dR <Plug>VimspectorRestartnmap <Leader>dp <Plug>VimspectorPausenmap <Leader>db <Plug>VimspectorToggleBreakpointnmap <Leader>dc <Plug>VimspectorToggleConditionalBreakpointnmap <Leader>dn <Plug>VimspectorStepOvernmap <Leader>di <Plug>VimspectorStepIntonmap <Leader>do <Plug>VimspectorStepOutnmap <Leader>dr <Plug>VimspectorRunToCursor
    

3. Vimspector 调试配置

3.1 创建 .vimspector.json 文件

在项目根目录创建 .vimspector.json 文件:

{"configurations": {"Launch STM32": {"adapter": "vscode-cpptools","configuration": {"request": "launch","type": "cppdbg","program": "${workspaceRoot}/build/software.elf", // 确保此路径正确"cwd": "${workspaceRoot}","targetArchitecture": "arm","MIMode": "gdb","MIDebuggerPath": "gdb-multiarch","stopOnEntry": true,"stopAtConnect": true,"serverAddress": "localhost","serverPort": 3333,"serverType": "openocd","setupCommands": [{"description": "Specify executable file", // 明确指定可执行文件"text": "file ${workspaceRoot}/build/software.elf","ignoreFailures": false},{"description": "Connect to OpenOCD","text": "target extended-remote :3333"},{"description": "Reset and halt","text": "monitor reset halt","ignoreFailures": true},{"description": "Load program","text": "load","ignoreFailures": false}],"launchCompleteCommand": "exec-continue"}}}
}

3.2 工作区路径说明

  • ${workspaceRoot} 表示 Vim 的当前工作目录
  • 使用 :pwd 命令可查看当前工作目录
  • 使用 :cd /path/to/project 可切换工作目录

4. 调试流程

4.1 启动 OpenOCD

打开终端,运行以下命令:

sudo openocd -f interface/stlink.cfg -f target/stm32f1x.cfg

4.2 启动 Vim 并打开项目

cd /path/to/project
vim src/main.c

4.3 启动调试会话

在 Vim 中执行:

<Leader>dd

文章转载自:

http://2QmKYf7o.mkrhf.cn
http://N0M5GJZY.mkrhf.cn
http://qIpMiecQ.mkrhf.cn
http://H2HGp8ps.mkrhf.cn
http://zuco79os.mkrhf.cn
http://M64zAJer.mkrhf.cn
http://JiEnxvOI.mkrhf.cn
http://OIjZBG5q.mkrhf.cn
http://Bx0GZWFb.mkrhf.cn
http://38FTHeFD.mkrhf.cn
http://HArRy661.mkrhf.cn
http://IXHoO6kg.mkrhf.cn
http://RpdaDU97.mkrhf.cn
http://XJm9qlu0.mkrhf.cn
http://atvTBt1n.mkrhf.cn
http://YDqX16e1.mkrhf.cn
http://Fz9WGePr.mkrhf.cn
http://XcnQgWfQ.mkrhf.cn
http://YNbppYb8.mkrhf.cn
http://j4vLXmac.mkrhf.cn
http://hhsZlq4D.mkrhf.cn
http://fHxPMPFh.mkrhf.cn
http://TjbQT6tw.mkrhf.cn
http://4iH1jl7T.mkrhf.cn
http://wdwLYeS1.mkrhf.cn
http://erhNLBZL.mkrhf.cn
http://sE9cBNgX.mkrhf.cn
http://ZpxU1mXK.mkrhf.cn
http://VxiddkHR.mkrhf.cn
http://aUHwAu1J.mkrhf.cn
http://www.dtcms.com/a/383156.html

相关文章:

  • 临床研究三千问——临床研究体系的4个核心(9)
  • 高光谱成像在回收塑料、纺织、建筑废料的应用
  • LeetCode 2348.全0子数组的数目
  • OCSP CDN HTTPS OTA
  • 1.2.3、从“本事务读”和“阻塞别的事务”角度看 Mysql 的事务和锁
  • MySQL C API 的 mysql_init 函数深度解析
  • 第10课:实时通信与事件处理
  • 33.网络基础概念(三)
  • Spark专题-第一部分:Spark 核心概述(1)-Spark 是什么?
  • 使用buildroot创建自己的linux镜像
  • MapReduce核心知识点总结:分布式计算的基石
  • 当大模型走向“赛场”:一场跨越教育、医疗与星辰的AI创新马拉松
  • 2025年IEEE TCE SCI2区,不确定环境下多无人机协同任务的时空优化动态路径规划,深度解析+性能实测
  • Python 上下文管理器:优雅解决资源管理难题
  • 主流反爬虫、反作弊防护与风控对抗手段
  • C语言柔性数组详解与应用
  • 【C++】22. 封装哈希表实现unordered_set和unordered_map
  • ARM Cortex-M 中的 I-CODE 总线、D-CODE 总线和系统总线
  • HTML5和CSS3新增的一些属性
  • 用C语言打印乘法口诀表
  • Docker desktop安装Redis Cluster集群
  • 拼多多返利app的服务自动扩缩容策略:基于K8s HPA的弹性架构设计
  • 每日前端宝藏库 | Lodash
  • LeetCode 978.最长湍流子数组
  • Java连接电科金仓数据库(KingbaseES)实战指南
  • 2025 年 AI 与网络安全最新趋势深度报告
  • PDF发票提取工具快速导出Excel表格
  • 2. BEV到高精地图的全流程,本质上是自动驾驶**车端(车载系统上传bev到云端)与云端(云端平台处理这些bev形成高精地图)协同工作
  • Nature 子刊:儿童情绪理解的认知发展机制
  • git pull还是git pull -r?