自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(100)
  • 资源 (6)
  • 收藏
  • 关注

原创 ninja 编译介绍

首先献上官方链接。

2023-11-14 10:52:11 131

原创 cpcd 使用

cpcd 是支持多协议融合的一种解决方案,应用场景是一个无线模块支持大于一种协议栈,通过cpcd 可以分发不同协议,使用说明主要查看readme.md 文件说明。

2023-11-13 15:25:58 201

原创 【Matter】设备入网流程

5.第五步,校验,拿到设备DAC以及PAI,和网关Commisioner 拿到的公证信息校验,是否是标准的Matter 设备。6.第六步,网关设备发送一个通信加密通道证书(CSR),设备会作返回信息给网关,表示双向沟通好。11.第十一步,网关使用CASE发送信息给设备,添加已经完成,一些添加设备的安全机制可以撤销。10.第十步,设备发现以后,网关和设备通信的CASE连接建立完成,双方都可信任。8.第八步,给入网设备配置网络,比如thread设备、wifi 设备。4.第四步,配置设备信息,比如国家码。

2023-08-18 14:46:30 733

原创 【Matter】基于Ubuntu 22.04搭建matter开发环境:chip-tool 配网之 matter-over-wifi

主要是记录一下学习过程,梳理下思路,抛转~官方的开发环境,基于Linux版本,官方的环境是基于树莓派环境的,原理其实也比较明了,目的也比较明确,就是达到Linux 主机和wifi 路由在同一局域网,借助蓝牙的能力,将支持matter协议的wifi 设备添加到网络中,后面就是直接局域网控制就OK了,折腾了几天,终于跑通了。

2023-08-17 10:09:39 1788 2

原创 【Matter】基于Ubuntu 22.04 交叉编译chip-tool

比较清晰的展示目录结构,帮助理解。基本分析了下SDK的编译,因为matter协议可以理解为跨平台的应用,所以编译目录结构以及功能上进行了模块话处理,可以通过import 导入一个文件变量,类似于C语言中的include 函数,而且定义了template,类似于C语言中的函数,可以细化管理整个编译命令。以connectedhomeip 作为主目录,编译的入口是 ./build/coinfig/BUILDCONFIG.gn,这个是GN编译框架规定的,可以参照最简单的GN编译理解,框架是一样的。

2023-08-02 15:37:54 1768 6

原创 【Matter】基于Ubuntu 22.04 编译chip-tool工具

容易遇到的问题,应该比较全面了,避免折腾半天。最容易忽略的应该就是避免ssh 连接虚拟机来操作,看了好多博客都没说到这一点。综合理解,首先要翻墙,其次子模块没有更新的话,手动删除,手动更新。CPID下载那里,时间过个五分钟左右不行,基本出问题了,再等久了也没用。再ubuntu 上控制台上操作。其他多利用google 搜索,另外,有空多理解下代码架构,这也是接下来我要做的。。

2023-07-26 16:02:42 1479 4

原创 EFR32xG21烧录_自己购买扩展板

最近有用到EFR32xG21,新的开发板好像是不带之前的扩展板了,想要采用开发板扩展烧录的话 ,最好自己购买一个扩展板,淘宝就有,注意排针pin脚和间距。

2023-07-11 11:18:27 169

原创 EFR32MG21 Z3Gateway应用启动-注意

最近在重新做一款zigbee网关,Z3GatewayHost 封装成库,然后主应用通过新建一个线程调用。应用正常手动起来都是正常使用的,但是一旦通过系统自启动以后就发消息也不回了。排查半天,发现是应用已经挂掉了,Z3Gateway自己的进程已经不在了。具体排查办法是加入了aexit,程序退出时会打印。所以观察到每次程序起来,已经提前退出了。完成一点,可以直接打印堆栈信息。亲测nohup方法可行,原理通的,第一种也可以。

2023-06-06 17:11:49 237

原创 从零制作一个物联网网关-zigbee协议

