基于 VS Code 打造 MCU 开发的辅助工具

基于 VS Code 打造 MCU 开发的辅助工具

俗话说,工欲善其事,必先利其器。我们做单片机这一行的,少不了和 MCU 的各式各样的工具打交道,比如 Keil,IAR,PADS 等等。那么,一款得心应手的开发工具,相对于开发者来说是必不可少的。本文主要介绍的就是这样的一款开发工具–Visual Studio Code(简称 VS Code)。下面将以开发板 LPC824 为例,配合其 SDK 详细讲解如何打造一款顺手的开发工具。

注: VS Code 是 MicroSoft 旗下一款免费、开源并可在任何位置运行的开发工具。因此大家完全不必担心在公司使用该软件会造成版权问题。

基于 VS Code 打造 MCU 开发的辅助工具_第1张图片

一、VS Code 软件安装

首先是如何安装 VS Code。VS Code 是开源免费软件,我们直接从官网下载即可,官网链接:VS Code 官网

打开官网后,可以看到不同的操作系统(windows、macOS、Linux)对应着不同的下载文件。因为我的电脑是 win10 x64,所以这里下载 x64 exe 版本(VSCodeUserSetup-x64-1.38.0.exe)即可。

基于 VS Code 打造 MCU 开发的辅助工具_第2张图片
双击安装包进行安装 -> 我接受协议 -> 选择安装位置 -> 勾选添加到 PATH -> 安装。
打开软件,界面如下:

基于 VS Code 打造 MCU 开发的辅助工具_第3张图片

到了这一步, VS Code 已经安装完成。

二、LPC824 Demo & SDK 准备

本文使用的 Demo 板 & 调试工具如下:

  • Demo 板(可选):NXP LPCXpresso824-MAX 开发板(包含 Micro USB cable)。

  • 下载调试工具:Keil uvision5
    下载地址:https://www.keil.com/download/

    基于 VS Code 打造 MCU 开发的辅助工具_第4张图片

  • SDK 生成:https://mcuxpresso.nxp.com/en/welcome
    需要注册 NXP 官网账号

    基于 VS Code 打造 MCU 开发的辅助工具_第5张图片

注:此处详细教程参考 大大通-LPC824 环境搭建,这里不再赘述。

三、VS Code 环境搭建

1. 插件安装

点击插件按钮,进行插件名搜索并安装。
基于 VS Code 打造 MCU 开发的辅助工具_第6张图片
安装如下几款常用插件:

  • Chinese(Simplified) : VS Code 中文简体包,方便习惯中文界面用户使用。 (以下介绍均以中文界面为背景) 基于 VS Code 打造 MCU 开发的辅助工具_第7张图片

    安装完成后重启 VS Code 即可,中文界面如下:
    基于 VS Code 打造 MCU 开发的辅助工具_第8张图片

  • C/C++ :C/C++代码,智能感知,debugger,和代码浏览。

    基于 VS Code 打造 MCU 开发的辅助工具_第9张图片

  • koroFileHeader:用于生成文件头部注释和函数注释的插件。
    基于 VS Code 打造 MCU 开发的辅助工具_第10张图片

2. SDK 环境

  • 导入 SDK:

    文件 -> 打开文件夹 -> 选择 SDK_2.6.0_LPC824 文件夹,确定即可导入 SDK。
    基于 VS Code 打造 MCU 开发的辅助工具_第11张图片

  • 打开 hello_world.c 程序:

    SDK_2.6.0_LPC824\boards\lpcxpresso824max\demo_apps\hello_world\hello_world.c

    双击打开(左键单击只会打开暂存界面)

    基于 VS Code 打造 MCU 开发的辅助工具_第12张图片

  • 修改项目配置文件:

    上图中我们可以看到代码中有红色下划线,代表该处代码有语法错误。鼠标放到该处可以在该行上方出现小灯泡,点击小灯泡可以看到解决建议。

    基于 VS Code 打造 MCU 开发的辅助工具_第13张图片

    点击第一条添加 Include Path,将 Keil 的相关配置头文件导入到项目的包含路径中去。
    我们不使用 UI 界面来设置项目信息,直接打开 .vscode\c_cpp_properties.json 文件来配置。

    基于 VS Code 打造 MCU 开发的辅助工具_第14张图片

    此处先将该项目配置文件名改为 hello_world

    可以看到其 includePath 已经将 Keil 头文件包含进去。保存后回到 hello_world,c,发现红色下划线消失,该语法错误解决。并且右下角原来的 Win32 改为了 hello_world。

    基于 VS Code 打造 MCU 开发的辅助工具_第15张图片

四、功能演示

  • SDK 导入:

    如上,不再赘述

  • 函数、变量跳转,源码查看:

    在 hello_world.c 中任选一个函数,将鼠标移动到函数名称上,可以看到会有函数的简要提示(即函数注释):

    基于 VS Code 打造 MCU 开发的辅助工具_第16张图片

    若是鼠标右键点击,可以发现有如下许多选项:

    基于 VS Code 打造 MCU 开发的辅助工具_第17张图片

    左键单击第一个选项 or 使用快捷键 F12 or Ctrl + 左键单击函数名,即可快速跳转到函数定义处(打开额外页签),按 Alt + 方向左键,回到上一个视图;

    若选择查看定义则在该页签查看定义。

  • 代码高亮,智能提示补全

    在使用了 C/C++ 插件后,VS Code 可以自动将 C/C++ 中的关键词,函数名等进行高亮区分。

    同时,在正确配置了包含路径的情况下,码代码时可以做到变量、函数、结构体等智能补全,代码提示,这一点极大的提高了生产效率。

    基于 VS Code 打造 MCU 开发的辅助工具_第18张图片

  • 代码快捷注释:

    使用 koroFileHeader 插件,如何配置参考:koroFileHeader 配置说明

    接下来使用快捷键即可完成代码注释功能。文件头部注释示例:
    基于 VS Code 打造 MCU 开发的辅助工具_第19张图片

    注:为函数所写的注释,也会在函数简要提示中显示出来,十分方便。

  • 代码规范:

    在函数名右键点击时,里面有一个选项是格式化文档,该选项并不是如名字般将文档内容全部抹除,而是按照所用语言标准智能调整格式,使其符合语言标准格式,输出内容赏心悦目。

    代码内容正确,但是格式不规范:包括空格过多/少,缩进不统一,空行过多,’{}'使用不对称 等,造成代码可读性较差。

    基于 VS Code 打造 MCU 开发的辅助工具_第20张图片

    使用代码格式化后(快捷键 Alt + Shift + F),如下:

    基于 VS Code 打造 MCU 开发的辅助工具_第21张图片

  • 侧边栏快速查找:

    侧边栏有一个大纲,会列出目前页签文件的所有定义的 变量、结构体、宏定义、函数 等,点击其中任一个,就会跳转到相应位置,十分方便。

    基于 VS Code 打造 MCU 开发的辅助工具_第22张图片

  • 其他:

    身为专业编辑器,VS Code 还有很多其他功能如文件比较,多行编辑,插入代码片段等,也可以进行编译下载(需要其他软件辅助),不再展开。

五、找 BUG

其实若是一步一步按照上述设置,大家会发现依然有不少程序存在红色下划线的错误提示,这是为什么呢?
如 pin_mux.c 程序,

基于 VS Code 打造 MCU 开发的辅助工具_第23张图片

虽然提示无法找到定义,但是仍然可以跳转到定义处,发现是在 LPC824.h 头文件中有定义,那么我们不由去想:是因为源代码未将该文件 include 吗?

于是我们在全局搜索中搜索 ‘#include LPC824.h’,来查找是哪些文件包含了该头文件。结果如下:

基于 VS Code 打造 MCU 开发的辅助工具_第24张图片

只有一个文件包含,看名字是设备注册用,应该包含了设备信息。点进去看,内容不多:

基于 VS Code 打造 MCU 开发的辅助工具_第25张图片

显然,如果定义了 CPU 型号是 LPC824xx,才会去 #include LPC824.h,可是该文件并未定义 CPU 型号,而 VS Code 并不会去识别到 CPU 型号,那么想到一个解决办法便是:在 VS Code 的项目设置中添加一个固定的预设宏定义,
此处定义 CPU_LPC824M201JHI33 即可。

基于 VS Code 打造 MCU 开发的辅助工具_第26张图片

保存后再到 pin_mux.c 中看,发现红色下划线仍未消失!其实此处只是某些参数的实时性较低,按住 Ctrl+鼠标移动到参数上,就会发现红色下划线消失,该 Bug 解决!

基于 VS Code 打造 MCU 开发的辅助工具_第27张图片

注:若是在红线处小灯泡选择了 Disable error squiggles,也会使红线消失,但只是无视错误,并不会解决后续问题。如未加 CPU 宏定义,会导致智能提示不全等问题。若是想还原,只需将 .vscode\settings.json 下的 ‘C_CPP.errorSquiggles’ 对应改为 Enabled 即可。

enabled

六、总结

Keil、IAR 等 IDE 注重编译、调试功能,但是其代码编辑功能很不方便,而 Source Insight 等注重代码查看、编辑功能的软件又需要正版版权,因此使用 VS Code 来配合 Keil 十分合适。我们只需要在 VS Code 中编写查看代码,在 Keil 中下载调试,就能提高生产线率,实现 1+1>2 的配合使用效果。

并且,VS Code 配置 MCU 编辑环境十分方便,主要配置项目信息即可,针对不同的 Demo 代码可能需要微调。而配置完成的 VS Code 拥有丰富的功能(导入项目,函数跳转,源码查看,代码高亮,智能补全,快速注释,代码标准化,侧边栏速查等等),相信这款工具一定能成为大家开发 MCU 的利器。

你可能感兴趣的:(MCU)