【win10用vim开发stm32】_vim stm32_来碗豆腐脑的博客-程序员信息网

技术标签: stm32  1024程序员节  gcc  VIM  vim  

前言

本文读者应该已经用过vim插件(不用vim的应该也不会看吧),网上vim插件相关博文很多,我也会在自己的VIM专栏更新自己的一些经验,不会用vim插件的话可以先看看,基本是几个拷贝,比较容易。

最新版vim安装

卸载旧版本重装就可以了

sudo add-apt-repository ppa:jonathonf/vim

1.arm-none-eabi-gcc

  交叉编译工具链,下载地址:arm-none-eabi-gcc,安装文件可以自动添加环境变量,压缩包要自行添加bin目录到环境变量,用这个来编译工程,make后生成的hex和bin文件在./build文件加下,make clean可以清除编译文件

arm-none-eabi-gcc -v  //查看是否安装成功,命令错误的话把安装目录bin添加到环境变量

2.cygwin64

  去这个里面安装make命令,下载地址:cygwin64,安装时一路下一步,这里选择阿里云镜像站在这里插入图片描述
Package->All->Devel,然后选择选择make这一个包安装就可以了,安装完把cygwin安装目录下bin文件夹添加到环境变量
在这里插入图片描述

make -v //查看是否安装成功

在工程目录下make即可编译工程

3.stm32cube

       代码生成工具,生成工具链选择mdk生成后再选择makefile重新生成,这样想用哪个编译用哪个。。。
       mdk使用的标准库和arm-none-eabi-gcc使用的标准库不同,需要在Makefile里面添加arm-none-eabi-gcc的标准库,添加keil标准库的话需要一些修改
工具链/IDE

4.makefile

    代码构建依赖描述工具,stm32cube生成makefile工程后,会自动生成makefile文件,如果工具链装好,进入工程目录makefile同目录下使用make编译。
    文件里面有很多命令,大多不需要理睬,stm32已经帮我们生成了所有,只需要添加自己的源文件路径和库文件路径就可以了。
    添加自己的源文件和头文件路径,参照原有格式书写。头文件路径中-I表示include路径,后面跟路径地址,注意路径空格前加\,括号前也要加\
    标准库最好添加arm-none-eabi-gcc的。
在这里插入图片描述
在这里插入图片描述

    保存后重新compiledb make可以生成新的compile_command.json文件,注意,重新生成后要重新打开vim,这样新的.json文件才能生效。
    路径添加和修改后出错可以用make clean清除一下重新编译

5.vim插件------coc.nvim

  自动补全插件,仓库地址:coc.nvim,安装插件的同时使用插件的推荐vim启动配置,这样才能用gd那些跳转。
  这里使用vim-plug插件管理器来安装,注意安装失败的话需要改一下插件管理器仓库地址,参考:
  链接

6.coc插件------coc-clangd

  舒服打代码最重要的一个东西,提供补全和语法检测,支持补全中文。仓库地址:coc-clangd,安装好coc后在vim界面使用coc命令即可安装,然后安装clangd,安装完成需要把bin目录添加到环境变量

:CocInstall coc-clangd

7.clangd编译数据库生成软件compiledb

  clangd依赖compile_command.json才能很好的工作,这个工具用来生成compile_command.json,否则补全会有问题,仓库地址:compiledb
  需要安装python

pip install compiledb
compiledb make //在工程目录下生成compile_command.json

功能演示

  经过一段时间的使用,还是很完美的,不算调试的话不比vsc差
  库补全:
在这里插入图片描述
  标准库补全:
在这里插入图片描述
  语法检测:
U4MTkxNjc5,size_16,color_FFFFFF,t_70)
  内置终端编译:
在这里插入图片描述
  使用keil编译:
在这里插入图片描述
  使用keil下载:
