使用arm-none-eabi-gcc编译器搭建STM32的Vscode开发环境
工具
- make:Windows中没有make,但是可以通过安装MinGW或者MinGW-w64,得到make。
- gcc-arm-none-eabi:建议最新版,防止调试报错
- OpenOCD
- vscode
- cubeMX
VSCODE 插件
- Arm Assembly:汇编文件解析
- C/C++:c语言插件
- Cortex-Debug:调试插件
添加环境变量路径
-
gcc-arm-none-eabi\bin
-
OpenOCD\bin
-
建议MinGW-make工具重命名为make.exe并添加到gcc-arm-none-eabi\bin路径
测试工具环境变量是否生效
arm-none-eabi-gcc -vOpenOCD -vmake -v
创建工程
使用cubeMX创建Makefile工程
Makefile:由于window没有rm指令,所以这里修改为 del,并添加了系统判断
将makefile一下
-------------------------------
clean:-rm -fR $(BUILD_DIR)
-------------------------------
修改
-------------------------------
ifeq ($(OS),Windows_NT)
clean:del $(BUILD_DIR)
else
clean:-rm -fR $(BUILD_DIR)
endif
-------------------------------
工程添加文件
调试器配置
OpenOCD\share\openocd\scripts\interfacestlink-v2.cfg
芯片配置
OpenOCD\share\openocd\scripts\targetstm32f7x.cfg
vscode 配置任务脚本
-
创建任务脚本
F1
输入 tasks
选择 运行任务
选择 配置任务
选择 使用模板创建task.json
选择 other
选择创建 tasks -
使用任务脚本
CTRL + SHIFT + B 选择对应的任务
tasks.json{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
“version”: “2.0.0”,
“tasks”: [
//make 任务
{
“label”: “build”,
“type”: “shell”,
“command”: “make”,
“problemMatcher”: [],
“group”: {
“kind”: “build”,
“isDefault”: true
}
},
// clean 任务
{
“label”: “clean”,
“type”: “shell”,
“command”: “make clean”,
“problemMatcher”: [],
“group”: {
“kind”: “build”,
“isDefault”: true
}
},
//下载任物
{
“label”: “download”,
“type”: “shell”,
“command”: “openocd”,
// openocd 传递的参数
“args”: [
“-f”,
“stlink-v2.cfg”,
“-f”,
“stm32f7x.cfg”,
“-c”,
“program build/stm32f767_project.elf verify reset exit”,
],
“group”: {
“kind”: “build”,
“isDefault”: true
},
},
]
}
vscode 配置调试脚本
1.创建调试脚本
选择调试窗口
选择 创建 launch.json 文件
2. 启用调试
快捷键 F5
launch.json
{"version": "0.2.0","configurations": [{"name": "Cortex Debug","cwd": "${workspaceFolder}","executable": "${workspaceFolder}/build/stm32f767_project.elf", // 编译文件"request": "launch","type": "cortex-debug","servertype": "openocd","interface":"swd","device": "STM32F7IGT6", "configFiles": ["stlink-v2.cfg", "stm32f7x.cfg",]}]
}
调试过程中报错:仔细查看报错信息,gcc版本过低也会造成调试报错
相关文章:
使用arm-none-eabi-gcc编译器搭建STM32的Vscode开发环境
工具 make:Windows中没有make,但是可以通过安装MinGW或者MinGW-w64,得到make。gcc-arm-none-eabi:建议最新版,防止调试报错OpenOCDvscodecubeMX VSCODE 插件 Arm Assembly:汇编文件解析C/C:c…...

图数据库Neo4j学习二——cypher基本语法
1命名规范 名称应以字母字符开头,不以数字开头,名称不应包含符号,下划线除外可以很长,最多65535( 2^16 - 1) 或65534字符,具体取决于 Neo4j 的版本名称区分大小写。:PERSON和:Person是:person三个不同的标签ÿ…...
ChatGPT:人工智能交互的未来之光
一、ChatGPT:开启自然语言交流新纪元 ChatGPT 是基于 GPT(生成式预训练)技术的最新版本,它采用深度学习模型,通过在大规模文本数据上的预训练来理解自然语言,并生成具有连贯性和合理性的回复。ChatGPT 是一…...
128最长连续数组
题目描述 最长连续序列 https://leetcode.cn/problems/longest-consecutive-sequence/class Solution {public:int longestConsecutive(vector<int>& nums) {unordered_set<int> st(...

redis 1
shell 1:安装1. 源码安装(CENTOS) 2.999:可能会出现得问题1. 编译出错 1:安装 1. 源码安装(CENTOS) 官方下载源码包 wget https://download.redis.io/redis-stable.tar.gz # 安装依赖 yum install gcc解压…...

vue+Element项目中v-for循环+表单验证
如果在Form 表单里有通过v-for动态生成,如何设置验证呢? <el-form ref"ruleFormRef" :model"ruleForm" status-icon :rules"rules" label-width"120px"class"demo-ruleForm" hide-required-aster…...

Day 66-68 主动学习之ALEC
代码: package dl;import java.io.FileReader; import java.util.*; import weka.core.Instances;/*** Active learning through density clustering.*/ public class Alec {/*** The whole dataset.*/Instances dataset;/*** The maximal number of queries that …...
local-path-provisioner与pvc本地磁盘挂载helm部署
1.helm拉取安装包 helm repo add containeroo https://charts.containeroo.ch helm pull containeroo/local-path-provisioner --version 0.0.19 tar -zxvf local-path-provisioner-0.0.19.tgz cd local-path-provisioner mv values.yaml values.yaml.back grep -v "#&qu…...

Visio/PPT/Matlab输出300dpi以上图片【满足标准投稿要求】
1. visio 遵照如下输出选项,另存为tif格式文件时,选择正确输出便是300dpi以上 2. matlab 文件选项选中导出设置,在渲染中选择dpi为600,导出图片即可,科研建议选择tif格式文件 3.ppt 打开注册表,winr键…...

科技UI图标的制作
科技UI图标的制作,效果图如下: 一、新建合成 1、新建合成,命名为合成1,参数设置如下: 2、新建纯色,命名为分形 二、添加分形杂色 1、添加分形杂色 为纯色层“分形”,添加分形杂色,…...

微信小程序将接口返回的文件流预览导出Excel文件并转发
把接口url替换就可以用了 exportExcel () {wx.request({url: importMyApply, //这个地方是你获取二进制流的接口地址method: POST,responseType: "arraybuffer", //特别注意的是此处是请求文件流必须加上的属性,不然你导出到手机上的时候打不开ÿ…...

windows 安装 mongodb 数据库
软件下载 访问官方的下载地址: https://www.mongodb.com/try/download/community ,然后选择对应的版本进行下载 下载好了之后双击进行安装 软件安装 1、点击 next 点击下一步 2、勾选接受协议,点击 next 3、第三页有两个选项&#x…...

业务不打烊:解决软件系统升级痛点的新方法
数字化时代,随着用户对产品性能和功能要求的不断提升,应用服务升级成了企业保持竞争力的关键之一。然而,传统的应用服务升级往往会给用户带来不必要的中断和不便,这种“伤筋动骨”的升级方式已经无法满足日益增长的用户需求&#…...

csdn新星计划vue3+ts+antd赛道——利用inscode搭建vue3(ts)+antd前端模板
文章目录 ⭐前言⭐利用inscode免费开放资源💖 在inscode搭建vue3tsant项目💖 调整配置💖 antd 国际化配置💖 用户store💖 路由权限💖 预览 ⭐结束 ⭐前言 大家好,我是yma16,本文分享…...

通过 CSS 的样式实现语音发送动效类似声音震动的效果
实现效果:一般用于发送语音的时候,出现动画效果 //模版部分 <view class"musical-scale"><view class"scale"><view class"em" v-for"(item,index) in 15" :key"index"></view…...

【C#】.Net Framework框架使用JWT
2023年,第31周,第2篇文章。给自己一个目标,然后坚持总会有收货,不信你试试! 本篇文章主要简单讲讲,.Net Framework框架下使用JWT的代码例子,以及他们的基本概念。 2002年微软发布了.net framewo…...

SQL高级教程第三章
SQL CREATE DATABASE 语句 CREATE DATABASE 语句 CREATE DATABASE 用于创建数据库。 SQL CREATE DATABASE 语法 CREATE DATABASE database_name SQL CREATE DATABASE 实例 现在我们希望创建一个名为 "my_db" 的数据库。 我们使用下面的 CREATE DATABASE 语句&…...

vue 3.0 下载本地pdf文件
使用a标签,把pdf文件放到public文件夹下面 <el-form label-width"160px"> <el-form-item label"使用手册"> <div class"form-item-static"> <a href"/使用手册.pdf" target"_blank" class"link&q…...

平板用的触控笔什么牌子好?ipad第三方电容笔推荐
随着技术的发展,出现了各种各样的平板电容笔。一支好的电容笔,不但可以极大地提升我们的工作效率,还可以极大地提升我们的学习效果。平替的电容笔,无论是在技术方面,还是在质量方面,都还有很大的提升空间&a…...

【Unity2D】相机移动以及设置相机边界
添加相机 添加相机时,首先需要在unity中添加 Cinemachine 包 第一次使用这个包时,需要在Package Manager中搜索并安装 安装Camera Mechine包后,添加2D Camera 设置跟随对象为Ruby (从Hierarchy中将Ruby拖动到Follow中࿰…...

【Axure高保真原型】引导弹窗
今天和大家中分享引导弹窗的原型模板,载入页面后,会显示引导弹窗,适用于引导用户使用页面,点击完成后,会显示下一个引导弹窗,直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…...
day52 ResNet18 CBAM
在深度学习的旅程中,我们不断探索如何提升模型的性能。今天,我将分享我在 ResNet18 模型中插入 CBAM(Convolutional Block Attention Module)模块,并采用分阶段微调策略的实践过程。通过这个过程,我不仅提升…...
iOS性能调优实战:借助克魔(KeyMob)与常用工具深度洞察App瓶颈
在日常iOS开发过程中,性能问题往往是最令人头疼的一类Bug。尤其是在App上线前的压测阶段或是处理用户反馈的高发期,开发者往往需要面对卡顿、崩溃、能耗异常、日志混乱等一系列问题。这些问题表面上看似偶发,但背后往往隐藏着系统资源调度不当…...

Kafka入门-生产者
生产者 生产者发送流程: 延迟时间为0ms时,也就意味着每当有数据就会直接发送 异步发送API 异步发送和同步发送的不同在于:异步发送不需要等待结果,同步发送必须等待结果才能进行下一步发送。 普通异步发送 首先导入所需的k…...

LLMs 系列实操科普(1)
写在前面: 本期内容我们继续 Andrej Karpathy 的《How I use LLMs》讲座内容,原视频时长 ~130 分钟,以实操演示主流的一些 LLMs 的使用,由于涉及到实操,实际上并不适合以文字整理,但还是决定尽量整理一份笔…...
uniapp 集成腾讯云 IM 富媒体消息(地理位置/文件)
UniApp 集成腾讯云 IM 富媒体消息全攻略(地理位置/文件) 一、功能实现原理 腾讯云 IM 通过 消息扩展机制 支持富媒体类型,核心实现方式: 标准消息类型:直接使用 SDK 内置类型(文件、图片等)自…...

【Linux】Linux安装并配置RabbitMQ
目录 1. 安装 Erlang 2. 安装 RabbitMQ 2.1.添加 RabbitMQ 仓库 2.2.安装 RabbitMQ 3.配置 3.1.启动和管理服务 4. 访问管理界面 5.安装问题 6.修改密码 7.修改端口 7.1.找到文件 7.2.修改文件 1. 安装 Erlang 由于 RabbitMQ 是用 Erlang 编写的,需要先安…...

uni-app学习笔记三十五--扩展组件的安装和使用
由于内置组件不能满足日常开发需要,uniapp官方也提供了众多的扩展组件供我们使用。由于不是内置组件,需要安装才能使用。 一、安装扩展插件 安装方法: 1.访问uniapp官方文档组件部分:组件使用的入门教程 | uni-app官网 点击左侧…...
前端调试HTTP状态码
1xx(信息类状态码) 这类状态码表示临时响应,需要客户端继续处理请求。 100 Continue 服务器已收到请求的初始部分,客户端应继续发送剩余部分。 2xx(成功类状态码) 表示请求已成功被服务器接收、理解并处…...

网页端 js 读取发票里的二维码信息(图片和PDF格式)
起因 为了实现在报销流程中,发票不能重用的限制,发票上传后,希望能读出发票号,并记录发票号已用,下次不再可用于报销。 基于上面的需求,研究了OCR 的方式和读PDF的方式,实际是可行的ÿ…...