【发布时间】:2015-11-11 07:03:45
【问题描述】:
我的公司即将用 ARM Cortex-M 控制器(32 位)替换我们所有嵌入式设备中的 8 位微控制器。我们将需要重新设计和清理现有固件的相当一部分,因为它的状态非常糟糕,不能轻易移植到不同的处理器上。
我们现在确实计划采用干净的架构,因此当需要将软件集成到另一个处理器上时,我们不需要再次丢弃所有软件。
我们已经意识到,我们需要一些基本的软件基础设施和实用程序代码(例如处理容器中的数据、日志记录、闪存和 EEPROM 中的数据存储……)。
有人知道提供此类基本功能的独立于平台的嵌入式软件库或嵌入式软件开发框架吗?我确信其他人也需要这种基础设施,我不敢相信每个人都在自己开发这种功能。但是,在我的网络研究期间,我至今没有找到合适的解决方案。
【问题讨论】:
-
这样的问题通常被认为是 SO 题外话。确实存在的框架往往与特定架构或参考设计紧密耦合。例如,mbed 可能满足您的要求,但特定于 Cortex-M。 Keil's MDK-ARM 与特定硬件设计的耦合可能不太紧密,并且包含许多 中间件 组件。
-
这是为什么呢?我知道你提到的框架。我的问题是:是否有更通用的库/框架不特定于某个硬件架构? Jörg 的回答表明情况可能如此。不过,我首先需要仔细看看 redBlocks。
-
“为什么?”是一个意见问题,是一个论坛而不是SO的讨论。通用库需要一个可适应的硬件抽象层,这可能会向资源受限的目标添加不可接受的代码膨胀,在性能方面是次优的,并且可能无法利用特定目标的独特功能。硬件供应商的卖点是独特的功能,因此他们可能不会欣赏使处理器选择无关紧要的软件架构。
-
带有“为什么会这样?”我指的是“这样的问题通常被认为是离题的”。我根本不明白为什么我原来的问题应该是题外话。 h后
-
在查看了 Jörg 的提案后,我认为这个工具包可能正是我正在寻找的:它实际上包括一个可适应的硬件抽象层,就像你说的那样。但它似乎避免了任何代码开销。