准备编写一个教程,制作物联网网关,采用常见的方案,系统采用openWRT,硬件采用MT7688。无线协议为zigbee,芯科ERF32MG21方案。感兴趣的评论,有写下去的动力。

2023-05-29 10:41:57 584 2

原创 Linux C utf8 转GB2312

背景现在项目中要用Linux 平台 接 LCD 单色屏,使用i2c接口,所以和单片机做法是一样的,要自己通过打点函数绘制字体、图形等,此为背景。我用的字库是GB2312,但是在Linux平台下默认支持是UTF-8的,也为了方便代码管理,所有文件存储为UTF-8格式,这样就引入一个问题,我在Linux下的汉字比如经过转换以后才可以用GB2312的字库接口字符使用问题在Linux 下文件以及控制台操作创建的文件默认是utf-8编码的,现在遇到问题是要绘制字体,字库格式是GB2312的,所以在Linux

2021-05-20 15:19:17 968

原创 嵌入式LCD 屏学习

前言文章主要是对我网上知识进行学习,汇总,如有侵权与我联系分类段码液晶屏段码液晶屏早期研发于日本,在80年代引入中国,主要是替代LED数码管(由7个笔段组成,用于显示数字0~9),如计算器、钟表等,显示内容均为数字,也较简单。叫法也有很多种,比如笔段式液晶屏、小尺寸液晶屏、8字屏、图案型液晶屏等。点阵屏点阵屏有分为LCD点阵、LED点阵屏简单的说法就是在一个范围内有很多点组成而来称为像素,点阵LCD像素都是由固定大小的点组成 这些点按照阵列的方式排列;比如12864 就是由横向128

2021-04-28 15:22:30 1222

原创 Zigbee 计量插座

项目介绍主控:NXP JN5169计量:采用贝岭计量芯片功能介绍既然是zigbee计量插座,要具备zigbee的无线属性,而且有计量的功能。所以简单地说,要可以接入到网关,网关控制设备开、关。计量值可以配置 为定时上报,另外手动触发设备开关时,可以自动上报状态到网关。开发环境:BeyondStudio for NXP代码结构:在官方示例基础上进行修改 基于JN-AN-1217 示例代码编译基于Makefile,引用外部SDK。安装开发环境时,默认是在系统C盘,目录大概如下:C:/NX

2021-04-16 11:38:12 525

原创 物联网关的技术内容

这是自己学习的一个学习路线,逐渐细化、完善总体规划1、OpenWRT 系统编译buildroot 学习LuCI 学习启动流程,系统框架细分Qos 路由等技术了解,待细划分2、Linux 多线程编程锁的应用3、Tcp/ip 网络编程深入tcp/ip 编程,了解到数据包、内核的角度4、嵌入式数据库关系数据库操作,如Sqlite5、通信协议MQTTtcp/ip 分包、粘包6、语言C/C++ (加强了解一下C++)LuapythonShell7、

2021-04-12 10:09:30 195

转载 做技术有前途吗?一位老工程师对年轻人的“十大忠告”

1、好好规划自己的路,不要跟着感觉走;      根据个人的理想来安排自己的生活,绝大部分人并不指望成为什么院士或教授,而是希望活得滋润一些,痛快一些,那么就需要慎重安排自己的的轨迹,从一个行业入手逐渐对该行业深入了解,不要频繁跳槽,特别是不要为了一点工资而转移阵地,从长远看,这点钱根本不算什么,当你对一个行业有那么几年的体会以后,钱根本不是问题,频繁地动荡不是上策,最后你对哪个行业都没有摸透,永远是新手。      2、可以做技术的,切不可沉湎于技术;      千万不可一门心思钻营技术,给自

2021-03-02 18:22:14 632

原创 【A113】网卡芯片Realtek RTL8201驱动调试

