上一张帖子讲到了使用USB Bridge给DSP进行程序常规升级,在升级过程中,Bootloader会对APP进行擦除,然后重新写入新的APP,这段时间类,被升级的设备不能正常工作,这对电源应用是不可接受的,因为在升级过程中,电源掉电对被供电的设备影响是巨大的。
那么有没有一种方法能解决这个问题呢?
当然是有的,那就是LiveUpdate。
我们将DSP的FLASH划分为两部分,一部分作为活动区,另一部分作为非活动区,示意图如下所示。要升级的程序会先写入到非活动分区,DSP会根据设置的BTSEQn大小和BOOTSWP命令无缝切换到非活动分区,与数字电源环路相关的变量和函数优先级最高。
本次做了一个简单的小演示,按照以下界面进行操作,通过USB Bridge发送UART命令与MCU进行交互。
1、DSP工作在活动分区,最左边的灯闪烁,视频演示如下:
2、通过UART输入非活动分区序列号BTSEQn指令,写入BTSEQn,启动分区切换指令BOOTSWP,视频演示如下:
3、切换到非活动分区后,程序无缝切换过去,最右边LED开始闪烁,视频演示如下:

