做一些定位器和车载定位设备项目时,有接触到MTK功能机平台三种不同形式的FOTA方式,先简单总结一下(不排除可能有一些不对的地方):
(1)第三方方案(差分升级)
第三方公司将其FOTA代码移植到项目工程中,按照他们的FOTA流程进行升级。
优点:稳定,减少开发难度,后续升级可改动空间大;
缺点:每次升级都收费,自主性不高,需要一定的内存空间;
(2)APP部分升级
这种升级方式,只是针对APP部分进行升级,为了描述方便,整个固件简单分为APP+SYSTEM两部分,system部分,按照MTK常规操作,生成Bin文件后,用Flash_tool烧录到设备里面即可;app部分也会生成一个独立的bin文件,称为app_bin吧,将该app_bin放到对应的文件夹(自己设置)下面,开机的时候会将该app_bin调入内存中,完成升级(后续只升级该app_bin)。这种方式需要用到MTK工程build目录下面后缀为.sym文件。
优点:稳定,有一定自主性,开发上手快,对内存空间要求不高;
缺点:一次性收费,需要自己实现升级流程;
(3)动态加载升级
这个升级方式,需要打补丁,打上补丁后,自己实现整个升级过程。
优点:自主性高,后续无费用,对内存空间要求不高;
缺点:需要考虑接口函数的预留,需要自己实现升级流程;
注:第二种方式有点类似于动态加载,但是,感觉还是有点不一样的
后续更熟悉后,再对后两种方式,做更详细的总结。