从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的代码结构。