0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

在i.MX RT10XX系列平台上进行OTA

恩智浦MCU加油站 来源:恩智浦MCU加油站 作者:恩智浦MCU加油站 2021-09-17 10:12 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

一、背景介绍在这个万物互联的时代,OTA升级功能更是为我们的生活增加便利。OTA = Over-the-Air Technology,空中下载技术。OTA升级则是通过OTA方式对设备实现固件或者软件升级。最为常见的就是移动终端的OTA升级,近几年很火的新能源汽车也让大家对这一技术更加熟悉。

二、概述本文将介绍在i.MX RT10XX系列平台上,进行基于阿里云物联网平台的OTA。在此之前,先简单介绍一下本文用到的SBL&SFW工程。SBL(Secure Bootloader)是MCU SE团队为i.MX RT全平台设计的一个second bootloader工具,帮助用户进行程序的安全启动。SFW(Secure Firmware)是基于FreeRTOS创建的工程,生成固件为了配合SBL来实现完整的FOTA流程。本文的阿里云物联网平台OTA就是SFW中的一部分,SFW还支持U盘、SD卡以及AWS平台的OTA升级。以下是SBL和SFW两个工程的Github链接:

https://github.com/NXPmicro/sbl

https://github.com/NXPmicro/sfw

三、配置阿里云OTA升级代码3.1 创建云端设备要实现阿里云物联网平台的OTA升级,首先要将阿里云物联网平台提供的C Link SDK(本次移植使用阿里云C-SDK 4.0.0)移植到工程中。登录阿里云物联网平台:https://iot.console.aliyun.com/,进入公共实例板块,创建自己的产品。

在“所属品类”中选择任一即可。“节点类型”选择“直连设备”,“连网方式”选择“以太网”,其余选项默认即可。

完成产品创建之后,在相应产品下创建需要的设备,如对阿里云物联网平台不了解的读者,可以通过阿里云物联网平台的入门教程-公共实例快速入门中查找相应操作。

至此我们已经拿到了对于i.MX RT设备连接阿里云IOT平台非常重要的三元组:ProductKey、DeviceName和DeviceSecret。

3.2 配置设备端C-SDK

创建好产品和设备之后,我们需要将阿里云物联网平台的Link SDK移植到我们的设备端中。

在“公共实例”中,点击左侧最下端“文档与工具”,选择“设备接入SDK”中的“SDK定制”来下载所需要的设备端SDK。

将下载的C-SDK包中需要用到的core、OTA文件夹以及external文件夹中的证书ali_ca_cert.c、portfiles文件夹中的freertos_port.c和demos文件夹中的fota_basic_demo.c添加到我们原本的工程文件中以便修改。

本例程中,OTA升级的流程图如下所示:

3.3 OTA升级程序

在OTA功能函数中,有几个需要注意的地方:

1. 当前固件的版本号

在OTA升级的过程中,云端需要校验当前固件版本号,如果是需要升级的固件版本,才会对设备发送升级请求以及升级包URL,OTA升级才能继续下去。

2.将固件一次性下载完成

阿里云C-SDK默认的下载方式为两段下载,此处我们采用一次性下载完整个固件的方式。

3. flash的擦除

在设备端收到了OTA升级的MQTT消息后,会下载新的固件,并且需要设备端烧写到指定的flash位置,在此之前,需要先将该区域擦一下。

4. 烧写下载的固件到flash上,分段下载,每一段一保存

至于其他一些可以变动的地方,可以详细阅读阿里云C-SDK。

四、OTA演示下面就来演示一下在SBL工程配合下的阿里云OTA升级工程,平台为i.MX RT1064EVK,利用以太网进行网络连接(用户也可自行配置无线模块进行连网)。 1. 修改当前版本号生成bin文件

在IAR中修改当前版本为1.0.0和1.4.0,并且生成相应的bin文件(此处以IAR工程为例);

2. 在SBL工程中利用签名脚本进行bin文件的加头签名操作

将上一步生成的两个bin文件拷贝到SBL工程中sbl/component/secure/mcuboot/scripts文件夹下,利用PowerShell给两个bin文件签名。

3. 创建OTA任务

在云端控制台页面,公共实例下的监控运维中,选择OTA升级。点击添加升级包按键以添加升级包,输入升级包名称,选择相应的升级选项,注意,升级包版本需要和上传的bin文件中版本一致,否则后续的OTA无法成功。

