基于已适配IoT SDK的芯片开发

更新时间:2018-05-02 17:38:17

如您使用AliOS认证过的芯片(如已集成IoT SDK功能)模组或已经集成IoT SDK的芯片模组,您可以直接快速方便的开发您的产品。

您可以找您的芯片模组厂商拿到模组的固件代码后进入下一步开发。

1. 完成准备工作

按"设备端开发示例"-->"准备工作" 文档完成单个调试设备ProductKeyDeviceNameDeviceSecretProductSecret的生成。

2. 写入一机一密设备信息

按芯片厂商提供的烧录方式烧录,确认您芯片厂商实现的下列函数能正确读取到您的设备ProductKeyDeviceNameDeviceSecretProductSecret信息。
或者您仅仅为了验证开发流程,可以先将下列HAL函数默认读取您现在生成的设备信息。

  • HAL_GetProductKey

  • HAL_GetDeviceName

  • HAL_GetDeviceSecret

  • HAL_GetProductSecret

3.编译SDK

对于已适配的硬件平台的情况下,可以直接编译出适配芯片的SDK lib,以esp32 日常环境为例。

  • 在SDK根目录下执行make reconfig,选择2
    ```

    SELECT A CONFIGURATION:
    
    1) config.armcc.daily               9) config.h3c.rtk_online
    2) config.esp32.daily              10) config.h3c.rtk_pre
    3) config.esp32.online             11) config.openwrt.c1
    4) config.esp32.pre                12) config.ubuntu.daily
    5) config.esp8266.daily            13) config.ubuntu.online
    6) config.esp8266.online           14) config.ubuntu.online.unittest
    7) config.esp8266.pre              15) config.ubuntu.pre
    8) config.h3c.rtk_daily
    #? 2
    
    SELECTED CONFIGURATION:
    
    VENDOR :   esp32
    MODEL  :   daily
    
  CONFIGURE .............................. [base/log]
  CONFIGURE .............................. [base/tls]
  CONFIGURE .............................. [base/utils]
  CONFIGURE .............................. [connectivity/coap]
  CONFIGURE .............................. [connectivity/examples]
  CONFIGURE .............................. [connectivity/mqtt]
  CONFIGURE .............................. [connectivity/ota]
  CONFIGURE .............................. [connectivity/system]
  CONFIGURE .............................. [external/cut]
  CONFIGURE .............................. [hal-impl]
  CONFIGURE .............................. [layers/cm]
  CONFIGURE .............................. [layers/cm/examples]
  CONFIGURE .............................. [layers/dm]
  CONFIGURE .............................. [layers/linkkit]
  CONFIGURE .............................. [layers/linkkit/samples]
  CONFIGURE .............................. [modules/alcs]
  CONFIGURE .............................. [modules/awss-ap]
  CONFIGURE .............................. [sdk-tests]
  CONFIGURE .............................. [service/fota]

  BUILDING WITH EXISTING CONFIGURATION:

  VENDOR :   esp32
  MODEL  :   daily

  Components:

  . external/cut
  . connectivity/system
  . connectivity/ota
  . connectivity/mqtt
  . connectivity/coap
  . connectivity/examples
  . layers/dm
  . layers/linkkit
  . layers/linkkit/samples
  . layers/cm
  . layers/cm/examples
  . modules/alcs
  . modules/awss-ap
  . base/log
  . base/utils
  . base/tls
  . hal-impl
  . sdk-tests
  . service/fota
```
  • 执行make,生成libilop-esp32.a

        make
        BUILDING WITH EXISTING CONFIGURATION:
    
        VENDOR :   esp32
        MODEL  :   daily
    
        [AR] libilop-hal.a              <=
        [CC] mqtt-example.o             <= mqtt-example.c                                   
                                           makefile
        [CC] ut_json_parser.o           <= ut_json_parser.c                                 
        [CC] ut_mem_stats.o             <= ut_mem_stats.c                                   
        [CC] ut_json_token.o            <= ut_json_token.c                                  
        [CC] utils_base64.o             <= utils_base64.c   
        ...
    
        [AR] libilop-esp32.a            <=
                                           base/log/lite-log.o
                                           base/utils/json_parser.o
                                           base/utils/json_token.o
                                           base/utils/linked_list.o
                                           base/utils/mem_stats.o
                                           base/utils/string_utils.o
                                           base/utils/utils_base64.o
                                           base/utils/utils_epoch_time.o
                                           base/utils/utils_hmac.o
                                           base/utils/utils_httpc.o
                                           base/utils/utils_list.o
                                           base/utils/utils_md5.o
                                           base/utils/utils_net.o
                                           base/utils/utils_sha1.o
                                           base/utils/utils_timer.o
                                           base/utils/work_queue.o
                                           connectivity/coap/alcs_api.o
                                           connectivity/coap/alcs_client.o
                                           connectivity/coap/alcs_coap.o
                                           connectivity/coap/alcs_server.o
                                           connectivity/coap/CoAPDeserialize.o
                                           connectivity/coap/CoAPExport.o
                                           connectivity/coap/CoAPMessage.o
                                           connectivity/coap/CoAPNetwork.o
                                           connectivity/coap/CoAPObserve.o
                                           connectivity/coap/CoAPPlatform.o
                                           connectivity/coap/CoAPResource.o
                                           connectivity/coap/CoAPSerialize.o
                                           connectivity/coap/CoAPServer.o
                                           connectivity/mqtt/mqtt_client.o
                                           connectivity/mqtt/MQTTConnectClient.o
                                           connectivity/mqtt/MQTTDeserializePublish.o
                                           connectivity/mqtt/mqtt_instance.o
                                           connectivity/mqtt/MQTTPacket.o
                                           connectivity/mqtt/MQTTSerializePublish.o
                                           connectivity/mqtt/MQTTSubscribeClient.o
                                           connectivity/mqtt/MQTTUnsubscribeClient.o
                                           connectivity/ota/ota.o
                                           connectivity/system/ca.o
                                           connectivity/system/class_interface.o
                                           connectivity/system/device.o
                                           connectivity/system/guider.o
                                           connectivity/system/id2_guider.o
                                           connectivity/system/report.o
                                           connectivity/system/sdk-impl.o
                                           layers/cm/iotx_cloud_conn_coap.o
                                           layers/cm/iotx_cloud_conn_http.o
                                           layers/cm/iotx_cloud_conn_mqtt.o
                                           layers/cm/iotx_cm_api.o
                                           layers/cm/iotx_cm_cloud_conn.o
                                           layers/cm/iotx_cm_common.o
                                           layers/cm/iotx_cm_local_conn.o
                                           layers/cm/iotx_cm_log.o
                                           layers/cm/iotx_cm_ota.o
                                           layers/cm/iotx_local_conn_alcs.o
                                           layers/dm/cJSON.o
                                           layers/dm/dm_cm_impl.o
                                           layers/dm/dm_cm_msg_info.o
                                           layers/dm/dm_impl.o
                                           layers/dm/dm_logger.o
                                           layers/dm/dm_slist.o
                                           layers/dm/dm_thing_manager.o
                                           layers/dm/dm_thing.o
                                           layers/linkkit/linkkit_export.o
                                           layers/linkkit/lite_queue.o
                                           modules/alcs/alcs_adapter.o
                                           modules/alcs/alcs_mqtt.o
                                           service/fota/service_ota.o
    

4.使用步骤

以上步骤已生成可以直接应用于esp32的二进制文件。

将步骤1的ProductKeyDeviceNameDeviceSecretProductSecret分别写入目标平台的HAL_GetProductKeyHAL_GetDeviceNameHAL_GetDeviceSecretHAL_GetProductSecret函数

完成设备功能的编写后,您可以链接libilop-目标平台.a编译生成固件运行您的程序

results matching ""

    No results matching ""