将 Linux 放在 ARM7 IMO 上并没有真正的好处。ARM7 没有 MMU,内存保护是使用 Linux 等操作系统的主要原因。uClinux 将在没有 MMU 的目标上运行,但是您已经失去了使用 Linux 的最令人信服的理由之一,并且仍然需要巨大的内存资源(4M 闪存,16M RAM 将是合理的最小值)。
许多 ARM7 设备没有用于连接那么多内存的外部内存总线,片上闪存和 RAM 通常范围从 32K 到 1M,具体取决于设备。
Linux本质上不是“实时的”。对于实时功能,它通常与实时内核相结合,其中 Linux 本质上作为空闲任务运行,或者在具有作为单独虚拟机功能的目标上运行。因此,如果需要对外部事件进行确定性和快速响应,您将需要诸如 eCOS 之类的 RTOS。
eCOS 的伟大之处在于它拥有一个庞大的附加功能和设备支持生态系统,可与大多数商业产品相媲美。然而,像 FreeRTOS 这样的东西可能更容易“启动”,但只提供线程调度程序和进程间通信机制。文件系统或 TCP/IP 之类的东西需要从第三方获取(尽管也有同样适用于嵌入式系统的小型免费解决方案)。
如果您使用 FreeRTOS 或 uC/OS-III 等简单的 Kernel,您将不会浪费太多时间,因此投资不会成为下次使用其他东西的障碍。另一方面,Linux 可能会阻止您下次使用更小且目标更窄的东西,并且巡视后续项目的成本可能比仅支持您选择的操作系统所需的成本要高得多。