首页 > 编程知识 正文

英飞凌模块有几代,英飞凌芯片解密

时间:2023-05-05 15:43:14 阅读:113212 作者:3910

SOTA SOTA的全名为云端软件升级(Software updates Over The Air),表示无需使用刻录机即可通过CAN、UART或其他通信方式更新APP应用程序。

在进行SOTA时,必须清除旧的APP应用程序并写入新的APP应用程序。 在通常的实现方式中,需要分别开发BootLoader程序和APP程序,打开MCU先运行BootLoader,BootLoader根据情况选择是否跳转到APP和是否更新程序具体而言,有以下方法。

3358www.Sina.com/:如果要更新程序,则方案一将APP更新到标志位置; MCU重新启动时,引导加载器检查更新标志位,如果有效,则清除旧APP,并将临时存储在Flash中的新APP数据写入APP执行地址。 该方案的优点是,更新数据的接收通过APP进行,引导加载器不需要通信协议栈,代码量少且数据传输中断时,原始APP不损坏。 缺点是需要额外的Flash空间来临时存储更新数据。 http://www.Sina.com/: http://www.Sina.com /。 此方案的优点是不需要额外的闪存登台数据。 缺点是,如果引导加载器代码更复杂,数据传输中断,则无法恢复旧的APP。 此方案适用于具有较小闪存容量的MCU。由APP接收更新数据并暂存于Flash:方案1和方案2相结合,即方案二该方案结合方案1和方案2的优点,可以在无APP或APP损坏的情况下实现程序更新。 缺点是引导加载器代码量大,Flash空间大。BootLoader中内置通讯协议栈,更新时,先向MCU发送指令使其跳转到BootLoader,之后先擦除旧APP,在接收新APP的同时直接将其写入Flash的APP运行地址处:flash将其分为两个大小相同的区域,所有http://www.Sina.com/用于存储APP,但同时只有一个区域的APP是有效的,每个区域都有一个标志在方案三BootLoader中确定哪个区域的APP有效,然后跳至哪个区域执行。 这种方法不需要重复复制APP数据,但最大的缺点之一是AB区域中APP程序的执行地址不同,需要分别编译,因此会大大降低APP可扩展性。 经过以上分析,可以看出每个方案都有优缺点。在BootLoader程序中内置通讯协议栈,更新时,先向MCU发送指令使其跳转到BootLoader,之后接收更新数据的时候,采用方案一的方法,先将数据暂存于Flash,待数据全部接收完成后再擦除旧的APP,写入新的APP但是,对于像TC3XX这样的MCU,Flash的容量通常很大,可以充分使用,因此为了防止数据传输中断而导致APP不可用,通常需要在临时存储APP后进行更新。 上面的方案1、3、4都可以实现,但并不完美。 TC3XX系列SOTA机制类似于方案4,但Flash支持两种地址映射方法,因此在编译APP时不需要区分AB区域,使用相同的地址即可,避免了方案4的硬损坏

2. TC3XX的Flash地址映射方式以TC397的Flash为例,用于存储程序代码的方案四的标准地址映射方式(分为A区和B区)是

第二种地址映射方式被称为初始状态下先将APP写入A区,更新的时候,将新的APP写入B区,再把A区的APP擦除,如下表所示,标准模式下的PF0-1的地址范围当前被映射到PF2-3,PF4的地址范围被映射到PF5。

3 .当激活3. TC3XX的SOTA功能描述SOTA功能时,PFLash被分成两个部分,一个用于存储可执行代码,另一个用于读取和写入。 更新完APP后,两个部分会互换。 也就是说,切换上面的两种地址映射方式。 在标准模式中,使用PF0-1和PF4作为活动bank,以下称为组a,在备用模式中使用PF2-3和PF5作为活动bank,以下称为组b,由此,上述方案4

对于Flash容量较小的MCU,通常采用方案二,因为没有过多的空间暂存APP更新数据

SOTA地址映射的参数由闪存用户配置块(UCB )配置,并且仅在配置UCB后下次重置MCU时更新配置。

4. SOTA的配置参数(1) SOTA Mo

de Enable

该参数决定是否开启SOTA模式,在寄存器Tuning Protection Configuration中的SWAPEN进行配置,定义如下:


(2)Bank Swap

UCB_SWAP区域中,对SOTA模式下使用哪种地址映射进行配置。

UCB_SWAP区域包含以下内容:

其中最重要的是前四个,我们分别来看一下:

① MARKERLx (x=0-15)



MARKERL中的SWAP就是标记使用标准地址映射还是Alternate地址映射。

② MARKERHx (x=0-15)


MARKERH中存着与之相对应的MARKERLx.SWAP的入口地址,是用来做校验的。

③ CONFIRMATIONLx (x=0-15)


CONFIRMATIONL是确认代码,要写入固定的0x57B5327F,上面的MARKERLx.SWAP才有效。

④ MARKERHx (x=0-15)


MARKERH中存着与之对应的 CONFIRMATIONLx.CODE的入口地址,也是用来做校验的。

5. SOTA的初始化配置

初始化状态是使用标准地址映射,此时SOTA模式未启用。按以下步骤启用SOTA:

① 用烧写器把APP烧写进PFlash的组A地址处。
② 向MARKERL0写入0x00000055。
③ 向MARKERH0写入MARKERL0的系统地址。
④ 向CONFERMATIONL0写入0x57B5327F。
⑤ 向CONFERMATIONH0写入CONFERMATIONL0的系统地址。
⑥ 将UCB_OTP0中SWAPEN标志位置为Enable。
⑦ 重启MCU。

经过上面的步骤,就事MCU进入了SOTA模式,其中步骤②-⑤是为了启用标准地址映射。手册中给了如下的流程图供参考,其中一些加解密的步骤我这里省略了,暂时没有详细研究:

6. SOTA的后续配置

上面说的是第一次启用SOTA时的配置,下面我们就来看一下SOTA启用后,进行APP更新的步骤:

① 将新的APP写入PFlash中未激活的部分,即上文提到的Inactive Bank,并进行准确性校验。
② 如果新的APP被写入组B,则向MARKERLx.SWAP写入0x000000AA,启用Alternate地址映射模式;如果新的APP被写入组A,则向MARKERLx.SWAP写入0x00000055,启用标准地址映射模式。(x是0-15的值,从0开始向上递增,由上文可知UCB_SWAP最多能存储16组标志值,存满后再擦除重新写入。)
③ MARKERHx.ADDR、CONFIRMATIONLx.CODE和CONFIRMATIONHx.ADDR配置同上文。
④ 向CONFIRMATIONL(x-1).CODE再次写入0xFFFFFFFF,来使上一组UCB_SWAP值失效。向PFlash再次写入全1的值不会导致PFlash操作错误。

手册中给了下面这个流程图供参考:

以上就是Tricore TC3XX系列SOTA机制的介绍,我目前也只是看了手册,还没有实际运用过,有不正确的地方欢迎大家交流讨论。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。