前言:这一篇是对自己调试的一个过程记录,代码看的算是比较熟悉了,过程中一直没调过,没后询问原厂FAE,修改了一下dts一个地址参数,就可以了,最终没有太多成就感,这个参数datasheet都没有提示。。。网卡配置1、arch/arm64/configs/meson64_smarthome_defconfigCONFIG_DWMAC_MESON=m2、/kernel/aml-4.9/drivers/amlogic/ethernet/phy/amlogic.cEXPORT_SYMBOL_GPL

2021-02-07 14:37:53 3625

原创 Linux kernel 动态调试

何时使用#if defined(CONFIG_DYNAMIC_DEBUG)#include <linux/dynamic_debug.h>/* dynamic_pr_debug() uses pr_fmt() internally so we don't need it here */#define pr_debug(fmt, ...) \ dynamic_pr_debug(fmt, ##__VA_ARGS__)#elif defined(DEBUG)#define pr_deb

2021-02-02 16:26:38 658 1

原创 Linux内核编译默认Y,编译M报错,修改办法

有的时候进行内核编译时,默认选项是Y,选择为M就编译报错。提示一些函数没有定义,主要是因为引用了外部调用的模块,编译测试时可以调用函数EXPORT_SYMBOL_GPL()函数将变量或者函数导出到外部,编译就通过了。但是发现,将编译选项设为Y时,保持修改的代码,又会报错,提示重复定义。一般编译模块是为了调试,所以暂时就调试时编译为M形式,正式时便以为Y,放弃修改就好了,具有有啥好办法,还希望不吝赐教。先这么做吧!...

2021-01-22 17:55:10 861

原创 【A113】 adb 不能使用问题跟踪

问题描述:A113D 默认编译之后可以通过 adb 命令连到板子上,经过裁剪或者一些操作,现在测试,板子不能ADB排除硬件问题、环境问题找了FAE给了固件,测试可以adb 连接,证明硬件没有问题查看了PC设备管理器,也可以发现设备Android Phone Android Composite ADB Interface Android Composite ADB Interface软件分析过程:以下均为正常打印结果1.查看usb部分dmesg | grep tail

2021-01-18 10:44:18 1214

原创 EFR32网关获取节点信息代码流程

前言用了Z3GatewayHost 做协调器网关,设备入网要经历几个阶段设备请求入网(Beacon Request、Association Request、Data Request)进入网络后网关分配短地址(Association Response)网关发出Active Endpoints Request网关发出 Simple Descriptor Request通过以上命令,可以获取到入网节点信息,比如短地址、设备endpoint等一般添加设备时,会发现网关SDK做了处理,自动会发送 A

2020-12-10 14:38:43 757 8

转载 转载-ZigBee3.0协议栈的Standard Security

欢迎转载,请注明作者:石韧http://blog.csdn.net/stonerme/article/details/53409732第二章 ZigBee3.0协议栈的Standard Security2.1 Standard SecurityStandard Security是所有的ZigBee应用规范都使用的安全模型,包括ZigBee3.0。它也是EmberZnet协议栈中唯一支持的安全模型。Standard Security分别使用Network Key和Link Key在网络层和APS层加

2020-11-26 17:15:06 491

原创 EFR32 设备入网过程

下图列出了zigbee入网时详细的抓包情况,没有使用install code

2020-11-12 11:14:43 950

原创 zigbee网关对接设备的思想总结

拿到一个zigbee设备,如何接入网关中,需要思考那些问题,以及如何成功对接进行,下面做一些总结记录一般我们对接的设备都是标准设备,现在为了互联互通,越来越多的设备采用最新的Zigbee3.0标准去做大概思路如下1、采购某类设备、询问厂商 设备协议、对接详情,最好能有技术支持,不管需要不需要2、对接设备,一般需要抓包分析。所以抓包工具试必备的,需要对应的软件,网上有破解软件3、了解所使用网关的SDK方案,是否已经支持现有设备。以SiliconLabs的EFR芯片为例,默认的灯泡、开关等ON、OFF

2020-11-10 14:47:52 1639

原创 wifi6 技术

主要摘自百度Wi-Fi 6(原称:802.11.ax)即第六代无线网络技术,是Wi-Fi标准的名称。是Wi-Fi联盟创建于IEEE 802.11标准的无线局域网技术。Wi-Fi 6将允许与多达8个设备通信,最高速率可达9.6Gbps。发展历史编辑2019年9月16日,Wi-Fi联盟宣布启动Wi-Fi 6认证计划,该计划旨在使采用下一代802.11ax Wi-Fi无线通信技术的设备达到既定标准。Wi-Fi 6有望在2019年秋季晚些时候获得电气和电子工程师协会(IEEE)的批准。 [3]功能特点编辑

2020-10-22 16:11:36 3194 3

原创 Makefile -C 和M选项

下面这段代码摘自奔跑吧LinuxBASEINCLUDE ?= /home/ben/work/runninglinuxkernel_4.0#BASEINCLUDE ?= /lib/modules/`uname -r`/buildmydemo_misc-objs := mydemodrv_misc.o obj-m := mydemo_misc.oall : $(MAKE) -C $(BASEINCLUDE) M=$(PWD) modules;clean: $(MAKE) -C $(B

2020-10-15 11:56:47 672

转载 Linux内核第一宏

作者简介:贺东升,西安邮电大学2019级陈莉君教授研究生,初学内核的小白,热爱Linux内核,正在努力学习内核。内核第一宏list_entry()有着内核第一宏的美称,它被设计用来通过结构体成员的指针来返回结构体的指针。现在就让我们通过一步步的分析,来揭开它的神秘面纱,感受内核第一宏设计的精妙之处。整理分析的思路list_entry()在内核源代码/include/linux目录下的list.h中被定义,如下:在list_entry的定义中,我们看到出现了另外一个宏container_of。而

2020-10-12 15:35:11 158 1

原创 zigbee EFR 芯片版本号获取

如果网关想要获取固件端应用版本号,比如V1.0.0,可以通过本篇方法去实现。参考链接https://www.silabs.com/community/wireless/zigbee-and-thread/knowledge-base.entry.html/2018/09/21/reporting_custommes-cKOS原理是用到了Plugin的XNCP,可以下面Report 信息,然后网关应用收到信息后解析即可。上面链接会定时上报,我们可以上报一次,然后关掉上报即可。#define APP_V

2020-09-16 13:43:02 320

转载 makefile eval函数详解

函数功能:函数“eval”是一个比较特殊的函数。使用它可以在Makefile中构造一个可变的规则结构关系(依赖关系链),其中可以使用其它变量和函数。函数“eval”对它的参数进行展开,展开的结果作为Makefile的一部分,make可以对展开内容进行语法解析。展开的结果可以包含一个新变量、目标、隐含规则或者是明确规则等。也就是说此函数的功能主要是:根据其参数的关系、结构,对它们进行替换展开。返回值:函数“eval”的返回值时空,也可以说没有返回值。函数说明:“eval”函数执行时会对它的参数进行两次展开

2020-08-14 11:01:32 2245

原创 EFR32xG21搭建网关demo - web应用

EFR32xG21搭建网关demo - 概览EFR32xG21搭建网关demo - bootloaderEFR32xG21搭建网关demo -ncp-uart-swEFR32xG21搭建网关demo - Z3GatwayHost应用前面写了网关关键涉及的操作,这一偏是官方SDK搭建的最后一步 web部分,稍后有空再写。另外,我上传了一份资源,搭建网关的,可以参考一下。提前预告一下,这一篇主要涉及环境安装:1.mosquitto 安装2.npm 安装3.node 安装把上面安装好了,版本都没

2020-08-11 11:12:06 706 10

原创 EFR32xG21搭建网关demo - Z3GatwayHost应用

前言通过前面的几篇文章介绍,我们已经搭建起来了一个网关应用需要的协调器程序。可以回顾下面链接:EFR32xG21搭建网关demo - 概览EFR32xG21搭建网关demo - bootloaderEFR32xG21搭建网关demo -ncp-uart-sw现在介绍如何搭建一个上层应用,通过上层应用去控制zigbee网络、添加设备、删除设备、控制设备开关等操作SiliconLabs官方给出的是一个Z3GatewayHost的应用程序,通常我们将这个应用程序移植到Linux上去。如果是Ubuntu

