在嵌入式系统上工作时有两种情况。嵌入式系统资源有限,例如带有 12 K 闪存的 ARM Cortex M0 微控制器。
案例 1: Bootloader 和 Firmware 的通用功能/模块使用:Bootloader 和 Firmware 可能需要使用相同的模块和功能以防止代码重复。否则,相同的代码将包含两次固件和引导加载程序。我们可以通过指定函数地址来防止这种情况,并通过地址调用函数来调用这个函数。这是解决方案之一。
有什么聪明的方法来提供常用的功能用法吗?
案例2: 有时,我们需要升级固件。引导加载程序的职责之一是固件升级。我们可以通过覆盖旧固件轻松升级固件。
正如我们所见,两种情况可以分别实现。但是当我们合并它们时,就会出现一些问题。
问题: 引导加载程序通常是静态对象,但固件可以修改。因此,常用函数一般位于 Bootloaders。但是当我们需要更新一个通用的模块/功能时,我们该怎么做呢?
引导加载程序、固件结构化嵌入式系统的通用或智能方法是什么?此外,对于有限的资源。
对于离散的常用模块/功能,一个或多个附加区域可以解决这个问题吗?固件、引导加载程序和库(新区域)?
我想学习一般方法。有没有关于高级固件管理的论文、书籍和资源?
谢谢