将Keil工程文件移植到VScode+Platformio环境下

news2025/2/23 19:22:15

1创建工作空间
1.1创建PIO工程
在这里插入图片描述
若弹出报错不用管他(装加密软件的电脑会报错并少创建几个文件)。PIO会在我们选定的文件夹下创建名为Name(Project)的文件夹

在这里插入图片描述
打demo/Project文件夹可以看到生成一堆文件
在这里插入图片描述
1.2创建CubeMX工程
网上很多教程都让把CubeMX工程路径和PIO工程路径保持一致,而实际上最好不要放在一起,防止CubeMX更新工程时把我们修改过的文件篡改。
我们在demo文件夹下再新建一个文件夹(名字随便取不是中文就行),然后把需要移植的keil工程下的.ioc文件复制过来。
在这里插入图片描述

在这里插入图片描述
然后打开该.ioc文件选择Makefile然后生成文件
在这里插入图片描述

1.3整合文件
将CubeMX生成的Makefile文件、启动文件和FLASH.ld文件复制到PIO工程文件夹下(说白了如果别的工程已经有这三个文件就可以省略创建CubeMX工程并生成文件这一步)
在这里插入图片描述
在这里插入图片描述

将需要移植的keil工程下的Core文件夹(CubeMX生成的配置文件)和自定义的文件夹(应用程序)复制到PIO工程的src文件夹下
在这里插入图片描述
在这里插入图片描述

1.4拷贝c_cpp_properties.json、extensions.json和launch.json
正常情况下这三个文件可以自动生成也不需要修改,但是由于加密软件的原因需要从一个完整且单片机相匹配的工程里拷贝到自己的.vscode文件夹下(如果你的电脑加密了可以用一台没有加密软件的电脑来生成一个同样的工程),extensions.json和launch.json不需要修改,c_cpp_properties.json根据需求来修改(主要是修改需要引用的头文件路径)
在这里插入图片描述
2Platformio.ini文件配置
将下列配置添加到Platformio.ini文件中,并根据实际情况配置-Isrc下的路径。

debug_tool = jlink            ;仿真器
upload_protocol = jlink       ;烧写工具

board_build.stm32cube.custom_config_header = yes;使用cubemx生成的配置文件

build_flags =
    -O0                          ;优化等级
    -Isrc/Core/Inc              ;cubemx生成的配置文件头文件路径
    -Isrc/HardWareSupport/Inc  ;自己写的文件头文件路径
board_build.ldscript = STM32F407VETx_FLASH.ld  ;指定使用该文件

3修改Makefile中的优化等级
在这里插入图片描述

4更改FLASH偏移地址和中断向量表偏移地址
打开STM32F407VETx_FLASH.ld文件然后按照下图修改,没有修改偏移地址的需求(有bootloader就需要改)就跳过该步骤
在这里插入图片描述
打开system_stm32f4xx.按照下图修改(如果已经通过别的方法更改了中断向量表就不用再改了)
在这里插入图片描述

注意:keil无论是调试还是正式运行,程序都是从0x8000000开始的,但是PIO调试仿佛是从flash的偏移地址开始的,正式运行是从0x8000000开始的。所以PIO在没有bootloader的情况下,flash即使偏移地址后也能调试仿真但不能正式运行。
5编译和调试
右键PIO的工程文件夹选择通过Code打开
在这里插入图片描述
若有弹窗就选是
在这里插入图片描述
等待一会,当PIO Home页面加载出来后就可以继续操作了
点击右上角的build进行编译
在这里插入图片描述
终端显示绿色success字样即为成功,按F5启动调试。
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【推荐】领导说Java线程池都用不好,明天不要来了?

引言 工作中难免会遇到各种并发场景,笔者先后经历的公司中,很多同事或多或少都用到过Java线程池来实现并发处理。 但线程池用的好的,却没几个。笔者也曾排查过线上问题,有几次,都是因为线程泄漏,导致出现…

无主灯设计:点亮空间美学的现代之选

在这个追求个性化与舒适度并重的时代,家居照明已不再是简单的照明需求,它逐渐演变为营造空间氛围、彰显居住者品味的重要元素。无主灯设计,作为现代照明设计的一种流行趋势,以其灵活多变、层次丰富、光线柔和的特点,赢…

《黑神话:悟空》中的AI技术运用

2024年8 月 20 日,《黑神话:悟空》全球同步上线,作为首个国产 3A 游戏, 1. A lot of money:大量资金 2. A lot of resources:大量资源 3. A lot of time:大量时间 一、悟空中的AI技术 《‌黑…

oracle exadata x8-2 crs有报错PRVG-12885

PRVG-12885 处理办法: Output from # dcli -l root -g dbs_group ip addr list | grep ib shows that all MTU sizes are 65520 Output from # ifconfig -a shows that the MTU size for the loopback interface was 16436 临时办法: Set the mtu…

vue-admin-template pan版使用方法

新建文件夹,创建后端子文件夹,使用命令行创建django后端:django-admin startproject 后端名称 首先下载vue-admin-template-master文件,将其复制进项目的前端文件夹,在命令行中切换到前端目录,执行npm ins…

特征工程-数据处理

一、读取数据 import pandas as pd import numpy as npdf pd.read_csv(E:/workspace/dataset/WA_Fn-UseC_-Telco-Customer-Churn.csv) df.head()字段解释: 二、数据质量探索 1、去重分析 df1 df.copy()# 判断是否存在重复 df1[customerID].nunique() df1.shape[…

