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

Linux系统配置STM32的开发环境(代码编辑,编译,下载调试)

在这里插入图片描述

常见的stm32开发都是直接使用keil-MDK工具的,这是个集成开发环境,包含了代码编辑,编译,下载,调试,等功能,而且keil还是个图形化操作工具,直接可以点击图标案件就可以实现编译下载啥的工具了,但是在linux系统上没有这种图形化的集成开发环境,需要自己搭建开发环境,配置代码编辑器+编译器+下载器+调试器等等。下边介绍Linux(基于ubuntu)上配置stm32的开发环境,基于vscode。

1.下载arm版本的gcc编译器

sudo apt-get install gcc-arm-none-eabi

2.下载Openocd下载器和GDB调试器

sudo apt-get install openocd
sudo apt-get install gdb-multiarch

3.在vscode里边下载Cortex-Debug插件

在这里插入图片描述
这个Cortex-Debug 插件可以直接实现类似于keil的图形化界面的调试功能。还可以一键下载程序,省的去敲超级麻烦的GDB命令去调试下载了
在这里插入图片描述

4.获取stm32 makefile版例程

git@gitee.com:free-people-in-time-and-space/linux_stm32f103_gcc_makefile.git

stm32 makefile版工程可以去找找stm32 cubemx 生成教程,直接用这个工具生成就可以了,不过我这也有例程可以直接下载下来用,省事儿了

5.coretex-Debug插件文件配置

要想使用Coretex-debug插件实现图形化debug功能还得配置文件,你上述工作全做好了之后会出现下边情况,生成了个.vscode 文件夹,里边有两个配置文件一个是launch一个是task的,只需要关注launch的就可以了
在这里插入图片描述
打开launch.json文件 按我文中说的配置就可以了

{// Use IntelliSense to learn about possible attributes.// Hover to view descriptions of existing attributes.// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387"version": "0.2.0","configurations": [{"name": "Cortex Debug","cwd": "${workspaceRoot}","executable": "./build/led.elf", //mcu程序可执行文件路径"request": "launch","type": "cortex-debug","servertype": "openocd","configFiles": ["interface/cmsis-dap.cfg",//调试器配置文件 我用的是CMSIS-DAP所以选的这个配置文件,// 绝对路径是/usr/share/openocd/scripts/interface"target/stm32f1x.cfg" //对应MCU系列的配置文件,绝对路径/usr/share/openocd/scripts/target],"gdbPath": "/usr/bin/gdb-multiarch", //gdb-multiarch 默认路径,按照sudo apt install安装的应该改都是这个路径"armToolchainPath": "/usr/bin", //arm-none-eabi-gcc安装路径和gdb-multiarch同理"svdFile": "/home/wls/wls/linux_stm32f103_gcc_makefile/led/stm32f103x.svd",//看你具体的文件位置了"preLaunchTask": "Build"}]
}

6.下载调试

上述所有配置都做好之后,就可以点击图片中的红色按钮了
在这里插入图片描述
然后就进入了调试阶段,
在这里插入图片描述
点击下图的红色方框关闭调试程序就下载到MCU里边去了
在这里插入图片描述

相关文章:

Linux系统配置STM32的开发环境(代码编辑,编译,下载调试)

常见的stm32开发都是直接使用keil-MDK工具的,这是个集成开发环境,包含了代码编辑,编译,下载,调试,等功能,而且keil还是个图形化操作工具,直接可以点击图标案件就可以实现编译下载啥的…...

每日一题——第三十五题

题目&#xff1a;有一个文本文件numbers.txt&#xff0c;其中有20个整数&#xff0c;每个整数占一行&#xff0c;编写程序将这些整数从小到大顺序排好后&#xff0c;重新写入到该文件中&#xff0c; 要求排序前和排序后都要输出该文件的内容。 #include<stdio.h> #inclu…...

Echarts 柱状图实现同时显示百分比+原始值+汇总值

