乐鱼体育app实业有限公司
咨询热线:

021-39886679

关于我们

24小时全国服务热线

021-39886679

如果您有任何疑问或是问题, 请随时与我们联系

查看联系方式>>
新闻动态 当前位置:主页 > 新闻动态 >

乐鱼app-深入探讨i.MX RT1010 OTA存储结构

时间: 2022-01-15 00:00:05

  

乐鱼体育app

比来恩智浦在Github发布了一套基在MCU的OTA工程,该工程撑持i.MX RT系列,且撑持security的相干功能,获得了用户的普遍存眷。

这套工程是基在恩智浦的EVK开辟板,板载Flash的容量也就决议了全部OTA工程的存储布局。可是分歧容量的flash,OTA的存储布局也不尽不异。本文将比来撑持客户时的一些经验予以总结,当大师改换flash的时辰,可以更快的完成OTA工程设置装备摆设。本文介绍的方案为基在Remap功能实现OTA的方式。全部OTA的存储布局可以用下图进行暗示,即 SBL(Secure Bootloader), OTA Flag Data,Slot1,Slot2和Customer Data区域。

SBL的首要功能是用在在芯片POR启动后,按照OTA flag data的信息,决议存储在Slot1或Slot2的法式进交运行。除此以外,还撑持法式的验签,回滚等功能。

OTA Flag Data区域首要是用在存储OTA进级进程中的一些标记位信息,按照相干的标记位信息SBL进行image进级,回滚和跳转到对应的slot运行法式。

Slot1和Slot2用在存储利用法式。

Customer Data用在存储客户的一些信息(可选项,非必需)。

本文迁就上述几个区域的存储空间分派,和中心的一些需要留意的点予以介绍。

根基的硬件情况是i.MX RT1010-EVK开辟板,客户的现实需求是利用一颗容量为512KB的Flash,且不需要利用Security相干的功能。是以在禁用Security功能后,利用IAR编译出一个巨细为25KB的SBL.bin文件。因为OTA中利用的Remap功能需要4KB对齐,和Flash的最小擦除容量是4KB,是以SBL分派的容量是28KB,则此时SBL的地址分派空间为:FunctionAdd_StartAdd_End

SBL0x6000 00000x6000 6FFF

OTA Flag data虽然只有32Bytes的数据,可是在进级进程中这些数据需要读写擦,但Flash的擦除进程需要依照Sector的巨细进行,是以也最少需要保存4KB的空间,则此时OTA Flag data的地址和空间分派为:

fd68864e-388a-11ec-82a8-dac502259ad0.png

接下来就是Slot1和Slot2,Slot1和Slot2要利用Remap的功能进行切换,Remap的地址需要4K对齐,则此时用在存储利用层法式的地址空间分派为:

FunctionAdd_StartAdd_End

Slot10x6000 80000x6004 3FFF

Slot20x6004 40000x6007 FFFF

此时,仔细的伴侣们就会发现,完全的512K Flash空间已被利用光了。没错,此次客户不需要用这个CustomerData区域,但愿把更多的空间用在利用法式。

在完成了OTA存储布局按功能地址分派以后,我们进行一些细部探讨。

起首看SBL,SBL区间首要包罗用在Flash boot的相干信息,例如IVT, Flash Config Block等。这部门代码根基上不需要改动,可以直接利用。

在地址空间分派上,可以将SBL区域视为一个可以从Flash XIP boot的hello word工程。

fdc48da4-388a-11ec-82a8-dac502259ad0.png

接着看一下OTAFlag Data区间的地址分派,OTA Flag Data总计32个字节,用在唆使OTA进程中的三种状况,进级,回滚和正常工作(没有进级和回滚产生)。

该32字节凡是存储在Slot1的首地址之前的32字节位置。

ff92553a-388a-11ec-82a8-dac502259ad0.png

最后来看Slot1和Slot2的地址空间分派。

利用法式的首地址,即中止向量表的首地址其实不是从Slot1的首地址最先的,缘由有两点

第一在image的肇端地址需要增添用在OTA的ImageHeader信息,该Image Header的巨细为32字节。

其次,对利用法式中中止向量表的肇端地址,需要进行计较。其根基的计较原则是:中止向量的数目 * 4的成果,向上对齐到2的次幂整数倍。看RT1010的中止向量总计256个,可是真正可使用的是96个。则此时的计较成果是:96 * 4 = 384。向上对齐到2次幂整数倍,则为512即0x200。

所以,利用法式的真正肇端地址需要在Slot1的根本上,向后调剂0x200。

Slot2的空间分派也需要知足这个前提。

fff0a036-388a-11ec-82a8-dac502259ad0.png

终究完全的地址空间分派以下图所示:

006545f8-388b-11ec-82a8-dac502259ad0.png

当需要对OTAFlag Data和Slot地址进行分派,可以在法式中搜刮下图中的要害词进行更改,对下面的表格进行调剂。

凡是需要进行存眷的要害地址为:BOOT_FLASH_ACT_APP和 BOOT_FLASH_CAND_APP。其余的地址信息,与这两个地址信息存在依靠关系,法式内部可按照这两个地址信息进行计较。

需要留意的是,本文中触及到的OTA方式,是基在Remap功能实现的,是以仅仅合用在除RT1050,RT1020, RT1024, RT1015之外的RT系列。

最后,向在本次客户撑持中供给年夜量协助的Tim, Gavin, Xiaoli暗示感激。

差点忘了,原工程的下载地址是:

https://github.com/NXPmicro/sbl

https://github.com/NXPmicro/sfw

编纂:jq


【返回列表页】
地址:上海市松江区泗泾镇高技路655号绿亮科创园4号楼二楼242室    座机:021-39886679    邮箱:yuliang_sh@163.com
  技术支持:庞讯网络    ICP备案编号: