- 下載源碼
-
在 tools/board 中 復(fù)制 config.ubuntu.x86 并重命名為 config.raspberry.3b, raspberry為系統(tǒng)類型,3b為架構(gòu)
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 所以,添加統(tǒng)一的前綴
image.png -
主目錄下進行 make menuconfig,配置庫選項
image.png 在wrappers/os下復(fù)制 ubuntu,并重命名為 raspberry(這里的名字和CONFIG_raspberry.3b中的對應(yīng)上)
這個文件實際上是庫中硬件的設(shè)備實現(xiàn),因為raspberry和ubuntu都是Linux大類,所以不需要很多的改動,直接用看看
-
編譯時,提示HAL_UART_Linux.c中缺少 at_parser.h
image.png 根據(jù)名稱應(yīng)該是和串口的實現(xiàn)有關(guān),而網(wǎng)絡(luò)連接應(yīng)該用不上,直接注釋掉
再編譯,成功。
-
在output/release/lib下生成庫
image.png -
在output/release/bin中生成測試程序
image.png 測試程序的修改:打開src/mqtt/examples/mqtt_example.c
-
聲明函數(shù)和寫入產(chǎn)品,設(shè)備信息
image.png -
重新編譯,拷貝到系統(tǒng)中運行,正常連接
image.png -
測試程序說明:測試程序自己定時發(fā)布主題 usr/get,而且自己訂閱了這個主題。運行效果就是,每隔一段時間,自發(fā)自收。
image.png 說明:sdk也有Python的,安裝對應(yīng)的包就好了,但一些包可能對系統(tǒng)有要求或者對python版本有要求。