原始效果&#xff1a;柱状图 二开效果&#xff1a; 核心逻辑 同时显示百分比和原始值 label: {show: true,position: inside,formatter: (params) > {const rawValue rawData[params.seriesIndex][params.dataIndex];const percentage Math.round(params.value * 1000) / …...

嵌入式学习Day13---C语言提升

目录 一、二级指针 1.1.什么是二级指针 2.2.使用情况 2.3.二级指针与数组指针 二、指针函数 2.1.含义 2.2.格式 2.3.注意 2.4.练习 三、函数指针 3.1.含义 3.2.格式 3.3.存储 3.4.练习 ​编辑 四、void*指针 4.1.void缺省类型 4.2.void* 4.3.格式 4.4.注…...

Mysql随记

1.对表mysql.user执行DML语句&#xff08;数据操作语言&#xff09;&#xff0c;那么此时磁盘数据较新&#xff0c;需要手动执行flush privileges 语句来覆盖内存中的授权数据。其他的DDL&#xff08;数据操作语言&#xff09;,DQL&#xff08;数据查询语言&#xff09;,DCL(数…...

wire和reg的区别

在 Verilog 中&#xff0c;wire 和 reg 是两种不同的数据类型&#xff0c;用于表示信号或变量。它们在 Verilog 中的使用场景和行为有一些区别&#xff1a; ### wire&#xff1a; - wire 类型用于连接组合逻辑电路中的信号&#xff0c;表示电路中的连线或信号传输线。 - wire …...

c语言第四天笔记

关于 混合操作&#xff0c;不同计算结果推理 第一种编译结果&#xff1a; int i 5; int sum (i) (i) 6 7 13 第二种编译结果&#xff1a; int i 5; int sum (i) (i) 6 7 7 7 前面的7是因为后面i的变化被影响后&#xff0c;重新赋值 14 第一种编译结果&#xff…...

Hive——UDF函数:高德地图API逆地理编码,实现离线解析经纬度转换省市区(离线地址库,非调用高德API)

文章目录 1. 需求背景数据现状业务需求面临技术问题寻求其他方案 2. 运行环境软件版本Maven依赖 3. 获取离线地址库4. Hive UDF函数实现5. 创建Hive UDF函数6. 参考 1. 需求背景 数据现状 目前业务系统某数据库表中记录了约3亿条用户行为数据&#xff0c;其中两列记录了用户触…...

深入解析PHP框架:Symfony框架的魅力与优势

嘿&#xff0c;PHP开发者们&#xff01;今天我们要聊一聊PHP世界中的一颗闪亮明星——Symfony框架。无论是初学者还是经验丰富的开发者&#xff0c;Symfony都为大家提供了强大的工具和灵活的特性。那就跟着我一起&#xff0c;来探索这个强大的PHP框架吧&#xff01; 一、什么是…...

Go语言实战:基于Go1.19的站点模板爬虫技术解析与应用

一、引言 1.1 爬虫技术的背景与意义 在互联网高速发展的时代&#xff0c;数据已经成为新的石油&#xff0c;而爬虫技术则是获取这种“石油”的重要工具。爬虫&#xff0c;又称网络蜘蛛、网络机器人&#xff0c;是一种自动化获取网络上信息的程序。它广泛应用于搜索引擎、数据分…...

5个ArcGIS图源分享

数据是GIS的血液。 我们在《15个在线地图瓦片URL分享》一文中为你分享了15个地图瓦片URL链接&#xff0c;现在再为你分享5个能做ArcGIS中直接加载的图源&#xff01; 并提供了能直接在ArcMAP和ArcGIS Pro的文件&#xff0c;如果你需要这些ArcGIS图源&#xff0c;请在文末查看…...

科普文:万字梳理31个Kafka问题

1、 kafka 是什么,有什么作用 2、Kafka为什么这么快 3、Kafka架构及名词解释 4、Kafka中的AR、ISR、OSR代表什么 5、HW、LEO代表什么 6、ISR收缩性 7、kafka follower如何与leader同步数据 8、Zookeeper 在 Kafka 中的作用&#xff08;早期&#xff09; 9、Kafka如何快…...

