FOTA:我如何通过无线方式进行固件更新?

时间:2012-02-22 05:30:21

标签: c firmware ota

这里我想更新我的设备fireware。

从某处(服务器)下载文件后,我该怎么做才能更新固件?

请告诉我如何实现这一目标以及为实现这一目标我必须考虑哪些事项。

这是什么步骤?

我想首先设计如何才能实现这一目标。

我在google上对此进行了研究,但我无法获得任何有用的链接,这些链接让我对此有了清晰的认识。

请提供一些有用的链接,因此我可以清楚地了解这一点。

我在这里有关于我的研究的链接link

2 个答案:

答案 0 :(得分:6)

通过无线方式更新固件是一个复杂的主题。如何做到这一点在很大程度上取决于您的设备硬件和操作系统的细节。可以为您提供概述的一个链接是on Wikipedia.

有商业解决方案可供选择,但假设您想制作自己的解决方案,需要考虑的主要事项是:

  1. 恢复:您永远不能将系统置于卡住或部分编程的状态。假设您的设备电源可以随时拉动。可恢复性可以通过保留原始固件的备份副本并具有特殊的引导加载程序来提供,如果主要固件已损坏,则可以知道引导加载到备份固件中。或者,升级数据和升级过程的状态可以记录在非易失性存储器中,并且引导加载程序可以在设备中断后继续升级过程。

  2. 与设备功能的交互:理想情况下,设备用户无法判断是否正在进行更新。执行此操作的一种方法是仅在手动重新启动系统时应用更新,或者提示用户明确允许更新。

  3. 安全性和完整性:您的设备应该能够从受信任的来源验证更新,并且数据未被篡改,并且没有错误。这是通过数字签名,哈希和校验和完成的。

  4. 修补技术:您如何更新固件?你下载了一个全新的副本吗?你在覆盖某些地址/代码吗?替换某些文件?此处的选择会对更新所需的数据传输量和内存量产生影响。修补可以使用更少的内存,但可能非常困难(压缩数据,非位置无关代码)。拥有一个允许您替换单个文件的文件系统有助于缩小更新。

答案 1 :(得分:1)

在TechRepublic上有关于此主题的优秀白皮书(需要免费注册):http://www.techrepublic.com/whitepapers/principles-of-updating-mobile-firmware-over-the-air-fota/320505

我相信这可以满足您的需求。