专栏首页物联网思考LoRaNode开发——初识SDK

LoRaNode开发——初识SDK

从github获取节点源码https://github.com/Lora-net/LoRaMac-node/tree/develop,可以看到最新的源码是v4.4.2。

  • 基于LoRaWAN规范1.0.3,地区参数v1.0.3revA
  • 支持Class A、Class B、Class C
  • 支持多个频段,CN470、US915、AU915、AS923、EU868、RU864、KR920

Branch选择为develop:

下载ZIP,点击Download ZIP即可,既就是下载压缩包:

正确解压LoRaMac-node-develop.zip文件:

.vscode:里面是用VScode打开文件的时候的一些配置;

cmake:cmake主要是用于构建Makefile文件用的;

Doc:主要是原理图和开发环境的说明

src:源码,也是我们最需要关注的文件

.gitignore:与git工具相关的文件

CMakeLists.txt:cmake工具的依赖文件

LICENSE.txt:许可证之类的说明

readme.md:对这个文件夹的一些详细说明

在windows下开发我们主要关注两个文件夹Doc和src:

Doc文件夹

development-environment.md主要是说明了开发环境的构建:默认是linux下的vscode,编译工具是GCC,Makefile文件构建工具是Cmake。

NAMote72-platform.md 、NucleoLxxx-platform.md 、 SAML21-platform.md、 SKiM88xx-platform.md是官方不同的demo板子的资料链接。

SX1276-Wing-Board-(03-91016-RA).pdf是单独1276的原理图。

src文件夹:代码全在这个文件夹里面。

apps文件夹:里面主要是四种应用。

LoRaMac:符合LoRaWAN规范的例程

ping-pong:点对点的例程(一发一收)

rx-sensi:接收灵敏度测试的例程

tx-cw:持续发送的例程

boards文件夹:板级驱动、库函数、mcu启动文件等,可以看出支持好几种mcu(stm32l152、stm32l073、stm32l476、saml21(以前atmel的低功耗系列))。

mac文件夹:LoRaWAN协议栈相关的东西都在这里面,子文件夹region里面是各个地区的参数。

peripherals文件夹:主要是一些外设的驱动,sofe-se文件夹是与加密相关的文件,LoRaWAN采用的是AES-128加密。

radio文件夹:主要是射频驱动,其中sx1276和sx1278的驱动是相同的。

system文件夹:剥离mcu的外设驱动,就是将不同的mcu的底层驱动封装成一样的函数接口,应用层接口都是一样的,如果换成其他的mcu只需更改驱动即可。

最后再主要看一下LoRaMac文件夹:

classA:LoRaWAN classA节点

classB:LoRaWAN classB节点

classC:LoRaWAN classC节点

commom:共用的一些文件

fuota-test-01:基于LoRaWAN的固件无线升级

periodic-uplink-lpp:lpp协议的实现

以上就是LoRa Node 最新的SDK的代码结构。

本文分享自微信公众号 - 物联网思考(everythinglink),作者:YiShao

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-11-05

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • LoRa节点开发——代码详解如何修改发射和接收信道(频率)

    本文主要结合LoRaNode SDK v4.4.2和LoRaWAN规范1.0.3来展开。

    ManInRoad
  • LoRa终端设备ASR6505普通GPIO操作

    前言:ASR6505是基于STM8L和SX1262的SIP封装,因此操作ASR6505的GPIO实质上就是STM8L的GPIO,因此可以直接使用STM8的标准库...

    ManInRoad
  • ASR6505 LoRaWAN通信(一)

    前言:在LoRaWAN网络中,终端设备直接与网关通讯,设备和设备之间不通讯。设备需要先入网,再上报数据。

    ManInRoad
  • 程序员已经很好了,但是,很难更好了

    LieBrother
  • MyLoader原理简介

    提起mydumper,首先让人想到的是相对于mysqldump的多线程逻辑备份工具,而往往会忽略同是mydumper项目下的myloader工具。myloade...

    ivansqwu
  • 血泪控诉 看ERP巨头如何榨干渠道商的最后一点价值?

    软件行业一直有一个潜规则,就是支撑销量增长的绝大部分来自渠道分销伙伴的功劳,但是渠道商这两年却一直生活在食物链的最底端,当我们看到软件厂商营收业绩不断增长的时候...

    人称T客
  • 使用python打印99乘法表的3种写法

    99乘法表就是两个数相乘,最大就是 X * X ,而不会出现 X * (X+1),这里可以使用2个for循环,第一层是1-9,第二次最大截止第一层的数字,程序呼...

    披头
  • 火爆的用车服务最终还是BAT的生意

    “相关部门”的存在并没有让互联网+出行服务降温,它正在以燎原之势蔓延。出租车只是开始,专车服务也只是局部,所有出行交通服务都在被互联网渗透。 200+玩家构建的...

    罗超频道
  • Magic Leap AR眼镜被怼炒作,目前AR技术落地仍困难重重

    在混合现实硬件和软件的世界中,很少有人能像Oculus CTO John Carmack那样拥有专家级的可信度,关于ID软件领域的开创性3D工作,他在几年前就在...

    AiTechYun
  • 神奇的G1——Java全新垃圾回收机制

    G1全称是Garbage First Garbage Collector,使用G1的目的是简化性能优化的复杂性。例如,G1的主要输入参数是初始化和最大Java堆...

    博文视点Broadview

扫码关注云+社区

领取腾讯云代金券