Unity UGUI 实战学习笔记(4)

仅作学习&#xff0c;不做任何商业用途 不是源码&#xff0c;不是源码! 是我通过"照虎画猫"写的&#xff0c;可能有些小修改 不提供素材&#xff0c;所以应该不算是盗版资源&#xff0c;侵权删 登录面板UI 登录数据逻辑 这是初始化的数据变量脚本 using System.…...

Python学习和面试中的常见问题及答案

整理了一些关于Python和机器学习算法的高级问题及其详细答案。这些问题涵盖了多个方面&#xff0c;包括数据处理、模型训练、评估、优化和实际应用。 一、Python 编程问题 解释Python中的装饰器&#xff08;Decorators&#xff09;是什么&#xff1f;它们的作用是什么&#xf…...

Mysql-索引视图

目录 1.视图 1.1什么是视图 1.2为什么需要视图 1.3视图的作用和优点 1.4创建视图 1.5更新视图 1.6视图使用规则 1.7修改视图 1.8删除视图 2.索引 2.1什么是索引 2.2索引特点 2.3索引分类 2.4索引优缺点 2.5创建索引 2.6查看索引 2.7删除索引 1.视图 1.1什么是…...

电子签章-开放签应用

开放签电子签章系统开源工具版旨在将电子签章、电子合同系统开发中的前后端核心技术开源开放&#xff0c;适合有技术能力的个人 / 团队学习或自建电子签章 \ 电子合同功能或应用&#xff0c;避免研发同仁在工作过程中重复造轮子&#xff0c;降低电子签章技术研发要求&#xff0…...

Ubuntu下设置文件和文件夹用户组和权限

在 Ubuntu 上&#xff0c;你可以使用 chmod 和 chown 命令来设置当前文件夹下所有文件的权限和所有者。 设置权限&#xff1a; 使用 chmod 命令可以更改文件和目录的权限。例如&#xff0c;要为当前文件夹下的所有文件和子目录设置特定权限&#xff0c;可以使用以下命令&#x…...

JavaSE从零开始到精通(九) - 双列集合

1.前言 Java 中的双列集合主要指的是可以存储键值对的集合类型&#xff0c;其中最常用的包括 Map 接口及其实现类。这些集合允许你以键值对的形式存储和管理数据&#xff0c;提供了便捷的按键访问值的方式。 2. HashMap HashMap 是基于哈希表实现的 Map 接口的类&#xff0c…...

探索 OpenAI GPT-4o Mini:开发者的高效创新工具

探索 OpenAI GPT-4o Mini&#xff1a;开发者的高效创新工具 最近&#xff0c;OpenAI 推出了全新的 GPT-4o Mini 模型&#xff0c;以其出色的性能和极具吸引力的价格&#xff0c;引起了开发者们的广泛关注。作为开发者&#xff0c;你是否已经开始探索这个“迄今为止最具成本效益…...

藏文词典查单词,藏汉双语解释,推荐使用《藏语翻译通》App

《藏语翻译通》App推出了藏文词典、藏汉大词典、新术语等全新在线查单词功能。 藏汉互译 《藏语翻译通》App的核心功能之一是藏汉互译。用户只需输入中文或藏文&#xff0c;即可获得翻译结果。 藏文词典查单词 掌握一门语言&#xff0c;词汇是基础。《藏语翻译通》App内置藏…...

2026年5月儿童护眼灯品牌推荐:TOP5排名书桌防蓝光评测

摘要 当儿童近视率持续攀升&#xff0c;家长在选购护眼灯时面临从“照亮”到“护眼”的认知升级&#xff0c;如何在琳琅满目的品牌中锁定真正科学有效的方案成为核心焦虑。根据世界卫生组织最新数据&#xff0c;全球儿童近视患病率预计在2050年将达到50%&#xff0c;而照明环境…...

卡梅德生物技术快报|真核蛋白表达信号肽筛选实验全流程复盘

