platformIO 自定义板子方法
这里写自定义目录标题
- PIO 自定义板子方法
- 1.为boards添加json文件
- 2. 为板子添加variant
- 2.1 复制一份variant_generic.cpp / .h 文件
- 2.2 修改文件宏定义
- 2.3 *.ld 链接文件
PIO 自定义板子方法
1.为boards添加json文件
\platforms\ststm32\boards
路径下添加或复制json文件。
并根据添加的板子MCU型号,修改json文件内容,如这边添加的是STM32G030F6系列:添加“bPill_g030.json”
文件
{"build": {"core": "stm32","cpu": "cortex-m0plus","extra_flags": "-DSTM32G0xx -DSTM32G030xx","f_cpu": "64000000L","framework_extra_flags": {"arduino": "-D__CORTEX_SC=0"},"mcu": "stm32g030f6","product_line": "STM32G030xx","variant": "STM32G0xx/G030F6P"},"debug": {"default_tools": ["stlink"],"jlink_device": "stm32g030f6","onboard_tools": ["stlink"],"openocd_target": "stm32g0x","svd_path": "STM32G030.svd"},"frameworks": ["arduino"],"name": "ST bPill-G030","upload": {"maximum_ram_size": 8192,"maximum_size": 32768,"protocol": "serial","protocols": ["blackmagic","cmsis-dap","dfu","jlink","serial","stlink"]},"url": "https://www.st.com/en/evaluation-tools/nucleo-g030f6.html","vendor": "ST"
}
其中:
"variant": "STM32G0xx/G030F6P"
:为PlarromIO的 \packages\framework-arduinoststm32\
目录中对应的芯片 variant 文件夹,它是自定义板子IO和Arduino中IO名字对应所在文件夹。
name
: 板子名称,可自定义
"protocol": "serial"
: 首选下载方法为Serial串口
2. 为板子添加variant
packages\framework-arduinoststm32\variants\
在arduinoFramework中的 variants文件夹中,保存的是正对某块MCU芯片的板子变种。
包含文件及说明:
boards_entry.txt
: 包含通用变体板子声明,简化 board.txt 文件中的板子添加。generic_clock.c
: 包含系统默认时钟配置函数WEAK void SystemClock_Config(void)
,WEAK弱函数,可在系统主程序中重定义修改系统时钟PinNamesVar.h
:
2.1 复制一份variant_generic.cpp / .h 文件
复制后的文件名修改为variant_XXX.cpp / .h
,这边的XXX一定要和第一步中的Json文件名字一致。修改后的文件夹内文件如下图:
2.2 修改文件宏定义
修改重命名后的variant_BPILL_G030.cpp
文件内的宏定义,宏定义名称格式为ARDUINO_XXX
;其中XXX为 json文件名的全大写 形式。如下图:
同时为generic_clock.c
文件添加同用的宏定义,使其支持我们新定义的开发板,如下图:
2.3 *.ld 链接文件
如果你的以上文件夹内没有 *.ld 文件,自行想办法去获取对应芯片的 ld 文件,(去MDK目录下看看或使用cubemx生成一个项目试试)。 复制到本目录。
如果添加好编译仍然有问题,请试着在json中添加以下配置:
修改json文件后需要使用PIO重新 新建项目测试。
platformIO 自定义板子方法相关推荐
- MVC Razor:自定义Helper方法
在使用自定义Helper方法时,开始我试了很多次都不成功一直报错"找不到WebMatrix.WebData.dll.WebMatrix.Data.dll". 应该是一个bug,估计 ...
- 何时使用自定义HTTP 方法
何时使用自定义HTTP 方法 问题描述 您想知道使用自定义HTTP 方法的影响. 解决方案 避免使用非标准的自定义HTTP 方法,因为引入新方法后,就不能依赖那些只了解标准HTTP 方法的现有软件了. ...
- object类中的equals与自定义equals方法详解
object类中的equals与自定义equal方法详解 1.this怎么理解?this == obj表示什么? this就是当前你new出来的对象,这里指谁调用equal方法this指的就是谁,ob ...
- Python基础入门:正则re.sub使用自定义替换方法
在使用正则替换时,有时候需要将匹配的结果做对应处理,便可以使用自定义替换方法. re.sub的用法为: re.sub('匹配表达式',替换字符或替换函数,替换次数,其他参数) 例如,加入将字符串中的$ ...
- 为record类型自定义Equals方法
前言 record类型,这是一种新引用类型,而不是类或结构.record与类不同,区别在于record类型使用基于值的相等性. 例如: public record DemoRecord(int id) ...
- PHP发送数据到指定方法,php通过header发送自定义数据方法_php技巧
下面小编就为大家分享一篇php通过header发送自定义数据方法,具有很好的参考价值,希望对大家有所帮助.一起跟随小编过来看看吧 本文将介绍如何通过header发送自定义数据.发送请求时,除了可以使用 ...
- PyTorch框架学习七——自定义transforms方法
PyTorch框架学习七--自定义transforms方法 一.自定义transforms注意要素 二.自定义transforms步骤 三.自定义transforms实例:椒盐噪声 虽然前面的笔记介绍 ...
- java自定义一个方法,用于返回两个整数的和
java自定义一个方法,用于返回两个整数的和 /*** 自定义一个方法* 用于返回两个整数的和*/ public class Test17 {public static int getSum(int ...
- BootstrapTable自定义ajax方法
bootstrapTable可以自定义ajax方法,通过ajax请求获得数据返回展示在bootstrapTable表格中,这种方式我自认为比较简单常用.本篇还加了简单增删改操作,获得表格选中的数据,以 ...
最新文章
- 千亿参数大模型时代,QQ浏览器团队十亿级小模型「摩天」登顶CLUE
- 【Linux】【服务器】 CentOS7下卸载MySQL详细过程步骤
- 创建二维数组(一维长度3,二维长度6),值为一维数组和二维数组索引值的积
- 四则运算之Right-BICEP测试
- kernel: CPU9: Temperature above threshold
- C语言计算字符串的长度
- 转本计算机考试题目,2011江苏专转本计算机考试模拟试题答案
- typescript 学习
- javascript基础系列:DOM相关的技术知识点
- 数据存储技术-专题介绍
- ESP8266 WIFI模块学习之路(9)——C++实现通过电脑串口读取ESP8266数据
- MDIO总线相关_2
- 剪辑视频时PR播放卡顿不连贯|如何修复Premiere软件中播放太卡问题
- 让ChatGPT来制作Excel表格,ChatGPT实现文本和表格的相互转换
- 一条命令(dd)制作Centos(Linux)优盘(U盘)启动盘
- firstvalue函数mysql_MySQL 窗口函数之头尾函数
- QCA-WIFI如何编译IPQ8074代码
- char、varchar、varchar2区别
- HDU 5454 Excited Database 线段树的维护
- HM数据科学库-matplotlib(二)
热门文章
- 【模拟IC】系统频率稳定性分析与极点补偿技术介绍
- 【设计模式】备忘录模式(以电影明日边缘为例)
- 花老湿学习OpenCV:分水岭原理和实现watershed()
- Centos7配置Hadoop出现Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password)的解决
- 【实战记录】使用阿里云的OSS云存储,上传与删除图片及遇到的问题
- 100行代码实现最简单的基于FFMPEG+SDL的视频播放器(SDL1.x)
- 北航 2018计算机学院排课,关于2018—2019学年秋季学期排课的通知
- 产业区块链一周动态丨蚂蚁集团计划上市,苏州成立10亿元区块链基金
- 温水煮青蛙,我还能活多久
- 认识Python控制流