在嵌入式设计中,使用linux os vs直接针对cpu进行编程的实际开销是多少?

时间:2013-11-04 17:28:33

标签: linux embedded arm bare-metal

我理解这个问题的答案与大多数情况一样,是“它取决于”,但我所寻找的并不是一个答案,而是对影响决策的不同事物的理由。

我的用例是运行嵌入式设备的ARM Cortex A8(TI AM335x)。我的选择是使用一些嵌入式Linux来利用一些预先构建的驱动程序和其他东西来加快开发速度,但我对这个项目最关心的是设备的速度。内存和磁盘空间不是很重要。我认为这是一个安全的假设,即直接针对mpu进行编程而不使用完整的操作系统肯定会使应用程序更快,但获得1%或2%的加速并不值得额外的开发时间。

我认为最大的减速将来自内核上下文切换和内存映射,但我没有正确评估或衡量这些减速程度的知识。任何指导将不胜感激!

1 个答案:

答案 0 :(得分:4)

您的担忧是合理的。裸金属可以/将提高性能,但它可能只有几个百分点的改善......“这取决于”。

对于在Linux中具有功能完全的驱动程序而没有全功能驱动程序裸机的裸机,将花费您的开发和可能的维护时间,是否值得获得性能提升?

你必须问自己,我是否正在使用正确的平台,和/或我使用正确的方法,无论你想在你认为或知道太慢的处理器上做什么。你确定你知道瓶颈在哪里吗?您确定优化是在正确的位置吗?

您没有提供任何能给我们带来直觉的信息,因此您必须深入了解需要走的路。一个不同的嵌入式平台(优点和缺点),裸机或操作系统。 Linux或rtos或其他。一种编程语言与另一种编程语言,一种是外设与另一种,依此类推,依此类推。在尝试这些路径之前,您实际上不会知道,但这可能并且可能是成本和时间过高......

就os与裸机的通用标题问题而言,答案是“它取决于”。这些差异可以在裸机上快速变化,从几乎相同到数百倍到数千倍。但对于任何特定的应用程序/任务/算法......它取决于。