LoRaWAN stack移植笔记(六)_调试2】的更多相关文章

前言 调试的过程中碰到的问题基本都是以前没有遇到过的,而且需要对整个协议栈及射频方面的工作流程较熟悉才能找到问题的原因,需要多读SX1276的数据手册以及与射频芯片的物理层通信例程和MAC层通信例程进行对比相结合. 正文 发送失败 LoRa 模块在进行 模式切换时,比如TX 切换到RX模式,需要先将设备切换到standby模式 CRC 校验失败,然后程序陷入死循环 按逻辑来讲,CRC校验失败,应该进行的操作是吧校验失败的这个数据包丢弃,然后重启接收机(芯片每次接收完成都应该重启SX1276) 但…
先废话一小段 在将LoRaWAN的程序移植的过程中,调试发现了很多的问题. 做好记录工作,防止以后再踩坑 移植使用的是LoRaMac-node库,使用的是STM32L151CBT6 MCU,需要要移植到STM32L051C8T6 这个MCU上面. 开始正文 JLink的配置 由于第一次使用JLink(SWD方式),在一开始使用时,踩了几处坑: KEIL选择JLINK之后,点击设置进入,会出现一个对话框,要选择NO KEIL里面JLINK的 方式要选择SW,不然认不到芯片 Flash downlo…
为uboot添加网卡功能可以让uboot通过tftp下载内核, 方便我们的开发, 对于网卡功能的移植,我们依然在在一遍又一遍的实践这个uboot改造的套路. 找运行逻辑,即插入代码的位置. 根据运行逻辑编写功能代码. 找配置逻辑,即修改哪些文件使配置生效. 根据配置逻辑修改配置使功能代码生效. 重新编译烧写uboot. 1. 找运行逻辑 为了实现ping.tftp下载.nfs挂载等功能,必须将uboot的网卡功能配置上,这个功能属于板级功能, 看README+经验+样板 需要在相应板级目录的xx…
ref:https://www.cnblogs.com/xiaojiang1025/p/6500532.html 为uboot添加网卡功能可以让uboot通过tftp下载内核, 方便我们的开发, 对于网卡功能的移植,我们依然在在一遍又一遍的实践这个uboot改造的套路. 找运行逻辑,即插入代码的位置. 根据运行逻辑编写功能代码. 找配置逻辑,即修改哪些文件使配置生效. 根据配置逻辑修改配置使功能代码生效. 重新编译烧写uboot. 1. 找运行逻辑 为了实现ping.tftp下载.nfs挂载等功…
以下的代码适用于LoRa sx1276点对点的通讯,纯粹的考虑在非发射模式下即为接收模式 配置sx1276的射频参数,并且切换到接收模式 //bandwidth [0:125 1:250 2:500] void set_private_LoRa_para(uint32_t freq, uint8_t datarate_index, uint8_t bandwidth,bool rxContinuous) { uint16_t timeout = 5;//DR_0 DR_1 DR_2 uint8_…
函数一般是从第一行代码开始执行,结束于return语句.异常.或者函数所有语句执行完毕.一旦函数将控制权交还给调用者,就意味着全部结束.函数中做的所有工作以及保存在局部变量中的数据都将丢失.再次调用这个函数时,一切将从头创建. 定义函数 >>>def myfun(x,y): #定义函数名 print(x+y) #函数体 >>>myfun(3,4) #调用函数 12 当函数体中存在循环且每次需输出时,使用print来打印多个结果 函数的返回值 >>>de…
目录 go微服务框架kratos学习笔记六(kratos 服务发现 discovery) http api register 服务注册 fetch 获取实例 fetchs 批量获取实例 polls 批量获取实例 nodes 批量获取节点 renew 心跳 cancel 下线 应用发现逻辑 服务注册 服务注册demo 服务注册逻辑 服务发现 测试调用 简单看看官方grpc服务发现逻辑 context deadline exceeded 简单看看官方grpc服务发现逻辑 go微服务框架kratos学…
java之jvm学习笔记六(实践写自己的安全管理器) 安全管理器SecurityManager里设计的内容实在是非常的庞大,它的核心方法就是checkPerssiom这个方法里又调用 AccessController的checkPerssiom方法,访问控制器AccessController的栈检查机制又遍历整个 PerssiomCollection来判断具体拥有什么权限一旦发现栈中一个权限不允许的时候抛出异常否则简单的返回,这个过程实际上比我的描述要复杂 得多,这里我只是简单的一句带过,因为这…
Python课堂笔记六 常用模块已经可以在单位实际项目中使用,可以实现运维自动化.无需手工备份文件,数据库,拷贝,压缩. 常用模块 time模块 time.time time.localtime time.strftime os模块:主要针对操作系统的一些方法,如:切换目录 sys模块:跟python解释器交互使用. shutil模块:针对目录或文件的复制,拷贝,重命名的操作等. hashlib模块:摘要算法模块. 1.文件的一致性校验 2.用户的加密认证 3.不可逆性,撞库,加盐 json/p…
C#_02.15_基础六_.NET类 一.类继承是一个类在另一个类的基础上进行的扩展. 继承的子类拥有父类的全部成员.索引子类拥有本身的全部成员以及父类的全部成员. 可以对基类成员进行隐藏,如果必须的话,方法是在子类中定义和父类成员一样签名的成员,并且在访问修饰符之前加入new关键字,就可以对父类的成员进行隐藏. 如果对于已经隐藏的父类成员后面需要进行访问,那么可以使用的方法是base关键字,base关键字注意点如下: 1.只能在子类当中使用,代表的是父类的成员: 2.调用基类成员的方法是使用“…