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









