Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C FOTA:我如何通过无线方式进行固件更新?_C_Firmware_Ota - Fatal编程技术网

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

C FOTA:我如何通过无线方式进行固件更新?,c,firmware,ota,C,Firmware,Ota,我想在这里更新我的设备fireware 从某处(服务器)下载文件后,我可以如何更新固件 请告诉我如何实现这一目标,以及为了实现这一目标,我必须记住哪些事情 具体步骤是什么 我想先做一个设计,怎样才能实现这个目标 我在谷歌上对此进行了研究,但我找不到任何有用的链接,让我对这一点有清晰的认识 请给我提供一些有用的链接,以便我可以从中得到关于这一点的明确想法 这里我有一个关于我的研究的链接无线固件更新是一个复杂的话题。具体如何操作在很大程度上取决于设备硬件和操作系统的具体情况。一个可以给你一个概述的链

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

从某处(服务器)下载文件后,我可以如何更新固件

请告诉我如何实现这一目标,以及为了实现这一目标,我必须记住哪些事情

具体步骤是什么

我想先做一个设计,怎样才能实现这个目标

我在谷歌上对此进行了研究,但我找不到任何有用的链接,让我对这一点有清晰的认识

请给我提供一些有用的链接,以便我可以从中得到关于这一点的明确想法


这里我有一个关于我的研究的链接

无线固件更新是一个复杂的话题。具体如何操作在很大程度上取决于设备硬件和操作系统的具体情况。一个可以给你一个概述的链接是

<>有商业解决方案,但假设你想自己做,主要考虑的是:

  • 恢复:您永远不能让系统处于卡住或部分编程的状态。假设您的设备的电源可以在任何时刻被拉。可恢复性可以通过保留原始固件的备份副本和一个特殊的引导加载程序来提供,该引导加载程序知道在主固件损坏时引导到备份固件中。或者,升级数据和升级过程的状态可以记录在非易失性存储器中,并且引导加载程序可以在中断后设备通电后继续升级过程

  • 与设备功能的交互:理想情况下,设备用户将无法判断更新正在发生。一种方法是仅在手动重新启动系统时应用更新,或者提示用户显式允许更新

  • 安全性和完整性:您的设备应该能够验证更新是否来自受信任的来源,并且数据是否未被篡改,以及是否存在错误。这是通过数字签名、哈希和校验和实现的

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


  • TechRepublic上有一份关于此主题的优秀白皮书(需要免费注册):


    我相信这能满足您的需求。

    谢谢您的友好回复,我已经浏览了此链接,但它没有给我明确的想法和设计如何开始,从你的回答中,我会更清楚这一点,我只是想知道如何在我的设备上更新我的固件,就像在android固件更新工作中一样,我经历了android固件更新的C编程结构,它是如何工作的,但我不能得到更多的想法,我不知道哪些事情,我必须在我的脑海中实现这些事情。我只是想知道在从OMA-DM下载文件后,我需要做什么来更新我设备上的固件?我无法下载此文件,我创建了我的帐户,在单击“下载”后,什么都没有发生检查以确保没有任何弹出窗口阻止程序处于活动状态。