4. 开始运行OTA工程

Step1. 利用MCUBootUtility工具将加签的1064_ali_100.bin下载到板子的第一个启动区,默认的slot1为flash_offset+0x100000 ~ flash_offset+0x200000,整个区域大小为1MB。

Step2. 运行Secure Bootloader

将SBL工程通过IDE下载到板子中,下面就可以开始进行整个OTA流程了。

在开发板上插入以太网网线,按下reset键开始运行工程,串口显示“The image now inPRIMARY_SLOT slot”和“Getting IP address from DHCP”表示在slot1里面的程序已经成功运行。“IPv4 Address:” 和 “version:1.0.0”表示网络连接成功并且阿里云云端接收到当先设备的版本为1.0.0。

上传升级包时,如果选择了需要进行升级包验证,则在云端接收到当前版本信息后,需要进行操作验证;如果没有选择验证,则可直接进行升级进程。

串口会显示升级包信息,可以看到OTA目标版本为1.4.0,大小信息也会显示。

下面的打印信息显示下载请求已经成功发送并开始下载流程,

下载完成后会有打印信息如下,并且开始进行系统重启,在系统重启后,会启动slot2中的升级包程序,可以看到当前的版本信息,并且可以在控制台看到OTA升级已经验证完成。

五、总结本文介绍了在i.MX RT平台上进行阿里云的OTA升级。

虽然只是简单的版本号升级演示,但是通过本文可以知道在基于i.MX RT的IOT设备进行固件升级时,需要进行操作的地方有哪些,在针对你的设备进行功能代码升级的同时,加上上文中的OTA升级部分,即可轻松借助阿里云物联网平台进行设备的固件升级。

责任编辑:haq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 物联网
    +关注

    关注

    2939

    文章

    47332

    浏览量

    408061
  • OTA
    OTA
    +关注

    关注

    7

    文章

    623

    浏览量

    37964
  • 阿里云
    +关注

    关注

    3

    文章

    1028

    浏览量

    45506

原文标题:在i.MX RT平台上进行阿里云OTA

