作者:luxun12222
版权声明:本文为博主原创文章,转载请标明转载来源( https://blog.csdn.net/luxun12222/article/details/80756354)
最近公司项目需要使用LoRa搭建物联网节点,需要编译和构建LoRaWan的开源代码。今天记录一下Windows下使用VS Code构建LoRaMac-node代码。
LoRaMac-node是LoRaWan开源代码,可以在github上下载到源代码,下载地址: LoRaMac-node
此文档下载的版本是 4.4.1(2018-03-07)版本
解压LoRaMac-node-4.4.1.zip
备注:编译LoRaMac-node项目的路径中不要出现中文,空格,或者目录名过长情况,有可能构建会出现位置异常。
条件:CMake版本 >= 3.6
下载CMake的Windows版本,编写此文档的Windows是x86_64版本,所以下载的是cmake-3.12.0-rc1-win64-x64.msi
安装cmake-3.12.0-rc1-win64-x64.msi,并且选择添加CMake环境变量
在系统环境变量Path中可以看到
安装完成,查看是否安装成功
在cmd输入命令:cmake --version
访问ARM开发者网站下载GNU ARM嵌入式开发工具。
安装gcc-arm-none-eabi-7-2017-q4-major-win32.exe程序。
在系统环境变量Path中可以看到
安装完成,查看是否安装成功
在cmd输入命令:arm-none-eabi-gcc.exe --version
MSYS2是Windows下模拟linux工具
安装msys2-x86_64-20180531.exe程序,安装完成自动打开MSYS2控制台
安装msys的make组件
在msys2控制台输入命令:pacman -S msys/make
测试make是否安装成功
在msys2控制台输入命令:make -v
安装MinGW64的GCC和libs(这里32位系统安装MinGW32,此文档使用的64位系统,所以选择MinGW64的GCC安装)
在msys2控制台输入命令:pacman -S mingw64/mingw-w64-x86_64-gcc
32位系统:pacman -S mingw32/mingw-w64-i686-gcc
在msys2控制台输入命令:pacman -S mingw64/mingw-w64-x86_64-gcc-libs
32位系统:pacman -S mingw32/mingw-w64-i686-gcc-libs
测试MinGW64(获得MinGW32)的GCC是否安装成功
在msys2控制台输入命令:gcc -v
添加环境变量:
创建MINGW_HOME变量
创建C_INCLUDE_PATH变量
创建LIBRARY_PATH变量
在Path中添加MinGW的bin目录
OpenOCD是一个开源的JTAG上位机程序, 配合JTAG调试协议,可以对嵌入式硬件设备进行指令集级别和寄存器级别的调试。
下载OpenOCD非官方二进制包
解压openocd-0.10.0.7z到C盘,并且OpenOCD目录必须是C:\openocd(如果不是必须设置环境变量OPENOCD_BIN=openocd的bin目录)
VS Code是微软发布的一款免费开源的现代化轻量级代码编辑器,支持几乎所有主流的开发语言的语法高亮、智能代码补全、自定义热键、括号匹配、代码片段、代码对比 Diff、GIT 等特性,支持插件扩展,并针对网页开发和云端应用开发做了优化。软件跨平台支持 Win、Mac 以及 Linux。
VSCode构建LoRaMac-node代码需要插件C/C++,CMake,CMake Tools,Native Debug
安装完成点击“Reload”重新加载VS Code
打开完成项目如下图:
打开settings.json或者点击菜单“文件”->“首选项”->“设置”,进行编辑
选择“工作区设置”,在“cmake.configureSettings”之后追加
"cmake.preferredGenerators": [
"MinGW Makefiles",
"Ninja",
"Unix Makefiles"
]
如下图:
在“cmake.configureSettings”之中添加key-value
// arm toolchain prefix path
"TOOLCHAIN_PREFIX": "C:/GNU_Tools_ARM_Embedded",
如下图:
在“用户设置”追加CMake的路径
// 设置cmake的路径
"cmake.cmakePath": "C:/Program Files/CMake/bin/cmake.exe",
如下图:
在菜单“查看”->“命令面板”打开命令面板,或者使用快捷键打开(Ctrl+Shift+P)打开
输入cmake后,自动呈现cmake相关的选项
可以选择CMake: Scan for Kits(自动扫描CMake工具),也可以选择CMake:Edit user-local CMake kits(用户自定义CMake工具)
这里选择CMake:Edit user-local CMake kits
备注:使用CMake:Edit user-local CMake kits(用户自定义CMake kits)编辑保存之后,不要在选择CMake:Scan for Kits(自动扫描CMake工具), 会导致自定义配置清空需要重新配置的情况,CMake:Scan for Kits会扫描到添加到环境变量的CMake kits,为了避免多个kits冲突,不添加环境变量,使用用户自定义CMake kits比较好。
会打开cmake-kits.json文件,编辑在文件中添加自定义CMake kit
{
"name": "GNU ARM ToolChain GCC",
"compilers": {
"CXX": "C:\\GNU_Tools_ARM_Embedded\\bin\\arm-none-eabi-g++.exe",
"C": "C:\\GNU_Tools_ARM_Embedded\\bin\\arm-none-eabi-gcc.exe"
}
如下图:
打开命令面板,输入cmake,选择CMake:Select a Kit
选择GNU ARM Toolchain GCC项
配置成功在VS Code的左下角状态栏如下所示:
根据自己的需求选择,这里选择Debug
打开命令面板,输入cmake,选择CMake:Set the current build variant
配置成功在VS Code的左下角状态栏如下所示:
打开命令面板,输入cmake,选择CMake:Configure
配置完成后,可以在VS Code的输出中看到如下图:
打开命令面板,输入cmake,选择CMake:Build(构建所有)或者CMake:Build a target(构建某个特定目标)
构建LoRaMac项目完成如下图:
到这里构建完成, 如果需要构建其他Application就需要修改配置文件。
原文作者:luxun12222
技术博客:https://blog.csdn.net/luxun12222/