首页 理论教育嵌入式系统设计:保证可升级性的方法

嵌入式系统设计:保证可升级性的方法

【摘要】:SD卡离线升级厂家只需将SD卡取回,把更新后的程序放入SD卡中,然后发放给用户,用户只需把SD卡插入终端设备,即可达到系统升级的目的。图1-6 SD卡离线升级流程图出厂前,通过ISP编程方式在板上Flash中烧入一个类似于Boot loader的程序。用户插入SD卡后,程序首先驱动SD卡,使其能正常工作,然后读取SD卡中的升级程序,并将其放入指定的Flash地址段中。

当用户在使用嵌入式产品的过程中,出现了系统漏洞或者用户不满足现有功能而提出更多需求时,就要对系统升级或者维护。下面介绍几种升级方式。

(1)SD卡离线升级

厂家只需将SD卡取回,把更新后的程序放入SD卡中,然后发放给用户,用户只需把SD卡插入终端设备,即可达到系统升级的目的。图1-6给出了整个系统设计流程图

978-7-111-47515-6-Chapter01-6.jpg

图1-6 SD卡离线升级流程图

出厂前,通过ISP编程方式在板上Flash中烧入一个类似于Boot loader的程序。在用户插入SD卡前,该程序不断判断SD卡是否插入。用户插入SD卡后,程序首先驱动SD卡,使其能正常工作,然后读取SD卡中的升级程序,并将其放入指定的Flash地址段中。最后,跳转到指定段,开始工作。(www.chuimin.cn)

(2)在线升级

在线升级通常指在连接网络的情况下从服务器下载更新文件以确保软件等处于最新状态。此种方式适用于可以连接在网络上的嵌入式设备。

服务器作为软件升级任务的主动发起者,首先向嵌入式系统发送升级命令,嵌入式系统在硬件启动后,首先执行引导程序Boot Loader进行一系列的初始化操作,同时选择执行升级控制程序,待服务器接收到嵌入式系统的确认升级回复后即开始发送升级程序代码。在发送升级程序代码前,服务器会将这些代码拆分成固定长度的多个数据单元,以每个数据单元为核心组成数据包(数据包内容包含数据包头标志、命令头、包序列、数据单元、CRC校验码、数据包尾标志、总包数等),嵌入式系统每接收到一个数据包,都将返回确认信息,若数据包校验无误,则在规定的Flash区域进行旧程序的擦除以及新程序的复制,从而达到远程终端的嵌入式系统软件的在线升级目的。在线升级实现流程图如图1-7所示。

978-7-111-47515-6-Chapter01-7.jpg

图1-7 在线升级实现流程图