项目框架搭建(2)

一.总结学习

今天学习了跨平台的数据库移植,了解了mqtt是什么,以及mqtt的移植,对于我的项目框架中需要用到数据库存储数据,以及将数据上传到服务器上,进行相关的处理和预警相应的操作,为什么要交叉开发呢?因为嵌入式平台资源有限,所以在PC机上编译文件,生成的可执行文件在嵌入式上运行,我在移植库的时候出现的问题是库文件时候采用相对路径,相对路径又不准确,导致make生成文件时,出现报错,之后所有的路径我都采用了绝对路径来保证文件的编译时能找到文件防止报错。

二.跨平台移植数据库

交叉开发环境:嵌入式平台资源有限,所以在PC机上编译文件,生成的可执行文件在嵌入式上运行

根目录bin下是可执行二进制文件,lib是依赖的相关库,user的bin lib下是用户相关的库文件和可执行文件

先下载了sqlite3的源码,解压文件后先通过configure使用./configureCC=arm-linux-gnueabihf-gcc--host=arm-linux-gnueabihf --prefix=/home/linux/nfs/sqlite3/sqlite-3.7.3/install文件生成makefile文件,将生成的lib文件移植到开发板的lib中

三.网络服务器

IMX6ULL向OneNET云服务器上传数据

1.在测试阶段先配置双网卡,让开发板可以联网

云端配置

MQTT协议:消息队列遥测传输协议,传输层基于与TCP,默认端口号1883

特点:基于发布/订阅模式 ,物联网通信中广泛使用,MQTT报文轻量级 面向二进制数,占用网络带宽小,

相比于HTTP优点是利用极少的报文和有限的带宽 提供安全可靠的连接(

1.基于TCP连接

2.消息发布服务质量(Qos)

至多一次,不管接收方收到没收到,只发动一次,0

至少一次,1

只有一次,2

3.遗言机制:客户端因为异常而退出,会将最后一次报文发给服务器,服务器就知道客户端断开了

4.心跳监测:ping报文,内部起了一个线程,线程中会根据频率发一个ping报文,用来监测MQTT的TCP连接是否正常

5.三种身份:发布者,订阅者,发布者订阅者都是客户端

6.报文中:

订阅请求报文:一定要看到topic

发布报文:msg

使用MQTT协议,移植MQTT库(paho mqtt库 他依赖op)

不用手搓报文,直接移植一个MQTT库

移植MQTT库:

mqtt库依赖于openssl 和paho库,通过先通过config文件获得makefile,在对makefile修改编译器以及路径对库进行交叉编译,然后make install下载获得库文件

相关推荐
Good白10191 小时前
嵌入式:1.嵌入式入门|初识嵌入式、处理器、ARM与STM32
arm开发·stm32·嵌入式硬件
물の韜19 小时前
ZYNQ/FMQL系列Linux之I2C开发实战
linux·arm开发·嵌入式硬件·设备树·iic·zynq
女神下凡2 天前
芯参谋(95):嵌入式文件系统_开发指南
linux·服务器·arm开发·驱动开发·设计规范
女神下凡6 天前
芯参谋(85):Linux_PPI_NAND_驱动开发指南
linux·运维·arm开发·驱动开发·单片机·嵌入式硬件·设计规范
NamoAmitabha1286 天前
ARM Cortex-A9 核心架构(演化后的“缝合怪”)--deepseek
arm开发·zynq--ps
AllData公司负责人6 天前
AllData 可定义数据中台完成信创适配|银河麒麟 + 海光X86 CPU / 华为鲲鹏ARM CPU+ OceanBase / 人大金仓国产化环境部署落地
大数据·arm开发·数据库·人工智能·oceanbase·kingbase
a5986527 天前
ARM服务器搭建云手机靠谱吗?个人自建方案优缺点总结
服务器·arm开发·智能手机·云手机
jiecy7 天前
在 ARM 的 UOS 系统里布署 WebDav
arm开发·docker·debian
女神下凡7 天前
芯参谋(87):Linux 系统(SPI NOR)驱动开发指南
linux·运维·arm开发·驱动开发·嵌入式硬件·设计规范