STM32G474 CMAKE VSCODE 开发环境搭建

2024-05-05 09:28

本文主要是介绍STM32G474 CMAKE VSCODE 开发环境搭建,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本篇博文尝试搭建 stm32g474 的开发环境

一. 工具安装

1. 关于 MinGW、OpenOCD、Zadig 这些工具的下载和安装见 Jlink+OpenOCD+STM32 Vscode 下载和调试环境搭建_vscode openocd stm32 jlink-CSDN博客

2. 导出一个 STM32 的 CMAKE 工程,这里略过。

3. 安装 ninja Ninja, a small build system with a focus on speed (ninja-build.org)。

4. 安装 CMAKE Download CMake。

在环境变量中包含以下路径:

二. 编译

安装所以以上工具就可以进行 STM32 CAMKE 工具的编译。

但是生成的 download 文件只有 elf 格式,在工程最外层的 CMakeLists.txt 中加入

add_custom_command( TARGET ${EXECUTABLE_NAME} moto_control POST_BUILD 
COMMAND ${CMAKE_OBJCOPY} -O ihex ${EXECUTABLE_NAME} moto_control.elf ${PROJECT_NAME}.hex 
COMMAND ${CMAKE_OBJCOPY} -O binary ${EXECUTABLE_NAME} moto_control.elf ${PROJECT_NAME}.bin )

其中  moto_control 是工程名。

 在 TERMINAL 中执行

cmake . -G "Unix Makefiles"

可生成 Makefile 文件

通过

make -j4 

可以达到 ninja 同样的编译效果。

或者通过

make -j4 2>&1|tee xxx.log

可以把 log 输出到 xxx.log 文件

通过

make clean
cd build/Debug
ninja clean

可以实现编译的清除。

三. 调试

通过建立 launch.json 实现 Debug。

{// 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": [{"cwd": "${workspaceRoot}","executable": "./build/moto_control.elf","name": "Debug Microcontroller","request": "launch","type": "cortex-debug","showDevDebugOutput": false,"servertype": "openocd","configFiles": ["E:/Project/tools/OpenOCD-20231002-0.12.0/share/openocd/scripts/interface/jlink_swd.cfg","E:/Project/tools/OpenOCD-20231002-0.12.0/share/openocd/scripts/target/stm32g4x.cfg"]}]
}

四. 下载

通过建立 task 的方式完成

在 .vscode 文件夹下建立 tasks.json

{// See https://go.microsoft.com/fwlink/?LinkId=733558// for the documentation about the tasks.json format"version": "2.0.0","tasks": [{"label": "build","type": "shell","command": "make","args": [],"group": "build"},{"label": "download","type": "shell","command": "openocd","args": ["-f","E:/Project/tools/OpenOCD-20231002-0.12.0/share/openocd/scripts/interface/jlink_swd.cfg","-f","E:/Project/tools/OpenOCD-20231002-0.12.0/share/openocd/scripts/target/stm32g4x.cfg","-c","program build/moto_control.elf verify reset exit"],"group": "build","problemMatcher": []}]
}

通过 TERMINAL 出的 Run Task... 在搜索框出现 download 任务,点击后即可下载。 

这篇关于STM32G474 CMAKE VSCODE 开发环境搭建的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/961363

相关文章

Python如何自动生成环境依赖包requirements

《Python如何自动生成环境依赖包requirements》:本文主要介绍Python如何自动生成环境依赖包requirements问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑... 目录生成当前 python 环境 安装的所有依赖包1、命令2、常见问题只生成当前 项目 的所有依赖包1、

使用Python开发一个带EPUB转换功能的Markdown编辑器

《使用Python开发一个带EPUB转换功能的Markdown编辑器》Markdown因其简单易用和强大的格式支持,成为了写作者、开发者及内容创作者的首选格式,本文将通过Python开发一个Markd... 目录应用概览代码结构与核心组件1. 初始化与布局 (__init__)2. 工具栏 (setup_t

Spring Shell 命令行实现交互式Shell应用开发

《SpringShell命令行实现交互式Shell应用开发》本文主要介绍了SpringShell命令行实现交互式Shell应用开发,能够帮助开发者快速构建功能丰富的命令行应用程序,具有一定的参考价... 目录引言一、Spring Shell概述二、创建命令类三、命令参数处理四、命令分组与帮助系统五、自定义S

Redis在windows环境下如何启动

《Redis在windows环境下如何启动》:本文主要介绍Redis在windows环境下如何启动的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Redis在Windows环境下启动1.在redis的安装目录下2.输入·redis-server.exe

Pytest多环境切换的常见方法介绍

《Pytest多环境切换的常见方法介绍》Pytest作为自动化测试的主力框架,如何实现本地、测试、预发、生产环境的灵活切换,本文总结了通过pytest框架实现自由环境切换的几种方法,大家可以根据需要进... 目录1.pytest-base-url2.hooks函数3.yml和fixture结论你是否也遇到过

利用Python快速搭建Markdown笔记发布系统

《利用Python快速搭建Markdown笔记发布系统》这篇文章主要为大家详细介绍了使用Python生态的成熟工具,在30分钟内搭建一个支持Markdown渲染、分类标签、全文搜索的私有化知识发布系统... 目录引言:为什么要自建知识博客一、技术选型:极简主义开发栈二、系统架构设计三、核心代码实现(分步解析

浅谈配置MMCV环境,解决报错,版本不匹配问题

《浅谈配置MMCV环境,解决报错,版本不匹配问题》:本文主要介绍浅谈配置MMCV环境,解决报错,版本不匹配问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录配置MMCV环境,解决报错,版本不匹配错误示例正确示例总结配置MMCV环境,解决报错,版本不匹配在col

Python通过模块化开发优化代码的技巧分享

《Python通过模块化开发优化代码的技巧分享》模块化开发就是把代码拆成一个个“零件”,该封装封装,该拆分拆分,下面小编就来和大家简单聊聊python如何用模块化开发进行代码优化吧... 目录什么是模块化开发如何拆分代码改进版:拆分成模块让模块更强大:使用 __init__.py你一定会遇到的问题模www.

Spring Security基于数据库的ABAC属性权限模型实战开发教程

《SpringSecurity基于数据库的ABAC属性权限模型实战开发教程》:本文主要介绍SpringSecurity基于数据库的ABAC属性权限模型实战开发教程,本文给大家介绍的非常详细,对大... 目录1. 前言2. 权限决策依据RBACABAC综合对比3. 数据库表结构说明4. 实战开始5. MyBA

使用Python开发一个简单的本地图片服务器

《使用Python开发一个简单的本地图片服务器》本文介绍了如何结合wxPython构建的图形用户界面GUI和Python内建的Web服务器功能,在本地网络中搭建一个私人的,即开即用的网页相册,文中的示... 目录项目目标核心技术栈代码深度解析完整代码工作流程主要功能与优势潜在改进与思考运行结果总结你是否曾经