我认为您需要在这里权衡您的成本选择。
ARM + linux 是一个选项,但您将为这样一个简单的(根据您的描述)功能集支付非常高的操作开销。您不能只看 ARM 芯片的成本,还必须考虑很可能需要的外部 RAM 以及闪存以获得足够的可用空间来运行内核 + 应用程序。
注意:您可以通过极少的内核和简单的应用程序与具有大量内部资源的 uC 相结合来避免外部要求。
第二种选择是具有轻量级操作系统的更简单的微控制器。这将降低您在 CPU 上的硬件成本,并且您可以在没有外部 RAM 或闪存的情况下运行类似的东西(取决于应用程序 RAM 和程序空间要求)
第三种选择:我实际上在您的要求中没有看到任何需要使用任何操作系统的东西。基本文件系统非常简单,例如,甚至还有用于 8 位 PIC 的 FAT 驱动程序。连接到 SD 卡只需要一个 SPI 端口和最少的外部电路。
应用程序位可以是简单的或复杂的。我已经围绕 PIC18 微控制器构建了系统,这些微控制器运行 Web 服务器并允许通过简单的上传屏幕更新程序,它只是将新程序存储到 EEPROM 或闪存中,重新启动到引导加载程序并将新程序复制到内部程序存储器中。您可能会通过协作式多任务类型的架构设计一种无需重新启动的方式来执行此操作。无论如何,编写应用程序的程序员都需要了解架构并访问您编写的库/驱动程序。简化这一点的最佳选择是提供尽可能简单的 API,并尝试为它们自动化构建过程。
第三种选择在硬件方面将是“最便宜的”,因为处理应用程序的开销非常小,让您能够以最少的处理能力和内存摆脱困境。它可能需要您进行更多的编程/软件架构设计,但除了学习在 linux 范例下编写所需的设备驱动程序之外,您几乎不需要进行启动和运行 linux 所需的研究。
与往常一样,您必须将软件开发成本包括在设备的构建成本中。如果您计划构建 10,000 多个这样的设备,您最好降低硬件成本并投入更多人力来设计软件解决方案,以使该硬件能够满足设计目标。如果您要建造 10 个,最好在硬件上多花 15-20 美元,前提是它可以降低您的软件开发成本。例如,带有 MMU 的 ARM 具有完整的 linux 内核支持和可用的设备驱动程序。
我觉得您目前选择了两全其美,您需要支付额外费用才能获得可以在其上运行 linux 的 uC,但这样做您还选择了可能是启动和运行 linux 最复杂的部分上,尤其是以前没有在嵌入式平台上使用过 linux。