1、 前言 本博文讲解英飞凌TC397系列多核单片机的SOTA功能以及代码实现; 所谓SOTA,即是不使用劳特巴赫、UDE或者其他调试器连接Debug口,而是通过CAN总线、UART等方式实现更新应用软件的功能。 说到SOTA,肯定有人会问和FOTA的区别,这里举个简单的例子:比如常见的手机软件升级,如手机中大家经常玩的王者荣耀,王者荣耀这个APP进行升级就认为是SOTA并且你在升级王者荣耀的时候不影响你看电视剧琅琊榜,而有的时候手机会提示你系统已经发布了新的版本,此时若是你选择更新手机系统,手机还会提示你更新过程中保证手机有足够的电量(我遇到这种情况都会连上充电器,以防止更新过程中断电,手机变砖),并且此种情况下,你是无法继续进行追琅琊榜电视剧的。总而言之,FOTA可以理解是一个系统性的升级,SOTA只是一个系统升级里面的APP(应用程序)升级。
2、SOTA功能介绍 常见的SOTA功能实现都是基于单片机开发的BootLoader功能,通过BootLoader完成应用程序的更新,具体方案可以参考我写的单片机IAP方案设计 这里只进行TC397 SOTA方案的讲解,如下: TC397的PFlash支持两种地址映射方式,从而可以使得应用程序(APP)在编译的时候不需要区分AB区,使用相同的地址即可,简言之一次编译后再A区B区都可以运行。 2.1 TC397的Flash地址映射方式 TC397的PFlash分为Standart Address Map(标准地址映射方式)和Alternate Address Map(备用地址映射)。 标准地址映射方式,如下图,表中PF0~PF5表示物理意义上的5块PFlash 图待补充(手册95页)
备用地址映射方式?
|