文章出处:【微信号:NXP_SMART_HARDWARE,微信公众号:恩智浦MCU加油站】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    i.MX RT1180实现EtherCAT+伺服控制的终极实践

    今天继续为大家介绍i.MX RT1180实现EtherCAT+伺服控制的终极实践:双电机控制与Ethercat资源使用。
    的头像 发表于 11-26 08:19 2511次阅读
    <b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b>1180实现EtherCAT+伺服控制的终极实践

    恩智浦i.MX RT1180跨界MCU助力下一代伺服控制系统

    今天我们将聚焦一项正在重塑工业自动化边界的技术组合 —— 基于NXP的i.MX RT1180微控制器,实现EtherCAT通信与高性能伺服控制的融合方案。
    的头像 发表于 09-28 14:16 4293次阅读
    恩智浦<b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b>1180跨界MCU助力下一代伺服控制系统

    恩智浦i.MX RT1180跨界处理器如何选型

    i.MX RT1180 跨界处理器包含众多的型号,以满足客户对不同性能与价格的需求,今天就先给大家说说如何选型。
    的头像 发表于 09-28 14:01 2049次阅读
    恩智浦<b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b>1180跨界处理器如何选型

    恩智浦MCU方案 单颗i.MX RT1180实现EtherCAT+伺服控制

    介绍基于单颗i.MX RT1180芯片的EtherCAT+伺服电机控制方案-伺服控制板硬件电路资源介绍,即为下图中的Servo Motor Driver Board。
    的头像 发表于 09-11 14:27 5.3w次阅读
    恩智浦MCU方案 单颗<b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b>1180实现EtherCAT+伺服控制

    恩智浦i.MX 95系列MPU如何赋能边缘计算

    系列博文的第一部分,我探讨了恩智浦i.MX 95系列如何将新功能安全技术应用于工业环境、汽车领域及其他边缘应用。接下来的文章中,我将进
    的头像 发表于 07-30 11:08 2366次阅读
    恩智浦<b class='flag-5'>i.MX</b> 95<b class='flag-5'>系列</b>MPU如何赋能边缘计算

    基于恩智浦i.MX RT芯片内部RAM运行LVGL工程

    随着越来越多用户选择i.MX RT系列芯片制作产品,产品的需求以及芯片的用法也越来越多。本文将介绍i.MX
    的头像 发表于 07-01 09:33 2200次阅读
    基于恩智浦<b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b>芯片内部RAM运行LVGL工程

    如何实现安卓与恩智浦i.MX RT1170的无线投屏与控制

    Scrcpy是一款免费开源的软件,支持将安卓端屏幕投影到其他设备,并支持被投屏设备对安卓的反向控制。基于ADB工具,安卓端无需安装任何软件,延迟低,稳定性好。现在,安卓也可投屏到恩智浦i.MX RT1170上。
    的头像 发表于 06-26 09:53 1942次阅读
    如何实现安卓与恩智浦<b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b>1170的无线投屏与控制

    i.MX RT系列中FlexSPI DQS信号引脚配置GPIO方法

    i.MX RT060项目(采用QSPI Flash)的实际应用中,有客户反馈,其设计阶段并未预留DQS信号引脚,而是将该引脚作为GPIO用于控制关键外设的开关,这导致程序无法正常运
    的头像 发表于 06-16 11:30 1279次阅读
    <b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b><b class='flag-5'>系列</b>中FlexSPI DQS信号引脚配置GPIO方法

    NXP i.MX RT1060移植TinyUSB:快速扩展大量USB Class示例

    前言   为啥是TinyUSB?给强大的RT配个轻巧的USB栈! USB这个让我们方便快捷的接口,几乎无处不在。嵌入式世界里,尤其是用上了像NXP i.MX RT这样性能强劲的跨界M
    的头像 发表于 05-15 09:25 2209次阅读
    NXP <b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b>1060移植TinyUSB:快速扩展大量USB Class示例

    i.MX RT 1176上正常运行代码时与使用IAR调试代码时存在一些奇怪的差异,为什么?

    ROM 因此与 i.MX RT 10xx 部分中的 BOOT ROM 不兼容,其中 SP 是从重置向量中的值设置的,这意味着 SP 值must改为 startup code 中设置
    发表于 03-17 07:26

    GoPoint嵌入式开发平台 释放i.MX潜力 简化Linux开发

    进行创新。 快节奏的嵌入式系统时代,时间是开发人员最宝贵的资源。GoPoint (过去名为NXP Demo Experience) 重新定义了评估和探索过程,开发人员能够快速评估i.MX SoC在下一代项目中的能力。 GoP
    发表于 02-28 10:07 1074次阅读
    GoPoint嵌入式开发<b class='flag-5'>平台</b> 释放<b class='flag-5'>i.MX</b>潜力 简化Linux开发

    恩智浦推出FRDM i.MX 93开发板

    备受嵌入式开发者青睐的恩智浦FRDM开发平台,迎来了一位新成员——FRDM i.MX 93开发板,这也是第一块配备i.MX MPU的FRDM开发板,意味着强大的FRDM生态合作体系,已经扩展到
    的头像 发表于 02-21 14:22 2933次阅读

    i.MX RT处理器上使用PXP实现缩放和旋转组合操作

    本文主要探讨如何使用PXP实现缩放和旋转组合操作,PXP是NXP推出的一个2D图形加速器,主要完成对图像的数据格式转换、固定角度旋转(90°,180°,270°),任意比例缩放、混色,移位以及翻转等功能。运行平台i.MX RT
    的头像 发表于 02-20 10:53 1573次阅读
    <b class='flag-5'>在</b><b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b>处理器上使用PXP实现缩放和旋转组合操作

    RT10XX RC24M开启自动校准功能

    RT10XX系列的时钟源主要由外接24M XTAL, 内部的RC24M,外接32K RTC,内部32K时钟,PLL及其PFD构成。正式开始介绍自动校准功能前,我们先对RT10XX的时
    的头像 发表于 02-20 10:51 1320次阅读
    <b class='flag-5'>RT10XX</b> RC24M开启自动校准功能

    恩智浦i.MX 94应用处理器如何变革工业和汽车连接

    恩智浦半导体发布i.MX 94系列应用处理器,为工业和汽车连接设定了新的标准。作为i.MX 9系列应用处理器的最新成员,i.MX 94旨在提
    的头像 发表于 01-17 10:51 1541次阅读