2020-08-10 11:40:07 2716 6

原创 EFR32xG21搭建网关demo -ncp-uart-sw

这一篇的博客是围绕EFR32xG21搭建网关demo的第二部分,上一篇已经构建了bootloader,现在介绍ncp应用的构建建立工程同样的操作,新建工程File -> Project ->Silicon Labs AppBuilder Project ,点击Next 创建工程选择NCP应用,点击Next选择最新的SDK,点击Next选择NCP UART SW(Soft Flow Control)软件流控的程序,点击Next这里软件流控和硬件流控的程序都可以使用,主要俩点区别

2020-08-06 16:08:41 1899

原创 EFR32xG21搭建网关demo - bootloader

在之前的文章中,简要介绍了制作一个网关demo的基本组成部分,EFR32xG21搭建网关demo 现在着重介绍bootloader部分我们使用默认的bootloader-uart-xmodem工程即可,默认已经安装好Simplicity Studio IDE新建工程:File -> New -> Project -> Silicon Labs AppBuilder Project,选中以后选择 Next然后,要选择application type,现在我们要制作bootloade

2020-08-05 10:41:00 1692 7

原创 EFR32使用zigbee Scene功能

在Zigbee协议中,有Scene这个cluster,用来解决“场景”这个概念,比如在智能家居里面有读书模式、娱乐模式,等不同灯光效果,我们通过对不同的场景设定不同的状态,包括亮度、颜色、饱和度等。Scene这个功能要依赖于Group,通常会对一组设备里的个体设置不同颜色。有文章说Scene场景功能可以不依赖于Group,这样不能通过组播来完成,只能广播发数据,增加了网络负担,实现效果不是最优。说回来我们为什么要用场景呢?其实不用也可以,还可以通过发多条命令向控制设备,达到效果。设想,假如对一个灯泡发三

2020-07-23 11:46:03 1222

原创 EFR32使用zigbee Group功能

写这篇博客,是因为我想使用一下这个功能,但是网上博客写的都是支离破碎的,看下来还是不知道如何操作,有的中英文一大堆!官方文档竟然没有详细介绍,S感觉iliconLabs 代码比NXP的要规范,但说到文档,太少了(我是用的开发板自动更新下载到的文档,真是不给力!)言归正传,在zigbee中有一个Group的概念,用来发送命令到这个“组”中的设备,而不会向其他设备发送,类似TCP/IP 中组播和广播的概念。EFR32 对很多功能封装成了命令,Group的功能也有。为了方便测试,直接用官方SDK环境就行,我

2020-07-21 17:15:45 972

原创 采用git bisect 定位bug

背景:在开发zigbee网关的时候,最新版本代码发现控制反应很慢,在最初SDK测试时是确定没有这个问题的,所以肯定是某一处修改引入了问题,于是想办法确认提交出问题的版本,之前就了解到git 有一个工具可以采用二分方法定位,效率很高百度了一下使用,做一个简单总结。原理是在git版本中确定一个没有问题的原始版本,一个有问题的版本。没有问题的版本需要先测试一下,我是用git reset --hard xxx 回退后测试的。然后开始敲命令测试git bisect start // 开始使用git bisec

2020-07-08 14:08:21 488

原创 一种通用的更简单的嵌入式Linux串口验证方法

上面一篇文章中写了一篇利用自己的应用程序测试开发板串口的方法,现在可以直接用系统原生的能力去测试。一种通用的嵌入式Liux串口验证方法可以将测试串口的 TX RX 短接,然后我们一遍操作文件节点写字符,一边显示字符比如测试的是/dev/ttyS3.通常情况下/dev/ttyS0 是用作串口打印的,我们的测试环境是一个串口打印/dev/ttyS0.输入命令 cat /dev/ttyS3 & 后台监控串口,收到会立即打印输出现在执行命令 echo “helloworld” > /dev

