Linux下使用clion+cubemx+openocd开发stm32

简述

后面需要在linux下学习驱动开发,然后不想玩虚拟机,就直接安装了双系统。用kde桌面玩的蛮开心的,就索性把win下的开发内容都搬过来吧

在Linux下开发STM32,使用Clion和Cubemx开发,openocd调试,关于芯片下载,编译器选项,代码起始内容都需要自行通过工程的配置文件修改,不依靠keil5的IDE选项界面,用起来虽然说麻烦了点,但对于整个单片机系统启动、运行、配置的相关内容来说,学习起来会更深入些。

环境版本

  • 操作系统: Kubuntu22.04.3
  • Clion: CLion 2023.2.2
  • CubeMX: CubeMX 6.9.2
  • Openocd: Openocd 0.12.0
  • 试验板子: Art-pi ——STM32H750XBH6
  • 仿真器: STlink-v2

下载Clion

官网链接

clion 是jetbrains全家桶里的一个,收费,可以试用一个月

  • 学生可以免费使用,只需要提供校园邮箱或者学信网学籍证明注册一个账号即可。
  • 下载完成后解压,找到目录里的安装脚本即可(clion.sh)
  • 安装完成后,可以在软件目录里找到Clion,向桌面添加即可,或者使用软链接到桌面,也可以自行创建.desktop文件,输入相关内容。

下载CubeMX

官网链接

选择下载

  • 下载后解压,执行解压目录下的可执行文件,选择默认安装位置即可
  • 添加桌面快捷方式:这个我在软件目录里没有找到,就在桌面创建了个CubeMX.desktop文件,用于快捷访问CubeMX。

CubeMX.desktop文件

#!/usr/bin/env xdg-open
[Desktop Entry]
Name=STM32CubeMX
Exec=/home/augety/STM32CubeMX/STM32CubeMX
Terminal=false
Type=Application
Icon=/home/augety/Pictures/Icon/cubemx.png
StartupWMClass=STM32CubeMX
Categories=Development;IDE;
Comment=STM32CubeMX

图标

下载openocd

apt直接安装

sudo apt install openocd

编译安装

#github下载
git clone git://git.code.sf.net/p/openocd/code openocd
#安装依赖
sudo apt-get install build-essential pkg-config autoconf automake libtool libusb-dev libusb-1.0-0-dev libhidapi-dev libtool libsysfs-dev
#引导生成环境
./bootstrap
#配置
./configure

测试

#执行版本查询命令
openocd -version
#输出版本信息
Open On-Chip Debugger 0.12.0+dev-00344-gf76c8de91 (2023-10-05-02:13)
Licensed under GNU GPL v2
For bug reports, readhttp://openocd.org/doc/doxygen/bugs.html
openocd: invalid option -- 'e'

安装stlink驱动

下载链接

选择下载

下载后安装deb包

安装arm编译器

sudo apt install gcc-arm-none-eabi

配置clion

  • 打开设置>构建、执行、部署>嵌入式开发
    打开设置

  • 配置相关工具路径,点击测试。

  • 新建项目,注意项目命名
    新建嵌入式项目

  • 会自动运行CubeMX并且配置出一个F030的工程。

自动配置

  • 这里clion会自动将目标型号芯片的配置文件复制到工程里 选择 复制到项目并使用
    选择复制到项目并使用

  • 我们选择点击工程目录里的.ioc文件,选择 通过STM3CubeMX打开

  • 打开后修改相关内容即可

  • 注意最后工程名字,并配置为STM32CubeIDE

生成工程配置

  • 生成文件后,更新工程,在左边目录里进入用户代码。
  • 点击右上角编译,点击运行下载,点击调试进行调试

相关内容
其他具体操作可以自行尝试,包括汉化插件、主题、添加自定义文件夹等等。

相关小操作

官方提供的配置文件里有些小问题

  • openocd下载的代码不能自动复位,需要手动复位,这里修改.cfg的21行

    复位操作

  • 添加自定义文件,直接在目录里添加即可,添加相关依赖时,选择默认即可

    添加文件

  • 然后直接编译会报错,需要删除CMakeLists.txt里的一些新内容。
    删掉即可

