一种迪文屏软件在线升级方法

——来自迪文开发者论坛    

 

开发自己的项目中遇到文件升级不方便的问题,因此设计了一个在线升级方案,可以有效解决如下问题:

1. 当产品已发出需要修复Bug时,无法在线修复。

2. 无法判断新老版本,当数据文件没有变化时执行了重复升级。

3. 批量升级时,每个设备需要单独去插卡或者用电脑上位机升级。

  

演示视频

 


一、设计思路

  • 引导装载升级程序,在系统中始终存在一段用于程序装载的代码,该代码在启动时被运行。根据Nor Flash版本号差异来判断是运行现有版本的程序还是从主机下载新程序。

  • 当迪文屏上电复位时,首先执行片内的装载程序,在Nor Flash地址存放每个数据文件的当前版本号,作为下一次判断是否需要更新该数据文件的依据。(注意一定要升级该数据文件成功后才保存该数据文件的当前版本号)。

  • 主控板根据版本号的差异判断迪文屏是否需要下载新程序。如果本地版本号与上一次更新的版本号不同时,主控板向迪文屏发送更新程序的请求,内核文件通过继电器切换SD卡信号线的方式给到迪文屏。

  • 迪文屏接收新的应用程序内容,并在最终确认后写入外部Flash内。当更新程序执行完毕后,将DGUS系统复位,并执行片内RAM中的程序。如果再次复位,那么将重复上述装载执行过程。这里版本号有多少个不同,就会更新多少个文件,避免版本一致的重复更新。

 

二、设计框图


1.设计框图


三、资料下载

 方案完整资料包下载可前往迪文开发者论坛获取:

http://inforum.dwin.com.cn:20080/forum.php?mod=viewthread&tid=6361&extra=&page=1


2.迪文2