編譯aiot c-sdk到raspberry

  • 下載源碼
  • 在 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版本有要求。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容