基于已适配IoT SDK的芯片开发
更新时间:2018-05-02 17:38:17
如您使用AliOS认证过的芯片(如已集成IoT SDK功能)模组或已经集成IoT SDK的芯片模组,您可以直接快速方便的开发您的产品。
您可以找您的芯片模组厂商拿到模组的固件代码后进入下一步开发。
1. 完成准备工作
按"设备端开发示例"-->"准备工作" 文档完成单个调试设备ProductKey
、DeviceName
、DeviceSecret
、ProductSecret
的生成。
2. 写入一机一密设备信息
按芯片厂商提供的烧录方式烧录,确认您芯片厂商实现的下列函数能正确读取到您的设备ProductKey
、DeviceName
、DeviceSecret
、ProductSecret
信息。
或者您仅仅为了验证开发流程,可以先将下列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的ProductKey
、DeviceName
、DeviceSecret
、ProductSecret
分别写入目标平台的HAL_GetProductKey
、HAL_GetDeviceName
、HAL_GetDeviceSecret
、HAL_GetProductSecret
函数
完成设备功能的编写后,您可以链接libilop-目标平台.a
编译生成固件运行您的程序