gpt4 book ai didi

upgrade - Bootloader和固件常用用法和固件升级

转载 作者:行者123 更新时间:2023-12-05 00:29:26 31 4
gpt4 key购买 nike

在嵌入式系统上工作时有两种情况。
嵌入式系统资源有限,例如带有 12 K 闪存的 ARM Cortex M0 微 Controller 。

案例一:
Bootloader 和 Firmware 的常用功能/模块用法:
Bootloader 和 Firmware 可能需要使用相同的模块和功能来防止代码重复。否则,相同的代码将包含两次固件和引导加载程序。
我们可以通过指定函数地址来防止这种情况,并通过地址调用函数来调用这个函数。这是解决方案之一。

有什么聪明的方法来提供常用的功能用法吗?

案例二:
有时,我们需要升级固件。引导加载程序的职责之一是固件升级。我们可以通过覆盖旧固件轻松升级固件。

正如我们所见,两种情况可以分别实现。但是当我们合并它们时,就会出现一些问题。

问题:
引导加载程序通常是静态对象,但可以修改固件。因此,常用函数一般位于 Bootloaders。但是当我们需要更新一个通用的模块/功能时,我们该怎么做呢?

什么是通用或聪明的方法哪个引导加载程序,固件结构化嵌入式系统?此外,对于有限的资源。

对于离散的常用模块/功能,一个或多个附加区域可以解决这个问题吗?
固件、引导加载程序和库(新区域)?

我想学习一般方法。有没有关于高级固件管理的论文、书籍和资源?

谢谢

最佳答案

如果您在引导加载程序和主线固件应用程序之间共享代码,则引导加载程序在刷新应用程序空间时将使用此代码。为了防止这种情况,您必须牺牲更新公共(public)代码的能力,否则您的引导加载程序将崩溃。

只有 12k 的闪存,期望引导加载程序和主线应用程序适合是非常雄心勃勃的。您可能会考虑在汇编中编写引导加载程序(喘气!)。一些 Cortex M0 部件(例如 NXP LPC11xx 系列)有一个额外的引导 ROM,用于存储一些有用的功能并有助于缓解一些内存限制。

关于upgrade - Bootloader和固件常用用法和固件升级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17248266/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com