从事分子生物学实验的科研人员&#xff0c;在开展真核蛋白表达实验时&#xff0c;经常遇到目的蛋白分泌量低、胞内滞留、活性丧失等问题。信号肽作为调控蛋白分泌的核心元件&#xff0c;其选型直接决定真核蛋白表达的成败与效率。本文基于经典科研实验&#xff0c;完整复盘 8 种…...

Godot 4.2小课堂:用TileMap图层和AStarGrid2D,5分钟搞定一个可交互的2D导航Demo

Godot 4.2极简导航实战&#xff1a;5分钟构建TileMap智能寻路系统在游戏开发中&#xff0c;2D导航系统是构建沉浸式体验的核心组件之一。Godot 4.2引擎提供的TileMap与AStarGrid2D组合&#xff0c;为开发者提供了一套轻量级却功能强大的解决方案。本文将带你快速实现一个可交互…...

终极QMC解密指南:如何快速将QQ音乐加密音频转换为MP3/FLAC格式

终极QMC解密指南&#xff1a;如何快速将QQ音乐加密音频转换为MP3/FLAC格式 【免费下载链接】qmc-decoder Fastest & best convert qmc 2 mp3 | flac tools 项目地址: https://gitcode.com/gh_mirrors/qm/qmc-decoder 你是否曾经从QQ音乐下载了喜欢的歌曲&#xff0c…...

Java的背景知识及快速入门

Java的背景知识1.Java的历史知识Java是哪家公司的产品&#xff1f;Java是美国Sun&#xff08;Stanford University Network&#xff0c;斯坦福大学网络公司&#xff09;公司在1995年推出的一 门计算机高级编程语言。但是在2009年是Sun公司被Oracle&#xff08;甲骨文&#xff0…...

多重检验策略:提升NPLM信号无关搜索的鲁棒性与均匀性

1. 项目概述在粒子物理实验数据分析中&#xff0c;我们常常面临一个核心困境&#xff1a;我们不知道新物理信号会以何种形式出现。传统的“模型依赖”搜索&#xff0c;比如针对特定质量的希格斯玻色子或暗物质候选粒子&#xff0c;需要预先定义一个精确的理论模型。然而&#x…...

LangGraph 状态存储优化:处理大规模多智能体数据的高效方案

LangGraph 状态存储优化:处理大规模多智能体数据的高效方案 本文面向有LangGraph开发经验、需要落地大规模多智能体应用的开发者,从底层原理、架构设计到代码实现全方位讲解如何将LangGraph状态存储的性能提升10倍、成本降低80%,支撑10万+级多智能体并发运行。 引言 痛点引…...

对抗机器学习攻击范式解析:后门、对抗样本与权重攻击的攻防全景

1. 对抗机器学习攻击范式全景解析在AI模型日益渗透到关键决策领域的今天&#xff0c;其安全性问题已经从学术探讨演变为迫在眉睫的现实挑战。作为一名长期关注模型安全的研究者和实践者&#xff0c;我见过太多“表现优异”的模型在精心设计的微小扰动面前瞬间“失智”。对抗机器…...

Codeforces Round 1058

【实况】Codeforces Round 1058 (Div. 2)&#xff08;rk3194;perf1423;solve3&#xff09; https://www.bilibili.com/video/BV1Tv4GzwE5r/ 【赛时3/7】Codeforces Round 1058(Div.2)上1000了记录一下 https://www.bilibili.com/video/BV1BC4kzMEoa/ Codeforces Round 1058 (Di…...

2026年AI论文写作工具实测认证:5款神器从文献到降重一站式避坑指南

写论文的焦虑&#xff0c;是每个科研人和学生绕不开的“必修课”。选题无从下手&#xff0c;文献检索耗时费力&#xff0c;格式调整反复修改&#xff0c;查重降重更是让人抓耳挠腮。2026年的AI工具早已不是当年的“辅助软件”&#xff0c;而是升级为能理解学术逻辑、生成高质量…...