项目学习总结:platform方式驱动框架、pc版和arm版连通ONENET方式、wireshark抓包mqtt、ONENET创建产品、双网卡配置
一、wireshark抓包
(一)启动方式:sudo wireshark //否则没有权限
(二)选择抓取线路:上网的线路ens33
(二)添加筛选条件(端口号):tcp.port == 1883(根据通信时设置的端口号筛选)
二、ONENET创建产品(根据创建指导文档手册创建即可)
(一)创建产品和设备
(二)根据设备名和id生成密钥,写入head.会中
三、双网卡配置
(一)使pc端联网分配动态ip,arm端连接使用静态ip并且使arm可上网。
(二)将脚本文件复制到挂载的目录下,修改dou_net文件,使重启后route路径固定
(三)每次重启后需要上网在pc或者arm各自执行一次自己对应脚本文件即可
四、pc版和arm版分别连通onenet的方式
(一)为了更清楚的理解在挂载目录下创建两个文件夹:分别用来搞arm通信和pc通信
(二)将一份压缩包和mqtt测试代码分别复制到两个文件中
(三)分别解压文件进入后,操作使生成Makefile
(四)分别修改Makefile
1.-L连接库文件路径
2.-I指定头文件路径
(五)修改两个文件中的matt测试makefile分别使其编译生成指定版本可执行文件
(六)分别执行可执行文件测试是否连通
五、platform方式驱动框架(字符设备驱动(IIC、SPI))
(一)修改设备树
1.IOMUXC引脚配置(我定义在470行左右)
2.设备(传感器)节点定义(我定义在200行左右)
(二)相关驱动文件创建
1.顶层Makefile
顶层执行Make时会分别进入app和dri中执行Makefile
2.应用层文件夹app
①主函数main.c
②Makefile文件
3.驱动文件夹dri
①Makefile文件
②driver.c文件
(三)驱动的driver.c编写
1.写设备平台驱动主框架结构体函数,根据结构体内容补充函数
①匹配成功执行probe函数,注册设备
②最后执行remove函数,销毁设备
③写第一种匹配规则,根据设备树中设备节点名匹配
④driver结构体:of_match_table(compatible匹配关键点)
2.注册杂项设备,主设备号为10,次设备号从255想下自动分配
3.写应用层要调用的函数和file_operations结构体