我正在研究ti-am335x(BeagleBone Black)。
升级后我已成功升级uboot,内核和文件系统并重新启动mlo选择最新升级的u-boot并启动,但它在加载内核之前挂起,这意味着(u-boot映像已损坏) ),现在如果在真实产品中发生这种情况,用户会将他的设备弄成砖,我的问题是" 是否有办法确保即使它发生在现实设备中也不会发生这种情况,我们可以回到最后一个工作固件集。"
答案 0 :(得分:1)
有一些构建故障安全升级过程的常用方法。
假设您的u-boot映像具有发布质量,并且已添加了带有大小和校验和的标头。
您可以为2个类似的u-boot副本分配空间。
在升级过程中,验证第二个图像校验和,然后更换第一个。 现在验证第一张图像(刚编程)校验和,如果成功,则替换第二张图像。
如果在升级过程中出现任何问题,您将至少留下一份工作副本。
要使其工作,您需要创建一个小型引导程序,其中包含有关每个映像的起始偏移量的信息,能够计算校验和,并可以决定将执行哪个u-boot映像。这个引导程序应该足够简单并经过全面测试,完全没有错误,因此将被编程为在生产过程中只闪一次,并且永远不会被替换。