参考链接

ubuntu 使用clion 搭建stm32开环境使用stlink下载调试

Linux上 openocd的安装和使用

Ubuntu下OpenOCD+GDB的安装、编译及使用

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/734147.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

银行视频监控智能分析

视频监控智能分析银行系统通过安装在银行的营业厅、取款机处或者银行柜台以及银行门口等区域的各大品牌的终端监控摄像头,视频监控智能分析在系统后台软件上的视频画面内设置智能分析区域,通过上面的操作实现对银行的7*24小时的智能视频监控分析报警,对进出人员行为进行智能…

智慧港口视频智能分析系统解决方案

港口视频监控智能分析系统是对港口各处的监控回传的视频流利用视频监控智能分析技术进行智能分析处理,视频监控智能分析系统将处理结果然后传送到中心管理服务器或者流媒体服务器进行有效管理。监控中心设立在港口控制中心,主要用于相关工作人员进行远程监控和管理。港口监控…

电力视频监控系统

电力视频监控系统通过对电力工程建设领域利用电力视频监控系统进行违规违章操作检测及其他安全区域监测,电力视频监控系统可以降低或减少安全事故造成的人员伤害和设备损害,提升公司社会形象,杜绝违规行为的发生。视频智能分析系统可以进一步强化安全管理,能够降低电力安全…

2024 最新上海市提取公积金缴纳房租 All In One

2024 最新上海市提取公积金缴纳房租 All In One 提取公积金 图解教程2024 最新上海市提取公积金缴纳房租 All In One最新版(亲测可用 ✅)随申办市民云 Apphttps://apps.apple.com/cn/app/随申办市民云/id732618720 提取公积金 图解教程步骤 图解 备注1. 打开随申办 App / 小程序…

Windows上使用VTune分析PyTorchExtension调用的Cpp程序

概述 最近在实现一个通过PyTorch Extension扩展PyTorch算子的C++算法,需要分析代码的运行瓶颈进行针对性优化。Intel VTune就是一个能从汇编级和源码级分析CPU运行瓶颈的工具。由于不明原因我没在服务器上跑通命令行版的VTune,所以把程序搬到Windows下分析了,因此记录一下Wi…

[LeetCode] 80. Remove Duplicates from Sorted Array II

原来leetcode使用Count也不需要import collections class Solution:def removeDuplicates(self, nums: List[int]) -> int:# len =0if len(nums) == 0:return 0# elsecountList = Counter(nums)countModify = {key:min(value,2) for key,value in countList.items()}ret = […

个人标语

从来不觉得自己比任何人差,讨厌懒惰,骄傲自满与妄自菲薄。

IDER如何生成数据库的ER图?

1.打开 IDEA,并连接到 MySQL数据库这里连接到你的数据库 2.在菜单栏中选择"View"->"Tool windows"->"Database" 3.在"Database" 工具窗口中,展开你想要査看的数据库,并选择"ER Diagrams"。 4.右键单击"ER Dia…

服务器系统瘫痪系统损坏数据恢复

故障服务器数据恢复环境: 一台故障服务器;共有4块146G SAS硬盘组成的RAID5;故障服务器分析检测: 服务器在运行过程中系统瘫痪,重装系统后系统损坏。系统中有数据库、网站程序与网页。 服务器数据恢复过程: 1、对全盘reiserfs树节点之间的关联确定原来的reiserfs分区位置镜…

服务器瘫痪,里面存有mysql数据库表结构

最上层,大多数基于网络服务器的工具或服务都有类似架构。 第二层,大多数MySQL的核心服务,包括查询解析、分析、优化、缓存以及所有的内置函数,所有跨存储引擎的功能都在这一层实现:存储过程、触发器、视图等。 第三层,存储引擎负责MySQL中数据的存储和提取。服务器通过AP…

误操作还原VMware虚拟机数据恢复

