有没有办法像 Ubuntu 一样在 arduino 中运行 Linux?

有没有办法像 Ubuntu 一样在 arduino 中运行 Linux?

我是 arduino 新手,对 arduino 很感兴趣。但我知道 Linux 系统与 arm 处理器兼容,而且我知道 arduino due 有 arm 处理器。有没有办法在 arduino due 主板上运行 Ubuntu 或 centOS 等 Linux,以及如何将 sdcard 和 RAM 连接到 ardunio due?

答案1

Arduino Due 配有 Atmel/Microchip Atmel AT91SAM3X8E 微控制器,该微控制器集成了 ARM Cortex-M3 处理器和以太网、USB、CAN、USART 以及其他外设。由于它是 Cortex-M3 处理器,因此没有 MMU(内存管理单元)来提供虚拟内存功能。

Ubuntu 是基于 Debian 的 Linux 内核版本,与开源软件捆绑在一起,提供具有图形用户界面 (GUI) 的全功能操作系统。运行此类操作系统的系统硬件要求包括 MMU 和视频接口,而 Arduino Due 两者都没有。

但是,有一个版本的 Linux 内核(源自 uClinux 项目)不需要 MMU。还有占用内存较少的 C 库版本(uClibc)和用户空间实用程序版本(Busybox)。结合这些,您可以为内存有限的无 MMU SoC 构建/安装无头版(无视频/图形界面,只有串行终端)Linux 操作系统。

在 Cortex-M3/M4 上运行 uClinux 的实用建议因为这种系统的局限性。


有没有办法在 arduino due Board 中运行 Linux(例如 Ubuntu 或 centOS)......

缺乏视频硬件、内存不足以及缺乏 MMU 会阻碍使用“Linux,例如 Ubuntu 或 centOS,在 arduino due Board 中”.
但是可以构建不需要 MMU 的基于文本的 Linux 内核变体。

...以及如何将 SD 卡和 RAM 连接到 ardunio?

AT91SAM3X8E 确实有一个用于 SD 卡插槽的 HSMCI(高速存储卡接口)。但没有 DRAM 控制器来支持额外的外部 DRAM,尽管可以使用外部 SRAM。

答案2

Linux只是一个内核,而UbuntuCentOS是包含可配置环境和用户空间程序的操作系统。Linux 内核本身是一个相当复杂的系统,需要大量资源。首先问自己:-“为什么需要在有限的硬件上采用多处理系统?”。虽然 Arduino DUE 在某些情况下功能相当强大,但从多处理的角度来看,它仍然非常有限。您可以尝试类似但是,为什么呢,虽然您可以用同样的钱购买 Raspberry Pi,并在其上使用功能齐全的操作系统,同时仍然可以访问多个硬件接口。使用 arduino,当您的电源(例如电池)有限时,或者您需要实时处理和/或作为更强大的计算机(例如 Raspberry Pi)的伴侣。这就是 Arduino 大放异彩的地方,因为如果您需要实时处理,那么具有功能齐全的操作系统的计算机将很糟糕,因为内核需要定期冻结正在运行的程序来执行内部工作,例如调整时间、监视中断并在队列中处理它们。

简而言之,使用正确的工具来完成工作。

相关内容