- 下载源码
-
在 tools/board 中 复制 config.ubuntu.x86 并重命名为 config.raspberry.3b, raspberry为系统类型,3b为架构
image.png
-
添加这个文件后,在主目录下 make rconfig 就能看到这个选项了
image.png
- 这个文件实际上定义了编译器,链接器等配置项,有了这个,就可以在编译时使用正确的交叉编译器等工具
- 修改config.raspberry.3b
CONFIG_ENV_CFLAGS += \
-Os -Wall \
-g3 --coverage \
-D_PLATFORM_IS_LINUX_ \
-D__UBUNTU_SDK_DEMO__ \
# -DNO_EXECUTABLES \
CONFIG_ENV_CFLAGS += \
-DWITH_MQTT_DYN_BUF=1 \
-DWITH_MEM_STATS=0 \
-DWITH_MEM_STATS_PER_MODULE=0 \
-DWITH_MQTT_JSON_FLOW=1 \
-DWITH_MQTT_ZIP_TOPIC=1 \
-DWITH_MQTT_SUB_SHORTCUT=1 \
-DSDK_TEAM_TEST \
CONFIG_ENV_CFLAGS += \
-DCONFIG_MQTT_RX_MAXLEN=5000 \
-DCONFIG_MBEDTLS_DEBUG_LEVEL=0 \
CONFIG_ENV_CFLAGS += -rdynamic
CONFIG_ENV_CFLAGS += -Werror -Wno-unused
CONFIG_ENV_LDFLAGS += -lpthread -lrt
CROSS_PREFIX := arm-linux-gnueabihf-
CONFIG_tests :=
#CONFIG_src/mqtt/examples :=
-
我本机上安装的是 arm-linux-gnueabihf-gcc 所以,添加统一的前缀
image.png
-
主目录下进行 make menuconfig,配置库选项
image.png
-
在wrappers/os下复制 ubuntu,并重命名为 raspberry(这里的名字和CONFIG_raspberry.3b中的对应上)
-
这个文件实际上是库中硬件的设备实现,因为raspberry和ubuntu都是Linux大类,所以不需要很多的改动,直接用看看
-
编译时,提示HAL_UART_Linux.c中缺少 at_parser.h
image.png
-
根据名称应该是和串口的实现有关,而网络连接应该用不上,直接注释掉
-
再编译,成功。
-
在output/release/lib下生成库
image.png
-
在output/release/bin中生成测试程序
image.png
-
测试程序的修改:打开src/mqtt/examples/mqtt_example.c
-
声明函数和写入产品,设备信息
image.png
-
重新编译,拷贝到系统中运行,正常连接
image.png
-
测试程序说明:测试程序自己定时发布主题 usr/get,而且自己订阅了这个主题。运行效果就是,每隔一段时间,自发自收。
image.png
-
说明:sdk也有Python的,安装对应的包就好了,但一些包可能对系统有要求或者对python版本有要求。
网友评论