一 概述
SDK
C SDK 采用模块化设计,分离核心协议服务与硬件抽象层,并提供灵活的配置选项和多种编译方式,适用于不同设备的开发平台和使用环境。
具备网络通讯能力并使用 Linux/Windows 操作系统的设备
对于具备网络通讯能力并使用标准 Linux/Windows 系统的设备。例如 PC/服务器/网关设备,及较高级的嵌入式设备,例如树莓派等,可直接在该设备上编译运行 SDK。
对于需要交叉编译的嵌入式 Linux 设备,如果开发环境的 toolchain 具备 glibc 或类似的库,可以提供包括 socket 通讯,select 同步 IO,动态内存分配,获取时间/休眠/随机数/打印函数,以及临界数据保护。如 Mutex 机制(仅在需要多线程时)等系统调用,则只需进行简单适配(例如,在 CMakeLists.txt 或 make.settings 里修改交叉编译器的设定)即可编译运行 SDK。
具备网络通讯能力并采用 RTOS 系统的设备
对于具备网络通讯能力并采用 RTOS 的物联网设备,C SDK 需要针对不同的 RTOS 做移植适配工作,目前 C SDK 已经适配了包括
FreeRTOS/RT-Thread/TencentOS tiny 等多个面向物联网的 RTOS 平台。
在 RTOS 设备移植 SDK 时,如果平台提供了类似 newlib 的 C 运行库和类似 lwIP 的嵌入式 TCP/IP 协议栈,则移植适配工作也可轻松完成。
SDK 目录结构简介
目录结构及顶层文件简介如下:
|
名称 |
说明 |
|
CMakeLists.txt |
cmake 编译描述文件。 |
|
CMakeSettings.json |
visual studio下的 cmake 配置文件。 |
|
cmake_build.sh |
Linux 下使用 cmake 的编译脚本。 |
|
make.settings |
Linux 下使用 Makefile 直接编译的配置文件。 |
|
Makefile |
Linux 下使用 Makefile 直接编译。 |
|
device_info.json |
设备信息文件,当 DEBUG_DEV_INFO_USED=OFF 时,将从该文件解析出设备信息。 |
|
docs |
文档目录,SDK 在不同平台下使用说明文档。 |
|
external_libs |
第三方软件包组件,例如 mbedtls。 |
|
samples |
应用示例。 |
|
include |
提供给用户使用的外部头文件。 |
|
platform |
平台相关的源码文件,目前提供了针对不同 OS( |
|
sdk_src |
SDK 核心通信协议及服务代码。 |
|
tools |
SDK 配套的编译及代码生成脚本工具。 |
二 腾讯云物联网开发平台
1 注册账号
打开腾讯云物联网开发平台官网:
https://cloud.tencent.com/
点击右上角的注册,注册一个账号。注册完毕后,登录。
或者直接用微信扫描二维码,登录。
登录后点击控制台。

2 创建产品
1 搜索物联网开发平台

2 点击公共平台

2 点击产品开发,新建产品

3 按照自己的需求配置

4 创建好后如下

5 参考腾讯云开发物模型(物模型需要和设备里的上报参数对应,否则报错)
https://cloud.tencent.com/document/product/1081
标准功能可以在交互开发,面板配置中选择不显示。

6 按照需求配置

7 新建一台设备



9 如果需要动态注册,需要打开开关(如果使用iot-explorer SDK,代码里需要定义动态注册宏)

3 二维码
微信打开腾讯连连小程序,扫描二维码


三 腾讯云组件的使用
1 Gitee链接地址
组件位于amaziot_bloom_os_sdkplatforms encentqcloud_iot_c_sdk
Gitee源码地址:
https://gitee.com/ning./hongdou
Github源码地址:
https://github.com/ayumid/hongdou
当前组件使用腾讯物联网平台提供的qcloud-iot-explorer-sdk实现。
2 服务层组件功能介绍
提供腾讯云物联网开发平台连接实例,设备实现通过app简易控制等。
该组件为平台组件,可以单独运行,不依赖于其它组件。
3 代码讲解
1 wait_network_ready
等待模组驻网成功,驻网超时后,会软复位模组。
static void wait_network_ready(void)
{
int count = 0;
int ready = 0;
while (!ready)
{
if (getCeregReady(isMasterSim0() ? IND_REQ_HANDLE : IND_REQ_HANDLE_1))
{
ready = 1;
}
sample_mqtt_tls_tuya_catstudio_printf("wait_network_ready: %d s", count++);
if (count > 300)
PM812_SW_RESET();
OSATaskSleep(200);
}
}
2 tuya_connectkit_task
调用tuya-connect-kit SDK中的demo,这里可以替换为其它demo。
static void tuya_connectkit_task(void *ptr)
{
int ret = 0;
wait_network_ready();
sample_mqtt_tls_tuya_catstudio_printf("
Success in the net 2
");
// cellular_demo();
switch_demo_non_qrcode();
}
3 tuya_get_csq
获取当前设备的csq值,用于上报信息中的参数。
int tuya_get_csq(void)
{
char atresbuf[16] = {0};
int err = 0;
char *p = NULL;
int csqValue = 99;
memset(atresbuf, 0, sizeof(atresbuf));
err = SendATCMDWaitResp(TEL_AT_CMD_ATP_10, "AT+CSQ
", 2, "+CSQ", 1, NULL, atresbuf, sizeof(atresbuf));
if(strlen(atresbuf) >= 10 )
{
p = strchr(atresbuf,':');
csqValue = atoi(p + 1);
}
return csqValue;
}
4 tuya_get_imei
获取当前设备的imei值,用于上报信息中的参数。
void tuya_get_imei(char *buffer)
{
char imei[24] = {0};
int err = 0;
char *p = NULL;
int errorCnt = 0;//
wait_reg:
memset(imei, 0, sizeof(imei));
err = SendATCMDWaitResp(TEL_AT_CMD_ATP_10, "AT+CGSN
", 2, NULL, 1, NULL, imei, sizeof(imei));
if(strlen(imei) >= 15 )
{
snprintf(buffer, 16, imei);
return;
}
}
5 tuya_get_imei
获取当前设备的iccid值,用于上报信息中的参数。
void tuya_get_iccid(char *buffer)
{
char iccid[36] = {0};
int err = 0;
char *p = NULL;
int errorCnt = 0;//
wait_reg:
memset(iccid, 0, sizeof(iccid));
err = SendATCMDWaitResp(TEL_AT_CMD_ATP_10, "AT+ICCID
", 2, "+ICCID", 1, NULL, iccid, sizeof(iccid));
if(strstr(iccid, "+ICCID") != NULL )
{
p = strchr(iccid,':');
snprintf(buffer, 21, p + 2);
return;
}
}
6 tuya_send_task
主任务,上电后,代码会一直在while中循环上报csq,用户可以根据自己的业务来修改代码,实现自己的业务逻辑
static void tuya_send_task(void *ptr)
{
int csq = 0;
char imei[16] = {0};
char iccid[21] = {0};
char dp_muti_buf[128] = {0};
char dp_buf[16] = {0};
//"{"103":"866663060145165","104":"898604A41921C0467222"}"
tuya_get_imei(imei);
tuya_get_iccid(iccid);
snprintf(dp_muti_buf, 128, "{"103":"%s","104":"%s"}", imei, iccid);
tuya_send_multiple_value_data(dp_muti_buf);
while(1)
{
csq = tuya_get_csq();
snprintf(dp_buf, 16, "{"102":%d}", csq);
tuya_send_csq_data(dp_buf);
printf("send csq:%d", csq);
tuya_sleep(3);
}
}
4 Demo实战
4.1 创建一个Demo
复制20.4_trans_xtu示例工程,到同一个文件夹下,修改文件名为
5.8.4-mqtt_tencent-iot-explorer,如图:

4.2 修改makefile
增加mbedTLS,这里不适用tuya-connect-kit中的mbedTLS,使用sdk本身的版本,增加tuya-connect-kit头文件和源文件路径,如图:





4.3 增加头文件
使用代码编辑器,将新建的工程文件加入代码编辑器中,打开main.c,修改main.c,加入am.h等头文件,如图:
main.c

4.4 修改代码
本例对mqtt_sample进行了适当的修改,具体查看代码。
4.5 编译
在SDK根目录打开命令行,输入命令.uild.bat -l .amaziot_bloom_os_sdksamplelibraries
5.8.4-mqtt_tencent-iot-explorer
PS F:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF
λ .uild.bat -l .amaziot_bloom_os_sdksamplelibraries5.8.4-mqtt_tencent-iot-explorer
子目录或文件 outin 已经存在。
子目录或文件 buildmbedTLS 已经存在。
处理: buildmbedTLS 时出错。
子目录或文件 buildcJSON 已经存在。
处理: buildcJSON 时出错。
子目录或文件 buildobj 已经存在。
gnumake: Entering directory `F:/3.asr-b/cat.1-asr1606/1.software/BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF/amaziot_bloom_os_sdk/sample/libraries/5.8.4-mqtt_tencent-iot-explorer'
armcc.exe -c --cpu Cortex-R4 --no_unaligned_access -g -O2 --apcs /inter --diag_suppress 2084,1,2,177,188,223,550,1296,2795,6319,9931,9933 --diag_error=warning --gnu --thumb --loose_implicit_cast -DDATA_COLLECTOR_IMPL -DISPT_OVER_SSP -DDIAG_SSP_DOUBLE_BUFFER_USE_DYNAMIC_ALLOCATION -DENV_XSCALE -DL1_DCXO_ENABLED -DLTE_HIGH_MOBILITY_OPTIMIZATION -DRUN_XIP_MODE -DCRANE_Z2 -DCA_LONG_IPC_MSG -DNEZHA3 -DNEZHA3_1826 -DUPGRADE_PLMS -DUPGRADE_PLMS_SR -DLTE_GSMMULTIBCCH -DGPLC_LTE_RSSI_SCAN -DL1V_NEW_RSSI -DUPGRADE_PLMS_3G -DUPGRADE_PLMS_L1 -DUPGRADE_FG_PLMS -DFG_PLMS_URR -DUPGRADE_L1A_FG_PLMS -DUPGRADE_PLMS_STAGE_2 -DUPGRADE_MBCCH -DMULTI_BCCH_READY_IND -DURR_MRAT_ICS_SEARCH -DUPGRADE_ICS -DMRAT_NAS -DUPGRADE_PLMS_SEARCH_API -DICS_MBCCH -DICS_MBCCH_2G_RSSI -DDIAG_NEWPP -DPHS_SW_DEMO -DPHS_SW_DEMO_TTC -DPHS_SW_DEMO_TTC_PM -DFULL_SYSTEM -D_DDR_INIT_ -D_TAVOR_HARBELL_ -DUPGRADE_ARBEL_PLATFORM -D_TAVOR_B0_SILICON_ -DTDL1C_SPY_ENABLE -DDLM_TAVOR -DTAVOR -DFLAVOR_DUALCORE -DDEBUG_D2_MOR_REG_RESEREVED_ENABLE -D_DIAG_USE_COMMSTACK_ -D_TAVOR_DIAG_ -DPM_DEBUG_MODE_ENABLED -DPM_D2FULL_MODE -DPM_EXT_DBG_INT_ARR -DFEATURE_WB_AMR_PS -DMACRO_FOR_LWG -DHL_LWG -DOPTIMIZE_FOR_2G_BCCH -DPLAT_TEST -D_FDI_USE_OSA_ -DPLAT_USE_THREADX -DLWIP_IPNETBUF_SUPPORT -DCRANE_MCU_DONGLE -DAT_OVER_UART -DPHS_SW_DEMO_TTC_PM -DUPGRADE_LTE_ONLY -DEXT_AT_MODEM_SUPPORT -DLTEONLY_THIN_SINGLE_SIM -DLFS_FILE_SYS -DLFS_FILE_SYS_V2 -DPSM_ENABLE -DNO_PAHO_MQTT -DNO_XML -DNO_LWM2M -DREMOVE_MBEDTLS -DNO_AT_NET -DCRANE_SD_NOT_SUPPORT -DNTP -DYMODEM_EEH_DUMP -DENABLE_DM_LTEONLY -DLTEONLY_THIN -DNO_EXTEND_MY_Q_AT -DNOT_SUPPORT_HTTPS -DNOT_SUPPORT_PM813 -DCRANEL_4MRAM -DREMOVE_PB -DUART_NEW_VERSION -DREMOVE_MEP -DREMOVE_SMS -DREMOVE_ENVSIM -DAPN_INCODE -DLTEONLY_THIN_SINGLE_SIM_2MFLASH -DASR160X_OPENCPU_FEATURE -DENABLE_UART3_FEATRUE -DENABLE_UART4_FEATRUE -DYUGE_MBEDTLS_3_2_1 -DENABLE_MAC_TX_DATA_LOGGING -DDISABLE_NVRAM_ACCESS -DINTEL_UPGRADE_EE_HANDLER_SUPPORT -DLTE_W_PS -DL1_DUAL_MODE -DUPGRADE_HERMON_DUAL -DINTEL_UPGRADE_DUAL_RAT -DINTEL_UPGRADE_GPRS_CIPHER_FLUSH -DUPGRADE_ENHANCED_QUAD_BAND -DINTEL_2CHIP_PLAT -DI_2CHIP_PLAT -DUPGRDE_TAVOR_COMMUNICATION -DRUN_WIRELESS_MODEM -DFLAVOR_DDR12MB_GB1MB5 -DFEATURE_SHMEM -DACIPC_ENABLE_NEW_CALLBACK_MECHANISM -DRELIABLE_DATA -DMAP_NSS -DTV_FNAME=""SW_PLATFORM=PMD2NONE PHS_SW_DEMO PHS_SW_DEMO_PM SRCNUCLEUS FULL_SYSTEM NOACRTC PDFLT PLAT_TEST PV2 DIAGOSHMEM NVM WITHL1V"" -DTV_FDESC=""SW_DESCRIPTION="" -DENABLE_ACIPC -D_DATAOMSL_ENABLED_ -DUSB_CABLE_DETECTION_VIA_PMIC -DMIPS_TEST -DMIPS_TEST_RAM -DFLAVOR_DIET_RAM -DNVM_INCLUDE -DMSL_INCLUDE -DMSL_POOL_MEM -DNO_AUDIO -DOSA_QUEUE_NAMES -D_DIAG_DISABLE_USB_ -DOSA_NUCLEUS -DOSA_USED -DPM_D2NONE_MODE -DCRANE_SOC_TEMPERATURE_SENSOR -DL1_SW_UPDATE_FOR_DIGRF -DPHS_L1_SW_UPDATE_R7 -DUPGRADE_LTE -DFRBD_CALIB_NVM -DFRBD_AGC_CALIB -DFRBD_FDT_CALIB -DHSPA_MPR -DCAPT_PARAMS_OPTIMIZE -DL1_WB_R99_ONLY -DL1V_WB_R99_ONLY -DINTERGRATED_RF_SUPPORT -DL1_RX_DIV_SUPPORT -DENABLE_OOS_HANDLING -DTAVOR_D2_WB_L1_SUPPORT -DL1_DDR_HIGH_FREQ -DUPGRADE_DIGRF3G_SUPPORT -DW_PS_PLUS_G_PAGING -D"NO_APLP=0" -DINTEL_UPGRADE_UNIFIED_VOICE_TASK -DINTEL_UPGRADE_R99 -DAPLP_SPY_ENABLE -D__TARGET_FEATURE_DOUBLEWORD -DWHOLE_UMTS_STACK -DUSE_TTPCOM_CSR_BLUETOOTH_AUDIO_GAIN_CONTROL -DL1_UPGRADE_R5 -DUPGRADE_EDGE -DUPGRADE_R4_FS1 -DINTEL_UPGRADE_GSM_CRL_IF -DUPGRADE_EGPRS_M -DINTEL_UPGRADE_EGPRS_M -DINTEL_UPGRADE_RF_PARAMS_IN_CF_TDS -DINTEL_UPGRADE_2SAMPLES_PER_SYMBOL -D"GPRS_MULTISLOT_CLASS=12" -D"EGPRS_MULTISLOT_CLASS=12" -DMARVELL_UPGRADE_BSIC_REDESIGN -DMSL_INCLUDE -DINTEL_HERMON_SAC -DCRANE_CUST_BUILD -DL1_SW_UPDATE_FOR_DIGRF -DFLAVOR_COM -DSILICON_PV2 -DSILICON_SEAGULL -DSILICON_TTC_CORE_SEAGULL -DPCAC_INCLUDE -Otime -DBUILD_DATE=""04 22 2024"" -DBUILD_TIME=""10:09:04"" -Iatcmdsinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhop elephonyyugeinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhalUARTinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhalcoreinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhalPMUinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhalGPIOinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xosposixinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xdiagdiag_logicsrc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xcswSysCfginc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xcswplatforminc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xenvwin32inc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xcswBSPinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xcswplatformdev_platuild -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xososainc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xos hreadxinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xos
u_xscaleinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xpcacpsminc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xpcachttpclientsrc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xdiagdiag_logicinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhop imerinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhopintcinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xcswPMinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhoppminc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xsoftutilTickManagerinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhopBSPinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhop elephonyatcmdsrvinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhop elephonyatparserinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhop elephonysdkinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xpcachttpclientinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xpcacciinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xpcaclwipv4v6srcinclude -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xpcaclwipv4v6srcincludearch -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xpcaclwipv4v6srcincludeipv4 -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xpcaclwipv4v6srcincludeipv6 -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xpcaclwipv4v6srcincludelwip -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xpcaclwipv4v6srcinclude
etif -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhopmmi_matinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160x avorArbelinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160x avorenvinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhop elephonymodeminc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xpcacdusterinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xpcacfotainc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhalI2Cinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhalACIPCinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xsoftutilfatsysflash -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xsoftutilFDIsrcINCLUDE -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhalMMUinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xsoftutilFDIsrcFDI_ADD -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xsoftutilFDIsrcFM_INC -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xsoftutilfatsysfshdr -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xsoftutillittlefsinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xpcac tsinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xpcacdialinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xsoftutilcsw_memoryinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhoputilitiesinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhopcommpminc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xsoftutil
vminc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xsoftutilEEhandlerinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xsoftutilEEhandlersrc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhopRTCinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhop elephonyci_clientinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhalBT_deviceinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhalUARTinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhopmrdinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhopdmainc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xsoftutilsoftutilinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhalSPIinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xpcacwebsocketinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xpcacatnet_srvinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xsoftutilfotacomminc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xaud_swAudioinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xaud_swACM_COMMinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xaud_swaudio_stubsrc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhopaaminc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xaud_swAudioHALinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhaldbgshellinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xpcacopencpuinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFamaziot_bloom_os_sdkutils -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFCSDK_CODEmbedTLSmbedTLS_3_2_1asros -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFCSDK_CODEmbedTLSmbedTLS_3_2_1 -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFCSDK_CODEmbedTLSmbedTLS_3_2_1inc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFCSDK_CODEmbedTLSmbedTLS_3_2_1include -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFCSDK_CODEmbedTLSmbedTLS_3_2_1includembedtls -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFCSDK_CODEmbedTLSmbedTLS_3_2_1incmbedtls -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFCSDK_CODEmbedTLSmbedTLS_3_2_1 estsinclude est -DSDK_ENABLE_MBEDTLS -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFCSDK_CODEcJSONinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF/amaziot_bloom_os_sdk/platforms/tencent/qcloud_iot_c_sdkincludeexports -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF/amaziot_bloom_os_sdk/platforms/tencent/qcloud_iot_c_sdkinclude -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF/amaziot_bloom_os_sdk/platforms/tencent/qcloud_iot_c_sdksdk_srcinternal_inc -o buildobj/ext_at_cmds.o F:/3.asr-b/cat.1-asr1606/1.software/BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF/amaziot_bloom_os_sdk/sample/libraries/5.8.4-mqtt_tencent-iot-explorer/atcmds/src/ext_at_cmds.c
armlink.exe buildobj/data_template_action.o buildobj/data_template_client.o buildobj/data_template_client_common.o buildobj/data_template_client_json.o buildobj/data_template_client_manager.o buildobj/data_template_event.o buildobj/device_bind.o buildobj/dynreg.o buildobj/gateway_api.o buildobj/gateway_common.o buildobj/json_parser.o buildobj/json_token.o buildobj/kgmusic_client.o buildobj/mqtt_client.o buildobj/mqtt_client_common.o buildobj/mqtt_client_connect.o buildobj/mqtt_client_net.o buildobj/mqtt_client_publish.o buildobj/mqtt_client_subscribe.o buildobj/mqtt_client_unsubscribe.o buildobj/mqtt_client_yield.o buildobj/network_interface.o buildobj/network_socket.o buildobj/ota_client.o buildobj/ota_fetch.o buildobj/ota_lib.o buildobj/ota_mqtt.o buildobj/qcloud_iot_ca.o buildobj/qcloud_iot_device.o buildobj/qcloud_iot_log.o buildobj/resource_client.o buildobj/resource_lib.o buildobj/resource_mqtt.o buildobj/resource_upload.o buildobj/service_mqtt.o buildobj/string_utils.o buildobj/utils_aes.o buildobj/utils_base64.o buildobj/utils_getopt.o buildobj/utils_hmac.o buildobj/utils_httpc.o buildobj/utils_list.o buildobj/utils_md5.o buildobj/utils_ringbuff.o buildobj/utils_sha1.o buildobj/utils_timer.o buildobj/utils_url_download.o buildobj/utils_url_upload.o buildobj/HAL_Device_freertos.o buildobj/HAL_OS_freertos.o buildobj/HAL_TCP_lwip.o buildobj/HAL_Timer_freertos.o buildobj/HAL_UDP_lwip.o buildobj/mqtt_sample.o buildobj/main.o buildobj/ext_at_cmds.o buildobj/ext_at_controller.o buildCSDK_CODE.lib
-o F:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFoutinArbel_PMD2NONE_40M.axf
--via F:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFprebuilt_1606lArbel_PMD2NONE_targ_objliblist.txt
--elf
--scatter F:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFprebuilt_1606lCrane_DS_4M_Ram_2M_Flash_XIP_CIPSRAM_Common_SingleSIM.sct
--predefine="-DLTEONLY_THIN_SINGLE_SIM" --predefine="-DASR160X_OPENCPU_FEATURE"
--map --symbols --info sizes,totals
--list F:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFoutinArbel_PMD2NONE_40M.map
--keep init.o(Header) --keep init.o(Vectors) --diag_suppress 6312,6314,6319,6329
--feedback F:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFoutfeedbackLinkOptLteonlyThin_SingleSim_NoSMS.txt
F:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF oolsuildimage_1606l.bat
SDK_PROD_TYPE : [DM]
SDK_CUST_SKU : [THIN_SINGLE_SIM_NO_SMS]
SDK_PS_MODE : [LTEONLY]
SDK_CHIP_VER : [Z2A0]
SDK_OS_TYPE : [TX]
Platform Convertion Tools v4.01 with PS option extension
Convertion done!
|INPUT |outincp_1606L.bin
|MARK |NAME |EXEADDR .LOADADDR.LENGTH .CPZLADDR|COMPRESS STASTIC |
|--------|--------|--------.--------.--------.--------|------------------------------|
|This Is LteOnly 4M|
|RW_CPZ_1|DDR_RW_ |7e119000.800704f0.0000d6c8.80071000|0000d6c8->00003000
|This Is LteOnly 4M|
|RW_CPZ_2|PS_NCAH |7e388000.8007dbb8.00001300.80074000|00001300->00001000
|This Is LteOnly 4M|
|RW_CPZ_3|ITCM |7e3dac00.8007eeb8.0000f51c.80075000|0000f51c->0000a000
|This Is LteOnly 4M|
|RW_CPZ_4|CODE_PS |7e1aa000.8008e3d4.0002fe3c.8007f000|0002fe3c->0001e000
|This Is LteOnly 4M|
|RW_CPZ_5|CODEPSB |7e1dc000.800be210.000339bc.8009d000|000339bc->0001b000
|This Is LteOnly 4M|
|RW_CPZ_6|CODEPSC |7e213000.800f1bcc.000323ec.800b8000|000323ec->0001b000
|This Is LteOnly 4M|
|RW_CPZ_7|CODEPSD |7e249000.80123fb8.00028d88.800d3000|00028d88->0001a000
|This Is LteOnly 4M|
|RW_CPZ_8|CODEPSE |7e277000.8014cd40.0002e310.800ed000|0002e310->0001a000
|This Is LteOnly 4M|
|RW_CPZ_9|CODEPSF |7e2a9000.8017b050.0001c948.80107000|0001c948->00011000
|This Is LteOnly 4M|
|RW_CPZ_A|CODE_PL |7e2ca000.80197998.0002fbb4.80118000|0002fbb4->0001e000
|This Is LteOnly 4M|
|RW_CPZ_B|CODEPLB |7e2fa000.801c754c.0003905c.80136000|0003905c->00021000
|This Is LteOnly 4M|
|RW_CPZ_C|CODEPLC |7e337000.802005a8.000268d4.80157000|000268d4->00011000
|--------|--------|--------.--------.--------.--------|------------------------------|
| | 0x0020fe7c -> 0x00151000|
| | 2.062(MB) -> 1.316(MB)|
|------------------------------------------------------------------------------------|
cp_1606L.axf
cp_1606L.bin
cp_1606L.map
gnumake: Leaving directory `F:/3.asr-b/cat.1-asr1606/1.software/BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF/amaziot_bloom_os_sdk/sample/libraries/5.8.4-mqtt_tencent-iot-explorer'
"copy NEZHAC_CP_CNR_MIFI_TX.bin to ./ "
已复制 1 个文件。
4.6 生成固件
参考入门中开发工具,生成工具。
4.7 扫描二维码,添加设备
小程序添加设备后,设备上电,demo运行后,会上报信息,同时可以使用小程序下发修改数据。

5 总结
根据实验现象,按照本文所述流程,可以实现红豆平台连接腾讯云物联网开发平台。
本文章源自奇迹物联开源的物联网应用知识库Cellular IoT Wiki,更多技术干货欢迎关注收藏Wiki:Cellular IoT Wiki 知识库「链接」



点击链接如何加入奇迹物联技术话题群「链接」可以获取加入技术话题群攻略


注:本文部分内容来源于网络,如有侵权,请及时联系我们。