在这里插入图片描述

  (推一篇之前写的vim基本操作:win下使用gvim编译keil工程及一些常用操作及快捷键------持续更新

  有新东西的话我会慢慢加进来,折腾的路还很长。
  下载调试工具的话还没搞明白,弄清楚了会另外写一篇文章讲下载和仿真,工具链的gdb工具可以直接用,但命令行调试显然是不好用的。
一些其他资料参考:

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/a1058191679/article/details/118003787

智能推荐

微信小程序安装npm包_西瓜奶奶_的博客-程序员信息网

最近更新了微信小程序开发工具,正好练手准备重新搭建一个项目,结果报大概是因为这个官方文档里写的这个:在创建了n个项目之后,终于算是理通了首先npm install XX安装各种你需要用到的包然后npm init初始化项目这里要注意,如果先敲了npm init,package.json是这样的,那同样也会报上面的错误这里我安装了一个crypto-js作为例子npm instal...

深度学习之基础模型-mobileNet_深度学习filters_leo_whz的博客-程序员信息网

MobileNets are based on streamlined architecture that uses depthwise separable convolutions to build light weight deep nueral network. 思想基于depthwise separable convolution(来源于FactorizedNet)来实现 depth

Kettle7.1源码部署_kettle 源码部署_灬点点的博客-程序员信息网

Kettle是一个开源项目,作为ETL工具,kettle提供了丰富的功能和简洁的图形化界面。作为免费开源的ETL工具,可以通过其桌面程序进行ETL步骤的开发并执行。kettle以插件形式来实现每个转换步骤的工作,发行版中已经提供了常用的转换清洗插件,如果还不能满足业务需求的话,则可以自己开发相应插件实现。但在使用原有插件或者自定义插件的过程中遇到问题时,如果不好定位原因,则可以通过源码环境来调试,...

Android动画学习之补间动画和逐帧动画_白马如何补间动画成黑马_fjnu_se的博客-程序员信息网

一、动画介绍在Android开发中,动画可划分为两种:补间动画主要包括:位置、角度、尺寸、透明度等属性变化。逐帧动画通过多张图片轮流播放来显示。二、补间动画1. 透明度渐变动画(AlphaAnimation)透明度渐变动画是通过改变View组件透明度来实现渐变效果。主要可以通过为动画指定开始时的透明度、结束时的透明度以及动画持续时间来创建动画,在XML文件中定义透明度渐变动画,具体代码如下:<?xml version="1.0" encoding="utf-8"?&g

随便推点

zookeeper学习笔记04-开源客户端(ZkClient + Curator)_伊布拉西莫的博客-程序员信息网

五 、开源客户端(ZkClient + Curator)1.ZkClient ZkClient是由Datameer的工程师开发的开源客户端,对Zookeeper的原生API进行了包装,实现了超时重连、Watcher反复注册等功能。想要使用ZkClient必须相应的jar包,由于我的工程使用maven构建的,故在此首先要引入maven依赖: dependency> gr

数据结构--图的遍历和应用_图的遍历标志向量初始化_hernoforgot的博客-程序员信息网

题目:采用邻接矩阵和邻接链表作为图的存储结构,完成有向图和无向图的DFS和BFS操作深度优先搜索法DFS的基本思想:从图G中某个顶点Vo出发,首先访问Vo,然后选择一个与Vo相邻且没被访问过的顶点Vi访问,再从Vi出发选择一个与Vi相邻且没被访问过的顶点Vj访问,……依次继续。如果当前被访问过的顶点的所有邻接顶点都已被访问,则回退到已被访问的顶点序列中最后一个拥有未被访问的相邻顶点的顶点W,...

DIV+CSS学习小结_奋斗的小青年_的博客-程序员信息网

DIV+CSS是WEB设计标准,它是一种网页的布局方法。与传统的通过表格布局定位的方式不同,它可以实现网页页面与表现想分离。因为在牛腩还有JS都有大量的接触到CSS,到现在再学习DIV+CSS的时候,就不再感觉陌生了,都是共鸣~~无论怎么设置CSS样式,都少不了选择器和样式表。样式表样式表最主要的有三种。分别为嵌入式样式表,外部样式表和内联样式表。嵌入式样式表

java.lang.IllegalStateException:Duplicate application configs: dubbo:application_口袋里的小龙的博客-程序员信息网

2020-02-29 18:03:27.681 WARN 6336 --- [ restartedMain] ationConfigEmbeddedWebApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframewo...

Error java: 程序包xxx不存在_worxfr的博客-程序员信息网

打开项目设置勾上Maven->Runner->Delegate IDE bulid最后刷新maven

Android工具类篇 检测手机系统版本号、手机品牌工具类_android 判断手机品牌_其子昱舟的博客-程序员信息网

import android.content.Context;import android.content.pm.FeatureInfo;import android.content.pm.PackageManager;import android.content.res.Configuration;import android.os.Build;import android.util.TypedValue;import android.view.Display;import android.

推荐文章

热门文章

相关标签