查看: 1886|回复: 6

[原创] 【应用笔记】在 i.MX RT 上进行 AWS OTA 更新

[复制链接]
  • TA的每日心情
    开心
    2024-3-26 15:16
  • 签到天数: 266 天

    [LV.8]以坛为家I

    3303

    主题

    6550

    帖子

    0

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    32066
    最后登录
    2024-4-30
    发表于 2021-12-14 12:54:45 | 显示全部楼层 |阅读模式
    在 i.MX RT上进行 AWS OTA 更新
    1 引言
    本应用笔记将介绍在 i.MX RT1xxx 系列平台上利用 AWS 进行远程 OTA 更新的过程。
    AWS OTA 更新基于 Secure Bootloader (SBL)和 Secure Firmware(SFW)两个工程实现。SBL 是 OTA 的安全引导加载程序,它可以通过恩智浦 Soc 安全引擎确保设备进行安全的 OTA。SFW 基于 FreeRTOS、恩智浦 SDK 等功能模块设计,与 SBL 协同工作以提供一套完整且安全的 OTA 解决方案。SFW支持基于 SD 卡或 U 盘的本地 OTA 以及基于 AWS 或阿里云的远程 OTA。本应用笔记将介绍基于 AWS 的 OTA 更新过程。
    2 AWS OTA 概述
    本章主要介绍 AWS OTA 更新的整体流程,如 图 1 所示。当需要更新固件时,首先将新版本的固件上传到 AWS 的 S3 bucket。然后创建 OTA 更新任务。 此任务将通知 RT1170 设备有可用的固件更新。最后,设备下载新的固件,验证固件后更新自身的应用程序代码。届时,设备更新完毕并运行新的应用程序代码,直到有新的更新为止。同时,设备也会向 AWS 上报任务的状态。
    14.png
    3 AWS OTA 的基础配置
    本章将简单介绍一下进行 AWS OTA 更新所必须的一些基础配置,主要有如下配置流程:
    1. 创建 OTA 更新服务角色,S3 bucket,OTA 用户策略等。
    2. 利用 OpenSSL 和 AWS CLI 创建代码签名证书。
    3. 创建 AWS IoT thing。
    由于具体配置过程篇幅较长,在这里不做赘述。详细配置过程,请参考文档 MCU-OTA SBL and SFW User Guide (document
    MCUOTASBLSFWUG)的 7.3.1.1 AWS OTA Prerequisites。
    4 AWS OTA 更新
    SFW 工程支持 i.MX RT1020, RT1050, RT1060, RT1064 和 RT1170 平台上的 AWS OTA 更新。SFW 与 SBL 协同工作,提供一套完整安全的 OTA 解决方案。SFW 通过以太网连接到 AWS。本章将演示一下如何使用 SBL 和 SFW 在 RT1170-EVK 板上实现AWS OTA 更新。
    SBL 和 SFW 工程可以从以下链接下载:
    • SBL: https://github.com/NXPmicro/sbl
    • SFW: https://github.com/NXPmicro/sfw
    4.1 SBL 准备
    要实现 AWS OTA,首先要将 SBL 工程下载到目标板上,步骤如下:
    1. 进入 sbl/target/evkmimxrt1170 目录,双击 env.bat。
    2. 在 env.bat 中,运行 scons --menuconfig 命令,然后会出现 图 2 显示的 SBL 配置界面。
    15.png

    3. 在配置界面中,取消勾选 Enable single image function 和 Enable mcu isp support 两个选项。保存并退出。
    4. 然后运行 scons --ide=iar 命令生成 IAR 工程 sbl.eww,该工程位于 sbl/target/evkmimxrt1170/iar 目录下。生成 Keil 或者 gcc 工程,请参照 MCU-OTA SBL and SFW User Guide (文档 MCUOTASBLSFWUG) 中的Chapter 2 Quick start。
    5. 编译 sbl.eww 工程并下载到 RT1170-EVK 板卡中。
    4.2 配置 SFW
    下载完 SBL 工程后,第二步要将 SFW 工程下载到目标板卡。在此之前,首先需要对 SFW 工程进行相关配置以支持 AWS OTA,步骤如下:
    1. 生成 aws_clientcredential_keys.h 文件。
    a. 进入 sfw/firmware/aws_ota/tool 目录。
    b. 使用浏览器打开 CertificateConfigurator.html。
    c. 在页面中导入证书和密钥文件(该文件在 MCU-OTA SBL and SFW User Guide (文档 MCUOTASBLSFWUG 中的Chapter 7.3.1.1 AWS OTA Prerequisites 部分里生成)。然后点击 Generate and save aws_clientcredential_keys.h按钮生成并下载 aws_clientcredential_keys.h。
    16.png

    d. 用 Step c 生成的文件替换掉 sfw/firmware/aws_ota/demos/include 目录下的 aws_clientcredential_keys.h
    文件。
    2. 修改 aws_ota_codesigner_certificate.h 文件。
    a. 利用文本编辑器打开 ecdsaigner.crt 文件(该文件在 MCU-OTA SBL and SFW User Guide (文档
    MCUOTASBLSFWUG 中的 Chapter 7.3.1.1 AWS OTA Prerequisites 部分里生成)。
    b. 打开 sfw/firmware/aws_ota/demos/include/aws_ota_codesigner_certificate.h 文件。
    c. 复制 ecdsaigner.crt 文件中的所有内容并粘贴到 signingcredentialSIGNING_CERTIFICATE_PEM 文件的
    aws_ota_codesigner_certificate.h。

    确保在每行开头添加 "并在每行末尾添加 \n",如 图 4 所示。

    17.png

    3. 进入 sfw/target/evkmimxrt1170 目录。双击 env.bat 文件。
    4. 在 env.bat 中,运行 scons --menuconfig 命令来配置 evkmimxrt1170 工程。
    5. 在配置界面中,选择 MCU SFW core,然后禁用 Enable sfw standalone xip 选项,勾选 enable OTA 选项并选择 AWS
    OTA。

    18.png

    6. 然后选择 AWS Config 进入 图 6 所示界面。

    19.png

    7. 需要设置两个 AWS 相关的选项,一是 MQTT DNS name。
    a. 打开 AWS IoT 网站。
    b. 在左边的导航窗口,选择 Manage → Things。然后选择之前创建的 Thing(创建过程详见 MCU-OTA SBL and
    SFW User Guide (文档 MCUOTASBLSFWUG 文档 Chapter 7.3.1.1 AWS OTA Prerequisites)。

    c. 选择 Interact。
    20.png

    d. 在 AWS Configuration 界面,选择 Set MQTT broker DNS name 选项,将 图 7 黄色框里的内容输入到下面的界
    面中,然后选择 <ok>。
    21.png

    8. 二是设置 IoT Thing name。
    在 AWS Config 配置界面,选择 Set IoT Thing name,将 图 7 绿色框里的内容输入到 图 9 的界面中,然后选择<ok>。
    22.png

    9. 在配置界面中,选择 MCU SFW Component -> secure 选项,然后勾选 enable mbedtls 选项并将 mbedtls 配置文件设置
    成 aws_mbedtls_config.h。
    23.png

    10. 退出并保存上述的所有设置。
    4.3 image 准备
    为了演示 AWS OTA,需要准备两个 SFW image,一个用于运行在目标版卡上,另一个上传到 AWS 的 S3 bucket 用于后续的
    OTA 更新。根据配置 SFW 配置完 SFW 工程后即可生成 SFW image,步骤如下:
    1. 进入 sfw/target/evkmimxrt1170 目录,双击 env.bat。
    2. 输入 scons --ide=iar 命令来生成 IAR 工程。
    生成 keil 或者 gcc 工程,参见 MCU-OTA SBL and SFW User Guide (手册 MCUOTASBLSFWUG)中 Chapter
    2 Quick start 内容。

    3. 进入 sfw/target/evkmimxrt1170/iar 目录,打开 sfw.eww 工程。
    4. 进入 Options 界面,按 图 11 进行选择以输出 bin 文件。





    未更新完!查看完整版请回复:







    签到签到
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    半小时前
  • 签到天数: 1483 天

    [LV.10]以坛为家III

    203

    主题

    2万

    帖子

    64

    超级版主

    Rank: 8Rank: 8

    积分
    92884
    最后登录
    2024-5-6
    发表于 2021-12-14 16:07:10 | 显示全部楼层
    支持管管, 顺便看看完整版,
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2024-3-26 15:16
  • 签到天数: 266 天

    [LV.8]以坛为家I

    3303

    主题

    6550

    帖子

    0

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    32066
    最后登录
    2024-4-30
     楼主| 发表于 2021-12-14 16:09:22 | 显示全部楼层
    stm1024 发表于 2021-12-14 16:07
    支持管管, 顺便看看完整版,

    阔以阔以!
    签到签到
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    2024-4-22 18:23
  • 签到天数: 590 天

    [LV.9]以坛为家II

    31

    主题

    1345

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    3589
    最后登录
    2024-4-29
    发表于 2021-12-15 09:15:12 | 显示全部楼层
    看看,涨涨知识
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    14 小时前
  • 签到天数: 2012 天

    [LV.Master]伴坛终老

    24

    主题

    6194

    帖子

    21

    金牌会员

    Rank: 6Rank: 6

    积分
    12007
    最后登录
    2024-5-6
    发表于 2022-7-22 15:54:40 | 显示全部楼层
    最近在做RT1050上的网关工作,如何实现app端的在线OTA升级?老铁们给点参考例子,好吧
    哎...今天够累的,签到来了~
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    1

    主题

    2

    帖子

    0

    新手上路

    Rank: 1

    积分
    42
    最后登录
    2023-5-25
    发表于 2023-5-25 11:55:29 | 显示全部楼层
    查看               
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2023-6-19 09:37
  • 签到天数: 9 天

    [LV.3]偶尔看看II

    1

    主题

    28

    帖子

    0

    注册会员

    Rank: 2

    积分
    114
    最后登录
    2023-8-2
    发表于 2023-6-7 13:54:23 | 显示全部楼层
    学习了,但是如果将启动设备改成SD,我还没想好怎么整合SFW和SBL ,目前的实现方式是直接自制bootloader,加入SD和USB驱动,增加fatfs驱动,使bootloader支持U盘升级SD文件系统里面的app
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2024-5-6 14:33 , Processed in 0.128102 second(s), 26 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表