性能飞跃!18种大模型指令调优技巧大放送,打造更强LLM!

指令调优(IT),一种针对大型语言模型(LLMs)的训练方法,是提高大型语言模型能力和可控性的关键技术。该方法的核心目标是使LLM具备遵循自然语言指令并完成现实世界任务的能力。它弥补了LLM的下一个单词预测目…

[Meachines] [Easy] BoardLight Dolibarr17.0.0-RCE+Enlightenment v0.25.3权限提升

信息收集 IP AddressOpening Ports10.10.11.11TCP:22,80 $ nmap -p- 10.10.11.11 --min-rate 1000 -sC -sV PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 8.2p1 Ubuntu 4ubuntu0.11 (Ubuntu Linux; protocol 2.0) | ssh-hostkey: | 3072 06:2…

【软件使用-MEGA】报错及解决方法

报错1:Error: MEGA has detected duplicate taxa labels. (in line 370) **************************************************************************** ; Please note the following important messages: ; **********************************…

怎么写文献综述?文献综述方法和工具推荐!

文献综述是每个科研人绕不过的坎,其实文献综述简单说就是对你自己研究主题之前的研究的一个完整的概括,这个完整的概括主要是来展示目前已有的一些观点和未来可能可以在这个主题之下能够研究的一些创新点,用很多文献来支撑你自己的研究主题。…

Java11 文件操作和io流

文件操作和IO流 文件操作和IO流磁盘操作File类创建file对象文件操作获取文件信息判断文件删除文件创建文件 Files工具类字符操作字节操作遍历目录(非递归) IO流字节操作(字节流)输出流:InputStream(读&…

C++学习笔记——菲波那契数

一、题目描述 二、代码 #include <iostream> using namespace std;int main() {int k0;cin >> k;int a[k];a[0]1;a[1]1;for(int i2;i<k;i){a[i] a[i-1] a[i-2] ;}cout << a[k-1];return 0; }

VBA技术资料MF193:获取右键菜单的名称及ID

我给VBA的定义&#xff1a;VBA是个人小型自动化处理的有效工具。利用好了&#xff0c;可以大大提高自己的工作效率&#xff0c;而且可以提高数据的准确度。“VBA语言専攻”提供的教程一共九套&#xff0c;分为初级、中级、高级三大部分&#xff0c;教程是对VBA的系统讲解&#…

合宙Air700EAQ硬件设计手册——射频接口、电气特与规格

合宙Air700EAQ是一款基于移芯EC716E平台设计的LTE Cat 1无线通信模组。 支持亚洲FDD-LTE的4G远距离无线传 输技术。 以极小封装&#xff0c;极高性价比&#xff0c;满足IoT行业的数传应用需求。 例如共享应用场景&#xff0c;定位器场景&#xff0c;DTU数 传场景等。 本文我…

中仕公考怎么样?考公怎么看我的专业能不能报?

正在国考备考的考生们注意看了&#xff0c;怎么看自己的专业是否能报?中仕为大家讲解一下! 在公务员考试中&#xff0c;不同的专业可选择的岗位不同&#xff0c;根据岗位的多少又分为&#xff1a;热门专业和冷门专业&#xff0c;那些专业是热门专业? 考公热门专业&#xff…

Java 工厂模式的使用,零基础教程,上手即会

工厂模式&#xff08;Factory Pattern&#xff09;是一种常用的创建型设计模式&#xff0c;它提供了一种创建对象的最佳方式。在工厂模式中&#xff0c;我们在创建对象时不会对客户端暴露创建逻辑&#xff0c;并且是通过使用一个共同的接口来指向新创建的对象。&#xff08;常用…

splunk Enterprise 的HTTP收集器-windows

1.创建HTTP收集器 2.使用HTTP收集器 然后打开全局设置&#xff1a;把ssl给去掉&#xff0c;点保存&#xff08;保存之后&#xff0c;可以看到这些状态全部都是已启用了&#xff09;&#xff1a; 3.测试&#xff1a; curl --location --request POST http://192.168.11.131:808…

为什么已经设置了.gitignore文件,但某些需要被忽略的文件仍然显示?如何解决.gitignore无法忽略文件?

问题描述&#xff1a; 某个同事&#xff0c;不小心把编译文件夹&#xff08;这两个文件夹【uni_modules 和unpackage】&#xff09;提交到了远程仓库里。导致其他人提交的时候提示了冲突。因为每个人编译出来的文件都不一样。 然后我们在.gitignore文件设置了排除这两个文件夹…

5步打造安顺旅游数据可视化分析系统——Python Django + Vue 技术

&#x1f393; 作者&#xff1a;计算机毕设小月哥 | 软件开发专家 &#x1f5a5;️ 简介&#xff1a;8年计算机软件程序开发经验。精通Java、Python、微信小程序、安卓、大数据、PHP、.NET|C#、Golang等技术栈。 &#x1f6e0;️ 专业服务 &#x1f6e0;️ 需求定制化开发源码提…

Modbus rtu的通信(做主站)

Modbus rtu的通信&#xff08;做主站&#xff09; 首先进入“设备视图”添加通讯模块RS422/RS485通讯模块&#xff0c;点击通讯接口&#xff0c;配置modbus的参数&#xff0c;常规→端口组态&#xff0c;选择“半双工&#xff08;RS-485&#xff09;2线制模式”&#xff0c;波特…