TIwilliam hill官网
直播中

古孟谦

7年用户 151经验值
私信 关注
[问答]

DSP2812远程数据更新

最近在搞DSP2812的远程更新Flash程序,在网上查找了一些资料,都只是说用串口下载然后远程传输,但中间的具体细节和关键技术都没有说清楚,请教一下各位大神DSP远程更新flash如何实现,如果我程序烧写在不同的Flash扇区,我该如何引导我的程序从不同的扇区进行读写数据!

回帖(1)

冯敬宇

2018-5-14 08:44:23
rong,
可以用串口进行在线升级。
首先是你要自己先一段bootloader程序放在一个特殊的扇区,这个扇区在升级的过程中是不能擦除的。
然后在用户程序中监视串口的命令,当接收到串口发送过来升级的指令的时候,就需要调到bootloader的入口,bootloader进行初始化,重新初始化系统时钟,串口等,然后回送应答给串口上位机,准备接收上位机发送过来的数据。因为升级数据很大,所以不可能一次接收完,一般是分次接收,当接收到一块数据后,就调用Flash API函数烧写到Flash中,烧写完后,回送应答给上位机,上位机再发送下一个数据块。当然,这个数据块需要包含地址信息,数据长度,数据,校验和。
最后烧写完成后,就可以重新跳到Flash的入口,0x3F7FF6。
在上位机你也要读hex文件,解析成一块块数据,发送给下位机。
这是大概的思路。
附件是2812的SCI boot Flash烧写的例子,跟在线升级不同的地方是,这个例程的bootloader是通过SCI boot 方式load到RAM中,然后再运行bootloader接收上位机数据,调用Flash API烧写。
 

Eric

                                                                         - ERIC
举报

更多回帖

发帖
×
20
完善资料,
赚取积分