可以在Arduino上运行Linux吗?如果是,则需要考虑哪些步骤和限制?如果不是,那么哪些限制将阻止这种情况?
可以在Arduino上运行Linux吗?如果是,则需要考虑哪些步骤和限制?如果不是,那么哪些限制将阻止这种情况?
Answers:
Linux是一个非常复杂的操作系统,但它可能可以安装在Arduino上。注意事项:
简而言之,这将花费大量时间和精力,并且可能对于日常使用而言太慢。如果您真的想要Arduino Linux,请查看Yún。
它只是没有足够的RAM。您还需要教它从闪存启动,这将涉及重写引导加载程序。
您可以改为使用Arduino Yun或PCDuino;虽然不是“标准” Arduino,但它们支持Arduino防护板并运行Linux。
还是总有Raspberry Pi。
最简洁的答案是不。
基本上,您甚至需要最大的ATmega来提供更多的RAM。
这是理论上可以添加外部硬件和编程的ATmega来模拟一个更强大的CPU,并在运行Linux操作系统。但是,在普通的arduino上,这是不可能的。
在Arduino Due(基本上是AT91SAM3X8E CPU)上运行linux会更加现实。但是,您仍然需要添加一些其他的SRAM和存储。
像Arduino Yun这样的东西,但这实际上是与ATmega32U4在同一PCB上的一个完全独立的linux模块,因此我不知道您是否真的可以将其视为arduino。
可能相关:运行嵌入式Linux需要什么?
有一个名为pcDuino的板,可以运行Linux的多种变体,例如Debian,Ubuntu,Open WRT,LEDE,Raspian PIXEL(仅举几例)。该开发板不是本机Arduino,而是Arduino AtHeart,由LinkSprite制造。
Arduino有两个板卡支持运行名为Linino的Linux变体:
这已经有好几年了,但是随着Arduino获得更多的RAM和32位ATMega AVR等,也许更有意义。这里有一个明显的问题,尤其是在最流行的答案中。Arduino使用AVR 微控制器,而不是微处理器。这是为什么没有linux端口的主要原因。微控制器被设计为执行特定任务,即输入和输出关系得到很好定义的应用。微处理器旨在在操作系统上运行各种应用程序。请记住,从一开始,Linux就需要一个内存管理单元,并且不能在8088或286台PC上运行。然后是μClinux,最初是针对Palm Pilots的Motorola DragonBall嵌入式68k处理器系列。它从来没有特别成功。与Linux相比,移植FreeDOS甚至Minix可能比在Linux上获得更大的成功,也许是在汇编程序中获得成功,但是在微控制器上编译OS是非常不切实际的。也许这是一个充满挑战的学术问题,
这是可能的,但是这很痛苦,因为您必须使用C编写它。(更不用说需要额外的硬件,例如sd卡挡板和额外的存储芯片)像Ontas这样的内核arduino的C会有所帮助,因为它具有添加驱动程序的支持,但以使void循环函数的重复速度变慢为代价。(这并不像您想象的那么重要)(Ontas仍在开发中,并且一直在添加新功能)