技术标签: stm32 1024程序员节 gcc VIM vim
本文读者应该已经用过vim插件(不用vim的应该也不会看吧),网上vim插件相关博文很多,我也会在自己的VIM专栏更新自己的一些经验,不会用vim插件的话可以先看看,基本是几个拷贝,比较容易。
卸载旧版本重装就可以了
sudo add-apt-repository ppa:jonathonf/vim
交叉编译工具链,下载地址:arm-none-eabi-gcc,安装文件可以自动添加环境变量,压缩包要自行添加bin目录到环境变量,用这个来编译工程,make
后生成的hex和bin文件在./build文件加下,make clean
可以清除编译文件
arm-none-eabi-gcc -v //查看是否安装成功,命令错误的话把安装目录bin添加到环境变量
去这个里面安装make命令,下载地址:cygwin64,安装时一路下一步,这里选择阿里云镜像站
Package->All->Devel,然后选择选择make这一个包安装就可以了,安装完把cygwin安装目录下bin文件夹添加到环境变量
make -v //查看是否安装成功
在工程目录下make
即可编译工程
代码生成工具,生成工具链选择mdk生成后再选择makefile重新生成,这样想用哪个编译用哪个。。。
mdk使用的标准库和arm-none-eabi-gcc使用的标准库不同,需要在Makefile里面添加arm-none-eabi-gcc的标准库,添加keil标准库的话需要一些修改
代码构建依赖描述工具,stm32cube生成makefile工程后,会自动生成makefile文件,如果工具链装好,进入工程目录makefile同目录下使用make
编译。
文件里面有很多命令,大多不需要理睬,stm32已经帮我们生成了所有,只需要添加自己的源文件路径和库文件路径就可以了。
添加自己的源文件和头文件路径,参照原有格式书写。头文件路径中-I
表示include路径,后面跟路径地址,注意路径空格前加\
,括号前也要加\
。
标准库最好添加arm-none-eabi-gcc的。
保存后重新compiledb make
可以生成新的compile_command.json文件,注意,重新生成后要重新打开vim,这样新的.json文件才能生效。
路径添加和修改后出错可以用make clean
清除一下重新编译
自动补全插件,仓库地址:coc.nvim,安装插件的同时使用插件的推荐vim启动配置,这样才能用gd
那些跳转。
这里使用vim-plug插件管理器来安装,注意安装失败的话需要改一下插件管理器仓库地址,参考:
链接
舒服打代码最重要的一个东西,提供补全和语法检测,支持补全中文。仓库地址:coc-clangd,安装好coc后在vim界面使用coc命令即可安装,然后安装clangd,安装完成需要把bin目录添加到环境变量
:CocInstall coc-clangd
clangd依赖compile_command.json才能很好的工作,这个工具用来生成compile_command.json,否则补全会有问题,仓库地址:compiledb
需要安装python
pip install compiledb
compiledb make //在工程目录下生成compile_command.json
经过一段时间的使用,还是很完美的,不算调试的话不比vsc差
库补全:
标准库补全:
语法检测:
内置终端编译:
使用keil编译:
使用keil下载:
(推一篇之前写的vim基本操作:win下使用gvim编译keil工程及一些常用操作及快捷键------持续更新)
有新东西的话我会慢慢加进来,折腾的路还很长。
下载调试工具的话还没搞明白,弄清楚了会另外写一篇文章讲下载和仿真,工具链的gdb工具可以直接用,但命令行调试显然是不好用的。
一些其他资料参考:
最近更新了微信小程序开发工具,正好练手准备重新搭建一个项目,结果报大概是因为这个官方文档里写的这个:在创建了n个项目之后,终于算是理通了首先npm install XX安装各种你需要用到的包然后npm init初始化项目这里要注意,如果先敲了npm init,package.json是这样的,那同样也会报上面的错误这里我安装了一个crypto-js作为例子npm instal...
MobileNets are based on streamlined architecture that uses depthwise separable convolutions to build light weight deep nueral network. 思想基于depthwise separable convolution(来源于FactorizedNet)来实现 depth
Kettle是一个开源项目,作为ETL工具,kettle提供了丰富的功能和简洁的图形化界面。作为免费开源的ETL工具,可以通过其桌面程序进行ETL步骤的开发并执行。kettle以插件形式来实现每个转换步骤的工作,发行版中已经提供了常用的转换清洗插件,如果还不能满足业务需求的话,则可以自己开发相应插件实现。但在使用原有插件或者自定义插件的过程中遇到问题时,如果不好定位原因,则可以通过源码环境来调试,...
二维码的扫描与生成
一、动画介绍在Android开发中,动画可划分为两种:补间动画主要包括:位置、角度、尺寸、透明度等属性变化。逐帧动画通过多张图片轮流播放来显示。二、补间动画1. 透明度渐变动画(AlphaAnimation)透明度渐变动画是通过改变View组件透明度来实现渐变效果。主要可以通过为动画指定开始时的透明度、结束时的透明度以及动画持续时间来创建动画,在XML文件中定义透明度渐变动画,具体代码如下:<?xml version="1.0" encoding="utf-8"?&g
五 、开源客户端(ZkClient + Curator)1.ZkClient ZkClient是由Datameer的工程师开发的开源客户端,对Zookeeper的原生API进行了包装,实现了超时重连、Watcher反复注册等功能。想要使用ZkClient必须相应的jar包,由于我的工程使用maven构建的,故在此首先要引入maven依赖: dependency> gr
题目:采用邻接矩阵和邻接链表作为图的存储结构,完成有向图和无向图的DFS和BFS操作深度优先搜索法DFS的基本思想:从图G中某个顶点Vo出发,首先访问Vo,然后选择一个与Vo相邻且没被访问过的顶点Vi访问,再从Vi出发选择一个与Vi相邻且没被访问过的顶点Vj访问,……依次继续。如果当前被访问过的顶点的所有邻接顶点都已被访问,则回退到已被访问的顶点序列中最后一个拥有未被访问的相邻顶点的顶点W,...
DIV+CSS是WEB设计标准,它是一种网页的布局方法。与传统的通过表格布局定位的方式不同,它可以实现网页页面与表现想分离。因为在牛腩还有JS都有大量的接触到CSS,到现在再学习DIV+CSS的时候,就不再感觉陌生了,都是共鸣~~无论怎么设置CSS样式,都少不了选择器和样式表。样式表样式表最主要的有三种。分别为嵌入式样式表,外部样式表和内联样式表。嵌入式样式表
2020-02-29 18:03:27.681 WARN 6336 --- [ restartedMain] ationConfigEmbeddedWebApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframewo...
打开项目设置勾上Maven->Runner->Delegate IDE bulid最后刷新maven
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.