注意!引导蓝牙加载程序设计要考虑这些

2015-05-29 09:51 来源:电子信息网 作者:柚子

蓝牙无线引导加载的方式,可以帮助工程师通过无线传输,实现新文件配置和程序升级,具有传输配置快、不受空间限制等优势。但在使用这一方法的过程中,工程师在进行程序设计时需要注意哪些方面才能最大限度的避免电源故障?一旦出现加载无效的情况应该如何处理?就让我们通过下文的讲解叙述,来看一看在进行引导蓝牙加载程序设计时都要考虑哪些问题。

一个强大的蓝牙引导装载程序应该能够检测、报告和妥善地处理无线引导加载过程中发生错误,如数据包在传输过程中丢失,数据损坏,和闪存写入错误。闪存错误检查通常是通过为应用程序存储校验和或循环冗余码(CRC)来实现的。当引导加载操作启动时,它会清除这些比特。如果应用程序下载并安装成功,他们将会更新。

不过,还要说一下引导加载发生电源故障的情况。在重置时,引导加载程序检测无效校验位,并且不会把控制权转交给部分加载的应用程序。相反,它会等待主机启动另一个引导加载操作。一旦一个新的应用程序被引导加载,引导加载程序必须验证可引导加载图像,然后把控制权转移给新的应用程序。引导加载程序也应该能够检查自己闪存中的图像,看它是否是有效的。

另一个要考虑的关键因素是避免应用程序覆盖引导加载程序本身。如果引导加载程序被破坏,或由应用程序覆盖,则系统可能无法运行,并可能需要引导程序被重新编程到系统中。为了避免这种情况,在闪存中的引导加载程序区域必须得到保护,以避免被加载程序代码意外覆盖。

在引导蓝牙加载程序设计中,另一个重要的考虑因素是开始与主机通信的时机。在确定该应用程序有效之后,该引导加载程序可以等待一定的时间,使主机启动一个新的引导加载操作。如果等待时间太短,主机可能不能够可靠启动通信。如果时间太长,产品的整体启动时间可能也被延长了。类似于为了避免设备重置而启动加载新应用程序的方案,定时问题也可以通过使应用程序调用引导加载程序来解决。

为了使目标系统容错,可以使用Multi-APP引导加载程序,它能够在闪存中存储多个应用程序的图像。如果引导加载程序检测到其中一个应用程序图像被损坏,那么引导加载程序可以跳转到其他图像中的一个。能够存储的应用程序的数量取决于在目标系统中闪速存储器的大小。

引导蓝牙加载程序还可以包含简单的调试功能,可以通过使用UART接口和像“TERA TERM”这样的终端模拟程序在PC上显示调试信息来实现。所有调试信息都可以通过蓝牙到串行适配器无线发送。

用于不同微控制器的标准主机自举工具应用程序现在是很容易得到的。它们可以直接使用SPP(串行端口配置文件)无线引导加载,而无需进行任何修改。然而,主机自举工具可以进行定制,以更好地满足无线引导加载,和/或嵌入终端仿真器窗口查看调试信息,甚至通过无线使用SPP发送特定数据,从应用程序中调用引导加载程序。

为了充分利用终端仿真器,引导加载到目标系统中的任何新的应用程序还必须包含一个UART接口,并且当特定的数据从主机发送到目标系统时,能够调用引导程序。引导程序和应用程序共享UART接口。用一个稍微复杂的Multi-App蓝牙引导程序设计,有可能通过使用SPP从主机无线发送图像到目标系统中,实现存储在闪盘中的多个应用程序间的切换。这将节省新应用程序引导加载所需的时间。

结语

工程师在进行蓝牙加载程序设计时,需要进行综合比对和反复试验,尽可能的节省加载时间并避免加载代码出现意外覆盖等故障情况。

蓝牙 加载程序

相关阅读

暂无数据

一周热门