lorawan 开发
文章平均质量分 56
相望@于江湖
这个作者很懒,什么都没留下…
展开
-
在线系统升级功能(一)—mtd工具实现嵌入式设备在线升级
一、flash相关概念TI COM335 升级功能,板子采用的是一个512M的nand flash,使用mtd管理分区,mtd同时提供了字符设备节点和块设备节点读写flash分区内容:Nand flash特性:1)每一位只能从1写0,不能从1写02) 虽以block为单位,真正读写按照page当然可以借助mtd命令或者uboot阶段的flash读写命令直接擦除烧写flash,但是当系统启动以后运行文件系统,这种方式明显有问题,比如flash_erase擦除mtd下的分区时候会有部分进程使用这些f原创 2022-01-26 17:01:37 · 2180 阅读 · 0 评论 -
在线系统升级功能(四)—mtd工具实现嵌入式设备在线升级
升级脚本编写1、升级的思想:1)、uImage需要直接擦除烧写对应的flash块,对于rootfs已经在运行的过程中,需要保留用户相关数据同时进行定向定点更新(分为要升级修改内容的、要增加内容的、大部分忽略的这么三类)2)、脚本分析编写:脚本运行时候需要带着升级的问题系统镜像,比如:./sysupgrade -f rootfs.tar (升级包rootfs.tar,这个升级包将会被放到/tmp目录下,同时解压出来)2、升级脚本#!/bin/bashexport VERSION=3exp原创 2022-01-27 09:51:02 · 670 阅读 · 0 评论 -
在线系统升级功能(三)—mtd工具实现嵌入式设备在线升级
文件系统升级步骤1、启动系统查看proc/mtd,显示新的分区(user)2、将root.bin烧写到新分区user中,让文件系统支持mtd工具,nandwirte和flash_erase必须 Package Selection for the target ---> Filesystem and flash utilities ---> [*] mtd/jffs2 utilities原创 2022-01-27 09:50:36 · 770 阅读 · 0 评论 -
在线系统升级功能(二)—mtd工具实现嵌入式设备在线升级
一、升级步骤1、增加flash分区,修改uboot源码和Linux内核源码1)、修改u-boot源码#define MTDPARTS_DEFAULT 这个宏定义决定 u-boot 对 nand 的分区,可以增加一个,最后一个没有逗号隔开,注意带单位新增的user这个分区为了烧写新的更新的rootfs镜像2)、修改内核源码2、重新编译uImage、u-boot.img、MLO烧写1)擦除flash2)烧写u-boot.img和u-boo-spl.bin3)重新烧写flash的SPL原创 2022-01-26 17:07:29 · 3269 阅读 · 0 评论 -
Lorawan 与NS端联调测试记录
Lora数据包构成分析前导码(默认12个符号长度) + 可选类型报头 + 数据有效负载 + crc数据校验步骤1、 开发板ping通NS端(保证lorawan能够入网)2、 供应商提供的商用lorawan NS 创建网关(保证在线状态)1) 查看当前lorawan的MAC地址2)修改配置文件global_conf.json:网关EUI是lorawan的MAC地址得到的,要和global_conf.json文件中保持一致,因为地址为:E0:62:34:2D:D1:9C,所以对原创 2022-01-26 16:49:03 · 829 阅读 · 0 评论 -
Lorawan源码程序编译和运行过程记录
一、源码获取解压1、 解压源码不同的LoRa模块提供商也会因为硬件结构不同而提供他们适配的源码总体符合smetech官方源码框架,解压源码:Sx1302LinuxDriver.zip2、 修改顶层目录下的Makefile,修改架构和交叉编译工具3、编译源码Make4、因为我们的lora模块是连接在spi总线之上,所以查看spi测试代码,修改核心库源码libloragw/tst/test_loragw_spi.c5、重新Make以后在开发板运行执行spi测试程序test_loragw_spi原创 2022-01-26 16:41:22 · 1237 阅读 · 1 评论 -
Lora源码的相关问题(lora_pkt_fwd.c 修改记录)
一、关于Lora源码的相关问题1、首先lorawan需要将smetech的源码的I2C和温度相关的代码去掉,因为当前的模块中并没有相关的代码,2、lora移植涉及到的平台主要是spi驱动移植、外部中断、休眠等几个地方二、问题解决记录1、去掉I2C和温度相关代码,注释掉相关代码2、打开hal库检查信息,这样就可以在lorawan程序运行过程中打印3、编译报错解决,主要是lgw_start函数的修改引起的错误修改libloragw/inc/loragw_hal.h这个头文件,将函数参原创 2022-01-26 16:26:35 · 1904 阅读 · 0 评论 -
Lora模块调试记录
一、Lora模块调试启动过程调试1、Lora主程序启动这个报错主要是GPS模块使用了另外一路的spi,在检查spi的模式、速率等等时候报错。目前没有GPS模块所以不影响正常运行情况下的报错信息忽略不用管,卡在这个位置的代码可以直接注释掉,继续往后执行:2、如上报错是I2C设备打开失败,读取的是一个温度值,目前没有这个设备,报错忽略继续往下执行即可,由于报错直接退出所以注释报错这句代码3、接收到到了前导码,但是rxpk上行数据 txpk下行数据都没有收到,直接退出程序注释掉退出位置的代码原创 2022-01-26 16:19:00 · 1384 阅读 · 0 评论 -
buildroot中增加Lora模块(sx1302)驱动
增加sx1302的源码1、在buildroot顶层目录dl目录下增加sx1302的源码2、在buildroot的package目录下创建sx1302目录,然后创建Config.in和sx1302.mk两个文文件。其中Config.in文件内容如下,这个文件主要是菜单选项,用来产生make menuconfig选配的选项其中sx1302.mk文件是编译的规则,也就是makefile,由于我目前还需要将整个源码和配置文件都保存到跟文件按系统中,所以需要cp拷贝3、make menuconfig原创 2022-01-26 16:07:50 · 1694 阅读 · 0 评论 -
AM335X spi驱动移植(二)-驱动测试
原理图分析AM335主控板SPI接口分析,我这个开发板有两通道spi,而我选择了spi0,这是一排扩展IO原创 2022-01-26 15:55:00 · 1297 阅读 · 0 评论 -
AM335 —spi驱动移植(一)
一、PCB原理图分析1、AM335主控板SPI接口分析总共有四路spi,我使用了spi0这一组。2、原理图分析二、spi驱动移植1、 spi设备驱动移植(去I2C增spi)开发板上电以后通过查看/dev目录,底下没有生成对应的spi设备,推测spi驱动未被加载到内核中,原因一:可能是根文件系统没有mdev或者udev服务,不会直接创建设备节点。原因二:没有spi驱动代码,需要修改内核源码,增加spi设备驱动排查一:通过修改查看i2c驱动,发现i2c设备驱动能够自动创建设备节点,排除原创 2022-01-26 15:40:30 · 2519 阅读 · 0 评论 -
Loarwan源码(lora_pkt_fwd.c)阅读分析
int main(int argc, char ** argv){原创 2022-01-26 15:29:23 · 2975 阅读 · 0 评论 -
buildroot 构建文件系统配置过程
文件系统构建方式自己使用过的构建系统方式主要有busybox、yocto、buildroot三种吧,openwrt也可以,目前还没有使用过,公司另个一mesh项目中使用了这种方式。刚学习嵌入式的时候当然是用busybox构建系统了,这样搭建一个最简的文件系统,但是实际开发工程中可能要移植很多东西,比如项目就要求后续要支持python开发环境,而后边的几种可以通过make menuconfig的方式选配比较适合在框架基础上添加很多软件功能。大概了解了一下yocto工具,常被车载IC行业选中,一般厂商提供原创 2021-08-29 19:36:20 · 1063 阅读 · 0 评论 -
AM335X 内核移植及问题解决
步骤由于给我的内核版本是3.2.0,太低,我的ubuntu是18.04的,后续处理了很多版本不兼容问题1、 解压源码 tar -xvf linux-3.2-evb335x.tar.bz22、 指定源码顶目录下的编译工具链以及代码编译之后运行的架构平台 197 ARCH ?= arm 198 CROSS_COMPILE ?= arm-none-linux-gnueabi-3、 清除内核源码的旧文件目标配置make mrproper4、 根据公板参考板生成自己的配原创 2021-08-28 17:15:27 · 549 阅读 · 0 评论 -
am335 u-boot移植
u-boot源码移植u-boot移植来说主要关心的是生成配置:根据官方资料提供: AM335X 上电后根据信号SYSBOOT[0:4]的电平来配置加载系统的硬件优先顺序,CoM-335X 可从NAND Flash 或 EMMC 启动系统(二者选一)。通过短接和断开 CoM-335X 的跳线 J1,可改变 AM335X的启动顺序,NAND 版本和 EMMC 版本的 J1 位置如下图所示:配置时候由于我的是板载Nand,并且是512M的,上边的标识太差了看不清,通过板子的出场u-boot打印信息看的,偷懒原创 2021-08-28 17:00:35 · 349 阅读 · 0 评论 -
AM335交叉编译环境搭建
概述近期公司准备推出一款lora网关产品,采用了两套产品并行开发,交给我这边的是一块盈鹏飞的com335x(也就是主控为AM335)的验证板,还有芯域矩阵的sx1302的lora模块,lora终端。由于公司目前人员紧缺,从功能验证到主要功能实现全在我这边了,不过领导那边有现成的web端解决方案,基本上我这边功能完成以后项目雏形都具备,后边就是立项推进产品研发了。特此大体记录一下自己的工作,陆续更新……COM335开发板简介上班第一天就拿到了这么一块板子如下图,和相关资料(没有pdf格式的pcb原理图和原创 2021-08-28 16:51:46 · 530 阅读 · 0 评论