Lorawan源码程序编译和运行过程记录

一、源码获取解压

1、 解压源码
不同的LoRa模块提供商也会因为硬件结构不同而提供他们适配的源码总体符合smetech官方源码框架,解压源码:Sx1302LinuxDriver.zip
在这里插入图片描述
2、 修改顶层目录下的Makefile,修改架构和交叉编译工具
在这里插入图片描述
3、编译源码
Make
4、因为我们的lora模块是连接在spi总线之上,所以查看spi测试代码,修改核心库源码libloragw/tst/test_loragw_spi.c
在这里插入图片描述5、重新Make以后在开发板运行执行spi测试程序test_loragw_spi,提示如下:
在这里插入图片描述
6、通过打印提示发现缺少reset_lgw.sh这个文件,这个是通过GPIO复位集中器芯片的脚本文件,这个文件在上层目录tools底下,需要重新拷贝到和test_loragw_spi同级目录下才可以
7、执行spi测试程序发现报错 sleep:invalid number ‘0.1’,报sleep格式错误,因为在脚本中不能使用小数,将sleep 0.1改为usleep 10000
在这里插入图片描述
8、再次执行发现错误
在这里插入图片描述
7、 通过打印信息分析没有读到lora寄存器的地址,读写函数也没有得到具体的数据,所以
猜测是lora的reset还是没有复位成功,通过和硬件工程师确定,发现com335上的CN36(spi接口上边的reset是系统复位io口)。因为板子上有很多按键,原先想用按键的gpio给我使用,后来用了其他排针的gpio
在这里插入图片描述
通过loar源代码中的rest_lwg.sh复位脚本中的代码分析需要两根gpio,一根rest、一根power_en,当power_en一直保持高电平时,rest由高变低就可以启动lora。所以让硬件工程师将按键(gpio口)给我使用
在这里插入图片描述
发现按键的gpio口通过芯片之后再接到按键上,但是由于供应商提供的芯片手册缺失,不够完全,没有办法确认,只能通过能够确认的gpio口,所以选中了CN20(I2C接口)
在这里插入图片描述
8、通过杜邦线接(Lora:IO6 ----335:I2C5)、(Lora:rest-----335:I2C6),修改rest_lwg.sh脚本中的引脚定义
在这里插入图片描述

二、程序测试

1、、复位测试
在这里插入图片描述
2、spi测试
再执行之后结果如下:发现如下问题,主控板和loar模块之间的读写没有问题,但是连续读写有问题。
在这里插入图片描述
在这里插入图片描述
3、固件库版本和硬件平台兼容测试:
在这里插入图片描述
4、Lora主程序代码运行报错,猜测是网络问题,查看代码发现是主程序lora_pkt_fwd中连接NS server时候创建套接字失败,检查发现是开发板无法ping通外网(无法联通lora基站)
在这里插入图片描述
5、解决方法:
查看路由表:发现什么都没有,然后添加路由表route就可
在这里插入图片描述
route add 172.16.31.1 dev eth0
route add default gw 172.16.31.1 eth0

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值