故障服务器数据恢复环境: 一台故障物理服务器上迁移到ESXI上的虚拟机。故障服务器检测与分析: 虚拟机的数据恢复迁移的状态,数据全部丢失。还原快照操作与删除数据,将该设备上所有虚拟机关机或迁移到其他ESXI上。 恢复数据之前需要先了解vmfs文件系统的底层结构。vmfs文件系…

存储中NAS卷数据丢失数据恢复

故障服务器数据恢复环境: 一台故障存储,支持SAN和NAS存储协议。服务器故障检测与分析: 存储一个NAS卷中的数据丢失,卷大小为2T,经过检查发现丢失数据的类型为office文档、PDF文件、图片文件(JPG、JPEG、PNG等)。 服务器数据恢复过程: 1、准备好备份服务器,将备份服务器…

系统误操作删除数据恢复

故障服务器环境故障: 一台有文件系统的故障服务器,误操作删了服务器上的数据。服务器数据恢复过程: 1、对故障服务器所有硬盘进行扇区级镜像备份。 2、根据文件系统结构和元信息分析文件系统盘序、使用盘数和校验盘个数等信息。 3、全盘扫描节点入口。 4、扫描所有硬盘的底层…

服务器意外断电导致linux数据目录项数据丢失数据恢复

故障服务器数据恢复环境:​ 一台故障列服务器;做的是linux操作系统。服务器故障检测与分析:​ 因机房在运行中,意外断电导致服务器文件丢失。 服务器数据恢复过程:​ 1、将linux服务器连接到数据恢复服务器,以只读模式进行服务器数据备份,所有的数据恢复操作都在备份上进…

IBM服务器硬盘离线数据恢复

服务器数据恢复故障描述: IBM X3850服务器,服务器挂载了5块73G SAS硬盘组成raid5磁盘阵列。2块硬盘离线,RAID崩溃。 服务器存储有oracle数据库,数据恢复+操作系统复原。服务器磁盘阵列数据恢复流程: 1、关闭服务器做数据恢复,服务器关闭状态保护故障服务器原始状态。 2、…

关于家居强电电路模拟程序3和4总结

前言:对于家居强电电路的3和4总结来说,考察了正则表达式,类的运用,程序与设计的基础使用,ArristList 类的使用等等知识点。相对于家居强电电路3来说,4的难度大得多。在3的基础上,加上了引脚的输出电压,对于输出通过引脚的对应电压。那么要判断更多的东西(比如说引脚是…

我的第三次oop

阅读目录 前言 第四次PTA 第五次PTA 第六次PTA 总结 前言 一:对于java的进一步认识 Java是一种强大、跨平台的编程语言,它以面向对象为核心,拥有自动内存管理、丰富的API和广泛的社区支持。Java的广泛应用领域包括Web开发、移动应用开发、企业级应用以及大数据处理等,其易用…

第三次oop

阅读目录 前言 第四次PTA 第五次PTA 第六次PTA 总结 前言 一:对于java的进一步认识 Java是一种强大、跨平台的编程语言,它以面向对象为核心,拥有自动内存管理、丰富的API和广泛的社区支持。Java的广泛应用领域包括Web开发、移动应用开发、企业级应用以及大数据处理等,其易用…

[算法学习笔记] 树链剖分(重链剖分)

树链剖分(重链剖分)学习笔记概述 树链剖分能将一棵树剖分成若干条链的形式。从而能在树上用一些线性数据结构如线段树,树状数组等维护。树链剖分分为重链剖分,长链剖分,LCT 剖分等。最常用的是重链剖分。本文将讲解重链剖分。 本文将持续更新。 我们接下来给出一些定义。重…

.net8,全网首发:部署为自带环境的前后端分离项目,编译成二进制机器码,防止反编译

环境:win10+.net8+vs2022+vue3(history路由模式)本文只演示在winows上面的部署 目的: 1.防止反编译,增加破解成本 2.更便捷的部署方式,开箱即用 实现: 1.不依赖容器,包括IIS,apache,docker,nginx等 2.更少的文件,所有dll逻辑打包成一个exe文件(如果是win环境是exe…