2020-06-04 10:39:10 328

原创 一种通用的嵌入式Linux串口验证方法

在工作中经常要跟串口打交道,假如有同事给过来一块硬件板,系统也是别人做的,我们只用来在上面开发应用程序,串口的验证更加重要。大概思路如下图在开发板上跑一套应用程序,可以发送数据,可以接收数据。当验证接收数据时,通过PC上的串口助手,通过串口板CH340发送数据到开发板,观察如果接收到数据,证明Linux板 RX正常当验证发送数据时,PC上的串口助手,会监视数据到来。并且过程中,一般会伴随串口板上数据指示灯闪烁。代码从网上参考的//串口相关的头文件 #include<stdio.h&g

2020-06-03 15:16:17 707

原创 openWRT 无线使用3g上网

经过几天的研究,总结出一句话:无线使用3g上网,关键是要作为wan口。在3g/4g 网卡可以正常上网的情况下,通过无线连接却没有网络,使用wan口连接了外网,wifi连接是有流量的。其实简单的添加一句话就可以了,前提是ppp0已经正常拨号上网。关于拨号上网在另外一篇openWRT移植EC20的文章中有详细介绍。在ppp拨号的时候,要使用正确的ttyUSB*,否则可能会出现wifi依然不能上网的情况。一开始,我使用的是ttyUSB3,路由可以ping通百度的,但是wifi没网。实际上要用ttyUSB2才行

2020-06-01 17:10:30 361

原创 EFR32xG21 网关开发-- 系统SDK框架的一点认识

至此,用SilicionLabs方案搭建的网关基本功能已经完成,就系统SDK实现zigbee网关的框架做一点总结认识,抛转引玉~Zigbee网关的开发涉及工程建立、编译,执行。相关联需要了解依赖的SDK目录含义、工程配置原理,以及懂得整个软件框架运行原理,下面就关键项展开介绍。一、网关SDK目录详情1、存储空间源码包默认有2.5G多经过一番裁剪之后,SDK用到文件大约有20M。2、目录详情SDK目录包含了Silicon Labs开发环境需要的所有代码,在安装时同样可以配置,比如现在我们支持Zi

2020-06-01 14:32:43 1219

原创 EFR32xG21烧录指南

前言:EFR32G32 系列芯片烧录支持JLink SWD模式以及Silicon Labs官方提供的Simplicity Commander Mini接口烧录一、硬件准备1、硬件列表列表Silicon Labs开发板一套Silicon Labs Debug 扩展小板CH340串口模块JLink V9 仿真器2、接线方式2.1、JLINK SWD 方式烧录使用杜邦线按照如下顺序连接模块 JLinkVcc VccGND GNDSWDIO SWDIOSWCLK SWCLKREST

2020-05-21 14:55:11 3936 1

原创 EFR32xG21搭建网关demo - 概览

开发环境硬件MacEFR32xG21 开发板软件simplicity Studio准备工作下载安装simplicity Studio,软件支持Mac、Linux、Windows平台进行软件安装,注意的是如果是windows 最好安装在D盘或E盘,会占用很大空间,Mac、Linux默认即可。下载SDK时,需要一个账号,正常其实开发板包装盒外侧会贴,根据那个验证即可,现在提供...

2020-02-28 22:02:27 2816 12

CCoolTabCtrl

CCoolTabCtrl类,功能较全的tabcontrol,可以改变背景色,可以添加图标,控件可以自适应大小。

2015-05-28

ncurses-5.9

在学习linux系统编程这本书里面,用到屏幕编程,使用的是curses库,测试安装可用。

2014-11-20

IEC61850客户端

项目中作为测试用过,不错的东西。网上很难找

2014-09-18

jlink v8不能识别的解决方法

可以下载来试试,很不错的解决方法。

2013-08-17

王爽汇编语言

初学汇编经典之作,看完这个可以继续进行别的学习

2013-06-09

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除