扫码阅读
手机扫码阅读

深入浅出讲解单片机的BootLoader(二)

147 2024-08-31

我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。

查看原文:深入浅出讲解单片机的BootLoader(二)
文章来源:
一起学嵌入式
扫码关注公众号
文章摘要

Bootloader高阶应用及其实现

本文延续之前对Bootloader(BL)基础内容的介绍,探讨了BL的高级实现方法和实际应用场景。重点分析了通过串口传输固件的流程和校验机制,提出了固件数据暂存与校验的必要性,并讨论了固件补齐和校验码的添加过程。

BL实现与延伸

通过串口传输固件是一种常用的BL形式。串口通信协议的实现较为复杂,将在后续文章中详细讲解。固件数据暂存的目的是为了确保传输完成后整体校验的准确性,保证固件数据的正确性。校验通常通过在文件中加入校验码实现,以确认传输的数据是否出错。

固件数据的处理

固件文件通常需要补齐以匹配特定的数据帧大小,并在文件末尾追加校验码。这一过程通常在上位机上完成,通过小软件来实现。

固件暂存的选择

固件暂存需要额外的存储空间,通常通过外扩ROM实现。另一种方法是利用单片机的片上ROM进行划分,节省成本。作者分享了在STM32单片机上通过“狗尾续貂”的方法使用后64K ROM进行固件暂存的经验,但提醒这种方法有一定风险。

隔空烧录和BL的分散烧录

作者介绍了通过蓝牙串口模块实现的隔空烧录功能,以及在复杂系统架构中使用BL的分散烧录技术来提高批量生产的效率。同时指出,BL不应设计得过于复杂,以保留足够空间给APP区。

不走寻常路的BL

Bootpatcher是一种将BL置于APP之后的方法。此外,还可通过APP程序烧录BL区,这些方法虽然直接,但都存在一定风险。

结语

文章总结了BL的详细应用,旨在为读者提供实用的知识和技巧,希望读者能在实际工作中实践所学。

致读者

作者鼓励读者关注【一起学嵌入式】公众号,共同学习和成长,并邀请读者分享和点赞文章。

想要了解更多内容?

查看原文:深入浅出讲解单片机的BootLoader(二)
文章来源:
一起学嵌入式
扫码关注公众号