将终端设备 SDK 移植到您的设备上 - 的托管集成 AWS IoT Device Management

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

将终端设备 SDK 移植到您的设备上

将终端设备 SDK 移植到您的设备平台。按照以下步骤将您的设备与 AWS IoT 设备管理连接起来。

下载并验证终端设备 SDK

  1. 托管集成控制台下载最新版本的终端设备 SDK。

  2. 验证您的平台是否在支持的平台列表中参考:支持的平台

    注意

    终端设备 SDK 已在指定平台上进行了测试。其他平台可能有效,但尚未经过测试。

  3. 将 SDK 文件提取(解压缩)到您的工作区。

  4. 使用以下设置配置您的构建环境:

    • 源文件路径

    • 头文件目录

    • 所需的库

    • 编译器和链接器标志

  5. 在移植平台抽象层 (PAL) 之前,请确保平台的基本功能已初始化。功能包括:

    • 操作系统任务

    • 外围设备

    • 网络接口

    • 特定于平台的要求

将 PAL 移植到您的设备上

  1. 在现有平台目录中为特定于平台的实现创建一个新目录。例如,如果您使用 FreeRTOS,请在上创建一个目录。platform/freertos

    例 SDK 目录结构
    ├── <SDK_ROOT_FOLDER> │ ├── CMakeLists.txt │ ├── LICENSE.txt │ ├── cmake │ ├── commonDependencies │ ├── components │ ├── docs │ ├── examples │ ├── include │ ├── lib │ ├── platform │ ├── test │ └── tools
  2. 将 POSIX 参考实现文件(.c 和.h)从 posix 文件夹复制到新的平台目录中。这些文件为你需要实现的函数提供了一个模板。

    • 凭据存储的闪存管理

    • PKCS #11 的实现

    • 网络传输接口

    • 时间同步

    • 系统重启和重置功能

    • 日志记录机制

    • 特定于设备的配置

  3. 使用 TLS 设置传输层安全 (TLS) 身份验证。 MBed

    • 如果您已经有与平台上的 SDK 版本相匹配的 MBed TLS 版本,请使用提供的 POSIX 实现。

    • 使用不同的 TLS 版本,您可以使用堆栈为 TLS 堆栈实现传输挂钩。 TCP/IP

  4. 将您平台的 mbedTLS 配置与中的软件开发工具包要求进行比较。platform/posix/mbedtls/mbedtls_config.h确保所有必需的选项都已启用。

  5. 该软件开发工具包依赖 CoreMQTT 与云端进行交互。因此,您必须实现使用以下结构的网络传输层:

    typedef struct TransportInterface { TransportRecv_t recv; TransportSend_t send; NetworkContext_t * pNetworkContext; } TransportInterface_t;

    有关更多信息,请参阅 FreeRTOS 网站上的传输接口文档

  6. (可选)SDK 使用 PCKS #11 API 来处理证书操作。CorePKCS 是用于原型设计的非硬件特定的 PKCS #11 实现。我们建议您在生产环境中使用安全的加密处理器,例如可信平台模块 (TPM)、硬件安全模块 (HSM) 或安全元素:

    • 查看使用 Linux 文件系统进行凭据管理的 PKCS #11 实现示例,网址为。platform/posix/corePKCS11-mbedtls

    • 在以下位置实现 PKCS #11 PAL 层。commonDependencies/core_pkcs11/corePKCS11/source/include/core_pkcs11.h

    • 在上实现 Linux 文件系统platform/posix/corePKCS11-mbedtls/source/iotmi_pal_Pkcs11Operations.c

    • 在上实现您的存储类型的存储和加载功能platform/include/iotmi_pal_Nvm.h

    • 在中实现标准文件访问权限platform/posix/source/iotmi_pal_Nvm.c

    有关详细的移植说明,请参阅 FreeRTOS 用户指南中的移植核心PKCS11库

  7. 将 SDK 静态库添加到您的构建环境中:

    • 设置库路径以解决任何链接器问题或符号冲突

    • 验证所有依赖关系是否正确关联

测试你的端口

您可以使用现有的示例应用程序来测试您的端口。编译完成时必须没有任何错误或警告。

注意

我们建议您从尽可能简单的多任务处理应用程序开始。示例应用程序提供了等效的多任务处理功能。

  1. 在中查找示例应用程序examples/[device_type_sample]

  2. main.c文件转换为您的项目,然后添加一个条目来调用现有的 main () 函数。

  3. 确认您可以成功编译演示应用程序。