Tc3xx_SOTA&Overlay

开发中,经常遇到初学者把SOTA和Overlay两个功能搞混淆,因此随便总结总结,有不对的地方大家指出来

1、功能对比

功能

SOTA

Overlay

功能描述

使能SOTA功能,将整个Flash分为两块,可实现A区运行程序,同时刷写新程序到B区

将所要访问的数据(通常存放在Flash)重定向到所选overlay内存(通常为RAM区域)

应用场景

不连接烧写器的情况下,通过CAN、串口、以太网等通讯方式,实现应用程序的更新

在程序运行时实时在线进行标定工作

相关寄存器

CU_SWAPCTRL,

DMU_HF_PROCONTP.SWAPEN

CPU_OSEL,

CPU_RABR,

CPU_OTAR,

CPU_OMASK

相关章节

TC3xx_Part1-UsermManual-v1.00

1.5 Software over the air

TC3xx_Part1-UsermManual-v1.00

5.3.9 Data Access Overlay

总结

1、SOTA用于OTA程序升级,Overlay用于汽车控制器标定技术,二者应用场景不同

2、SOTA关联TC3xx模块为:SCU和DMU,Overlay关联TC3xx模块:CPU

3、SOTA关注Flash的A/B分区和地址映射,Overlay关注flash重定向到ram

2、SOTA功能描述

核心逻辑:使能SWAP功能,使两块不同的物理区域可以映射到相同逻辑地址

以TC39x为例,该芯片有两种Address map方式:

(1)Standard Address map

(2)Alternate address map

标准地址映射,A0000000-A0BFFFFF 对应物理BANK 为(PF0、1)(简称A)、(PF2、3)(简称B)

备用地址映射,A0000000-A0BFFFFF 对应物理BANK 为(PF2、3)(B)、(PF0、1)(A)

以上述为例,用户使用A000 0000 - A05F FFFF作为工程的运行区(不关心实际对应哪一块物理BANK),用A060 0000 - A0BF FFFF作为OTA升级的程序刷写区;

当需要OTA升级时,将代码写到程序刷写区后,检查当前地址映射模式,配置寄存器切换到另一种地址模式,MCU重启后刷写区对应的物理bank会映射到运行区,开始运行新的程序;后续OTA升级以此类推。

3、Overlay功能描述

核心逻辑:通过配置Overlay寄存器,CPU访问Flash地址,但实际重定向访问RAM中内容

应用场景举例:在汽车制动中,假设制动力大小与制动踏板的数学模型

Y = aX+b

其中,Y是制动力,X是制动踏板开度,a、b为模型系数;

通常情况下,a、b是作为常量存储在Flash

现在标定工程师开发过程中,想要在某个固定制动踏板位置下,修改a、b参数来调节制动力大小,

如果是修改flash,从时间和安全角度是不现实的。

因此需要把a、b的值拷贝到RAM,通过访问修改ram中a、b值来达到上述目的。

Overlay功能举例说明:

假设想把PFlash0(0x8000 1000)(128byte)重定向到CPU0DSPR(0x70011000)

定义一个常量,存储在PF中,如下

定义一个变量,存储在RAM中,如下

Overlay是针对CPU的,由于debug是走bypass,因此如果直接去memory看overlay flash值,必定还是原flash的值。

需要一个中间变量来承接,定为Test_Algo_Update

开启overlay功能,要达到的目的为:通过cpu0去读取被重定向flash里的值,实际读到的应该是RAM中的值

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CyberSecurity_zhang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值