vscode+platformIO开发STM32
Posted Sola_Ex
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vscode+platformIO开发STM32相关的知识,希望对你有一定的参考价值。
vscode+platformIO开发STM32
前言
一堆堆的项目导致一直忙忙碌碌,项目才是实战的真理哈哈哈。在持续使用vscode+pio的方式开发STM32的时间里面,也肯定不是一帆风顺,总会遇到很多奇奇怪怪的问题,不过吧遇到了就记录下来,以便后面再遇到或者有朋友遇到了,也能找到个解决办法或者提供一些解决思路。
FreeRTOS的路径问题
之前的话,我一直将FreeRTOS当作一个固定库来使用,因此再pio的目录下,我将FreeRTOS的文件夹放在lib的文件夹下面,通过一些额外的路径添加后,其实编译起来是没问题的。但是我需要的不仅仅是这样,因为我希望我的项目,不仅仅只是在当前的板卡、或者说当前的MCU来使用,如果我每个项目、板卡都需要新建一个新的工程来,重新添加不一样的freeRTOS,那我就会觉得真的很耗时间,毕竟MCU不会真的这么少,穷出不断。会发现,像我这样的,需要多种板卡来的话,比如我是用的M0的,需要切换M4F的,那就会出现编译有问题。
具体原因是,freeRTOS需要适配一些平台文件,
一开始我使用的CM0的,后面在我加入CM4F之后,就会出现文件冲突报错,其实也正常,因为我并没有过滤掉不需要的文件。keil/IAR上,具有文件屏蔽编译的功能,但是我认为这个也不好用,没道理我切换一个MCU,我又是打开一个新的工程,那我就会觉得很乱。因此pio提供了一个
src_filter
的关键字。它可以很好解决编译文件的关联问题,但有个缺点是,只能操作src文件夹下的文件夹或文件。下面是例子:
它会使用固定的语法:
+<PTAH>, -<PATH>
来关联或去除指定的文件夹的源文件,这样的话,同一个项目下,希望项目可以适配更多的MCU,就可以很容易的做到,在原逻辑、应用不需要变化的前提下,直接新增[env:xxx],换default_envs = xxx,编译,下载,在另外一个MCU上直接跑起来,妈妈再也不用担心我移植好慢了。如果是不同平台的MCU当然也没问题,主要是board对应的json文件,以及相关库添加好就可以了,pio实际上是支持所有Cortex-A/R/M内核的,主要还是配置问题,用多了自然就觉得方便多了。
以上是关于vscode+platformIO开发STM32的主要内容,如果未能解决你的问题,请参考以下文章