在ubuntu下使用CMake及VSCode对LoRaMac-node代码进行编译调试
准备工作
下载代码LoRaMac-node
阅读LoRaMac-node目录下的doc文件夹中的development-environment.md
开工
安装所需环境
CMaka( >= 3.6),
sudo apt install CMake若ubuntu版本为16.04及以下,请参照development-environment.md中提示进行安装高版本的CMake
GNU ARM-Toolchain
Step1: Inside Ubuntu, open a terminal and input
sudo add-apt-repository ppa:team-gcc-arm-embedded/ppaStep2: Continue to input
sudo apt-get updateStep3: Continue to input to install toolchain
sudo apt-get install gcc-arm-embedded若提示已安装,请先删除原先安装的软件
sudo apt-get remove gcc-arm-none-eabi安装openocd
sudo apt-get install openocd安装VSCode
- C/C++
- CMake
- CMake Tools
- Native Debug
开始操作
- 打开VSCode,将LoRaMac-node文件夹导入到VSCode中
- 会让选择kit,选择刚才安装的gcc-arm-embedded,正常安装目录在/usr/bin
点击VSCODE中的如下图标,在此栏的上方图标的三角和锤子分别为config(生成makefile文件),make(生成可执行文件)

点击之后,会在.vscode目录下生成launch.json和settings.json文件,其中setting.json中保存的式CMake的配置,修改其中的内容,可以修改生成的makefile,因为我手边没有stm32l1的芯片,所以在这,我修改成了MoteII和ping-pong(发现LoRaMac程序会提示FLASH不够),

修改之后点击CMake下的configure和build,会重新生成可执行文件。
至此,文件编译成功,接下来进行调试
此处我先说一下openocd命令(我也不怎么了解,看development-environment.md现学的)
openocd -f interface/stlink-v2.cfg -f target/stm32l0.cfg-f 用于选择cfg文件
launch.json中有openocd的命令,可以修改其中的命林对其做修改适配我们的烧录器(因为我用的是stlink-v2),

直接按F5,启动调试
正常的话,启动之后就会跳转到main函数了
Note
- 本人对这套工具链还有些不熟悉,如有错误,还望指正
- 官方代码为低功耗的,在烧录之后再进Debug模式会进不去,提示exit code 1,经查是低功耗导致的
- 官方的md文件中没有说明低功耗设备在进入低功耗之后如何识别,经查,需要添加命令,完整的openocd命令为:
openocd -f interface/jlink.cfg -c "transport select swd" -c "reset_config srst_only srst_nogate connect_assert_srst" -f target/stm32l0.cfg
在ubuntu下使用CMake及VSCode对LoRaMac-node代码进行编译调试的更多相关文章
- 39 Ubuntu下配置python的vscode开发环境
0 引言 最近想在ubuntu下搞深度学习,首先配置了python的vscode开发环境.在配置python时,选择了Anaconda3.x,保证了其相对于系统python2.x的独立性.另外,vsc ...
- am335x在ubuntu下使用StarterWare编写裸机程序并在CCS中用Jlink调试
StarterWare在AM335X上的烧录运行 步骤:1.下载安装StarterWare,我们团购的SK需要02.00.00.07版本.最近外网访问慢,我上传到论坛.2.找一张miniSD卡,不需要 ...
- Ubuntu下安装Golong并用Vscode做IDE最有效方法,避免99%的坑 | 轻松学习GO
最详细的教程,避开99%的坑,亲测有效 由于大部分教程都是win版本的,所以专门总结了一个linux版本的,其核心在于环境配置和插件安装,经历本人通宵7小时解决了这个问题,用自己的踩坑帮助大家避坑,希 ...
- Ubuntu下使用cmake生成可执行文件
1.单个CPP文件的cmake 首先编写一个简单的程序(main.cpp): #include <iostream> using namespace std; int main() { c ...
- Ubuntu下修改CMake版本
https://blog.csdn.net/mdjxy63/article/details/82686504
- Ubuntu下升级Git以及获取ssh keys的代码
今天开始用的git,记下获取ssh keys 的代码 ? 1 2 3 ssh-keygen -t rsa -C "your_email@example.com" # Enter f ...
- 解决Ubuntu下的Eclipse打开Windows编写的java代码的中文乱码
其实所有的中文乱码 问题都是编码不同所导致的.这里要想让eclipse能正常显示出汉字,就要修改它的字符编码 步骤如下: 1 ,点击菜单栏中的Window(窗口),选择Preferences(首选项) ...
- ubuntu 下wireshark 软件安装与使用
在ubuntu下,使用wireshark也是很有必要的.虽然可以使用tcpdump等工具. ubuntu:11.10 1. sudo apt-get install wireshark ...
- 【linux学习笔记】在ubuntu下使用QT Cmake支持C++11
今天在ubuntu下使用QT来进行C++编程,选择了Cmake,当用到initializer_list的时候提示不支持C++11,现提供一下解决方案: 错误提示: error: This file r ...
随机推荐
- java面试题库(长期)
本文内容来自互联网各种面试实例,以及自己的面试经历,主要是中级开发的面试题 初中级java面试主要分为几个部分: 0.序 1.java基础 2. java多线程 3. jvm知识 4. spring等 ...
- 个人永久性免费-Excel催化剂功能第19波-Excel与Sqlserver零门槛交互-查询篇
对频繁使用Excel的高级应用的尝试用户来说,绕不过的一个问题Excel的性能问题,对于几万条数据还说得过去,上了10万行的数据量,随便一个函数公式的运算都是一个不小的负荷,有些上进一点的用户会往Ac ...
- Java:前程似锦的 NIO 2.0
Java 之所以能够霸占编程语言的榜首,其强大.丰富的类库功不可没,几乎所有的编程问题都能在其中找到解决方案.但在早期的版本当中,输入输出(I/O)流并不那么令开发者感到愉快: 1)JDK 1.4 之 ...
- vue项目目录结构详解
项目简介基于 vue.js 的前端开发环境,用于前后端分离后的单页应用开发,可以在开发时使用 ES Next.scss 等最新语言特性.项目包含: 基础库: vue.js.vue-router.vue ...
- http://regex.alf.nu/ 非标准答案
Plain strings (207) foo Anchors (206) ...
- 初识Apache NiFi
一. NiFi介绍 Apache NiFi支持功能强大且可扩展的数据路由,转换和系统中介逻辑的有向图. Apache NiFi的一些高级功能和目标包括: 基于Web的用户界面 设计,控制,反馈和监控之 ...
- 自定义SWT控件一之自定义单选下拉框
一.自定义下拉控件 自定义的下拉框,是自定义样式的,其中的下拉框使用的是独立的window,非复选框的下拉框双击单机其它区域或选择完之后,独立window构成的下拉框会自动消失. package co ...
- 关于ajax异步请求的一个细节问题
首先描述一下问题场景:我们正在做一个汽车出租项目,使用maven+ssm+easyui来完成,这个问题是在做汽车办理出租业务的时候出现的. 问题描述:在使用ajax发送异步请求时,遇到一个问题,就是在 ...
- WPF 打开网页
1.利用浏览器打开using System.Diagnostics; Process proc = new System.Diagnostics.Process(); proc.StartInfo.F ...
- CEPH 对象存储的系统池介绍
RGW抽象来看就是基于rados集群之上的一个rados-client实例. Object和pool简述 Rados集群网上介绍的文章很多,这里就不一一叙述,主要要说明的是object和pool.在r ...