使用AWS IoT SDK构建
亚马逊网络服务物联网提供安全的双向通信
互联网连接的东西(如传感器,执行器,嵌入式设备或智能家电)和
AWS云。与云的连接是通过安全TLS上的MQTT协议实现的
连接。
本节介绍如何构建AWS演示。 GNU Embedded工具链6.2或更高版本是
需要。
1.从https://github.com/aws/aws-iot-device-sdk-embedded-C下载AWS开发工具包
提取它。
2.在目标目录下创建thirdparty / aws / awsiot /文件夹。
3.将aws-iot-device-sdk-embedded-C-master / src文件夹中的所有文件复制到
thirdparty / aws / awsiot /文件夹。
4.将aws-iot-device-sdk-embedded-C-master \ external_libs \ jsmn \ _ jsmn.c文件复制到
thirdparty \ aws \ awsiot文件夹
5.将aws-iot-device-sdk-embedded-C-master文件夹中的include目录复制到
thirdparty / aws / awsiot /文件夹。
6.将aws-iot-device-sdk-embedded-C-master \ external_libs \ jsmn \ _ jsmn.h文件复制到
thirdparty / aws / awsiot / include文件夹。
7.复制aws-iot-device-sdk-embedded-C-
master \ samples \ linux \ shadow_sample \ aws_iot_config.h文件到
thirdparty / aws / awsiot / include文件夹。
8.从thirdparty / aws / awsiot / include文件夹中,删除以下头文件。
“network_interface.h”,“threads_interface.h”,“timer_interface.h”
函数isJsonValidAndParse()中的AWS源代码中存在错误。争论二
应该是void ** pJsonHander而不是void * pJsonHandler。进行以下操作
变化
在thirdparty \ aws \ awsiot \ include \ aws_iot_shadow_json.h中
bool isJsonValidAndParse(const char * pJsonDocument,void * pJsonHandler,
int32_t * pTokenCount);
改成
bool isJsonValidAndParse(const char * pJsonDocument,void ** pJsonHandler,
int32_t * pTokenCount);
在thirdparty \ aws \ awsiot \ aws_iot_shadow_records.c中进行这些更改
在thirdparty \ aws \ awsiot \ aws_iot_shadow_json.c中进行这些更改
在Windows上,添加以下环境变量以设置库的路径。
set TOOLLIBPATH=path\to\lib\gcc
set NEWLIBPATH=path\to\arm-none-eabi\lib
示例:如果ARM GNU工具链安装在C:\ Program Files(x86)\ GNU下
工具ARM Embedded \ 6.2 2016q4 \,设置路径如下。
TOOLLIBPATH= C:\Program Files (x86)\GNU Tools ARM Embedded\6.2
2016q4\lib\gcc\arm-none-eabi\6.2.1\thumb\v7e-m
NEWLIBPATH= C:\Program Files (x86)\GNU Tools ARM Embedded\6.2
2016q4\arm-none-eabi\lib\thumb\v7e-m