閱讀437 返回首頁    go 人物


C-SDK使用(Mico)__SDK使用參考_設備端接入手冊_阿裏雲物聯網套件-阿裏雲

準備工具

  • IAR Embedded Workbench for ARM,是一個針對ARM 處理器 的集成開發環境,它包含項目管理器、編輯器、C/C++編譯器和ARM 匯編器、連接器XLINK和支持RTOS 的調試工具C-SPY。用戶可以到IAR公司的網站IAR下載,建議使用IAR EWARM 7.30.4版本來進行MiCO開發。
  • JLINK工具,和IAR結合用來download和debug使用,具體可以上淘寶購買。
  • SecureCRT,用來抓取開發板的uart log,用戶可以從SecureCRT官網下載。
  • Mico-Kit 3165開發板,可以通過mico官網獲取。
  • mico開發環境搭建和mico os介紹參考官網:mico

說明

  • IoT SDK基於mico v2.4.1、mico v2.5.0、mico v3.0.0來做的移植。
  • 如果選用mico v3.0.0 sdk,需要在工程裏麵定義宏MICO_SDK_V3,其它mico版本無需定義該宏。macro

添加SDK MQTT協議源文件到IAR工程

  • 阿裏IoT套件SDK包括MQTT和CCP協議,根據場景隻會用到其中一種協議,隻需要編譯一種協議到mico工程即可。
  • 因為mico開發板自帶SSL庫,這樣IoT SDK自帶的Mbedtls就無需添加到工程裏麵編譯。
  • 需要添加MQTT協議的源文件路徑有
    1. sdk/common/src
    2. sdk/examples/mico/mqtt
    3. sdk/platform/mico/src
    4. sdk/src/mqtt/MQTTClient-C/src
    5. sdk/src/mqtt/MQTTClient-C/nettype/tls
    6. sdk/src/mqtt/MQTTPacket/src
    7. sdk/public_libs/porting/micossl
  • 設定IAR工程的頭文件路徑include_file

添加SDK CCP協議源文件到IAR工程

  • 阿裏IoT套件SDK包括MQTT和CCP協議,根據場景隻會用到其中一種協議,隻需要編譯一種協議到mico工程即可。
  • 目前CCP代碼是完全依賴Mbedtls的,這樣IoT SDK自帶的Mbedtls必須添加進工程裏麵編譯。
  • 需要添加CCP協議的源文件路徑有
    1. sdk/common/src
    2. sdk/common/inc
    3. sdk/examples/mico/ccp
    4. sdk/platform/mico/src
    5. sdk/platform/mico/inc
    6. sdk/public_libs/mbedtls/library
    7. sdk/public_libs/mbedtls/include/mbedtls
    8. sdk/src/ccp
    9. sdk/src/ccp/include
  • 設定IAR工程的頭文件路徑include

設置IAR Debugger

  • debug_jlink

編譯和download

  • 確保JLINK工具通過USB連接電腦
  • 點擊按鈕build和downloadbuild_button

注意事項:

  • 在調用mqtt_client_demo或ccp_client_demo函數之前確保開發板連接上WIFI,否則會出現設備認證初始化失敗。
  • 需要創建單獨的線程來調用mqtt_client_demo或ccp_client_demo。
  • 運行ccp_client_demo創建thread的stack size最小需設置為16K左右,否則係統會發生crash,運行mqtt_client_demo創建thread的stack size最小需設置為8K,否則係統會發生crash。
  • mico 實例代碼文件mico_wifi_code
  • mico平台IoT SDK占用資源情況如下:mico_iot_sdk

常見問題:

編譯出現Build error: Multiple tools write to the same file.

  • build_error
  • 解決方法:

    把文件MiCO_SDK_2.4.1librariesutilitiesjson_cdebug.c 重命名為mico_debug.c,然後加入到project裏麵,重新build。

編譯出現Link錯誤

  • link_error
  • 運行CCP協議會出現這樣的Link error,運行MQTT協議不會出現這樣的錯誤。
  • 解決方法:修改文件

    MiCO_SDK_2.4.1/Board/MiCOKit-3165/micoLinkerForIAR.icf調整heap為0x12000

  • linker_modify

編譯mico v3.0.0版本出現未定義錯誤

  • build_error
  • 修改文件mico_socket.h,添加下麵的內容。
  1. #include <stdint.h>
  2. #ifndef ssize_t
  3. #define ssize_t int
  4. #endif

最後更新:2016-12-01 13:10:50

  上一篇:go C-SDK使用(FreeRTOS)__SDK使用參考_設備端接入手冊_阿裏雲物聯網套件-阿裏雲
  下一篇:go C-SDK使用(µC/OS)__SDK使用參考_設備端接入手冊_阿裏雲物聯網套件-阿裏雲