Có thể chạy Linux trên Arduino? Nếu có, những bước và giới hạn cần được xem xét? Nếu không, những hạn chế ngăn chặn điều này là gì?
Có thể chạy Linux trên Arduino? Nếu có, những bước và giới hạn cần được xem xét? Nếu không, những hạn chế ngăn chặn điều này là gì?
Câu trả lời:
Linux là một hệ điều hành rất phức tạp, nhưng nó có thể phù hợp với Arduino. Những điều cần cân nhắc:
Nói tóm lại, nó sẽ tốn rất nhiều thời gian và công sức, và có lẽ sẽ quá chậm để sử dụng hàng ngày. Nếu bạn thực sự muốn Arduino Linux, hãy xem Yún.
Nó chỉ không có đủ RAM. Bạn cũng cần dạy nó khởi động từ bộ nhớ flash, điều này sẽ liên quan đến việc viết lại bộ nạp khởi động.
Thay vào đó, bạn có thể sử dụng Arduino Yun hoặc PCDuino ; trong khi không phải là "tiêu chuẩn" Arduinos, chúng hỗ trợ các lá chắn Arduino và chạy Linux.
Hoặc luôn có Raspberry Pi .
Câu trả lời ngắn gọn là không.
Về cơ bản, bạn sẽ cần RẤT NHIỀU ram hơn, ngay cả ATmega lớn nhất cũng có.
Đó là về mặt lý thuyết có thể để thêm phần cứng bên ngoài, và chương trình ATmega để mô phỏng một CPU mạnh hơn, và chạy Linux trên đó. Tuy nhiên, trên một arduino đơn giản, điều đó là không thể.
Sẽ thực tế hơn nhiều khi chạy linux trên Arduino Do, về cơ bản là CPU AT91SAM3X8E. Tuy nhiên, bạn vẫn cần thêm một số SRAM và dung lượng lưu trữ bổ sung.
Có những thứ như Arduino Yun, nhưng đó thực sự là một mô-đun linux hoàn toàn riêng biệt trên cùng PCB với ATmega32U4, vì vậy tôi không biết liệu bạn có thực sự coi nó là một arduino hay không.
Có thể có liên quan: Cần gì để chạy linux nhúng?
Có một bảng gọi là pcDuino có thể chạy nhiều biến thể của Linux như Debian, Ubuntu, Open WRT, LEDE, Raspian PIXEL (chỉ đề cập đến một vài). Bảng này không phải là Arduino bản địa, thay vào đó là Arduino AtHeart và được tạo bởi LinkSprite .
Arduino có một vài bảng hỗ trợ chạy một biến thể của Linux có tên Linino :
Điều này đã được vài năm tuổi, nhưng có lẽ thích hợp hơn khi Arduinos có thêm RAM và 32 bit ATMega, v.v. Có một vấn đề rõ ràng không có trong câu trả lời phổ biến nhất ở đây. Arduino sử dụng một MICROCONTROLLER AVR, không phải là MICROPROCESSOR. Đây là một lý do chính tại sao không có cổng linux. Vi điều khiển được thiết kế để thực hiện một nhiệm vụ cụ thể, các ứng dụng trong đó mối quan hệ của đầu vào và đầu ra được xác định rõ. Bộ vi xử lý được thiết kế để chạy nhiều ứng dụng trên hệ điều hành. Hãy nhớ rằng, ngay từ đầu, Linux cần một đơn vị quản lý bộ nhớ và không thể chạy trên 8088 hoặc 286 PC. Sau đó, có μClinux, ban đầu nhắm đến nhóm vi xử lý nhúng 68k của Motorola DragonBall, cho Palm Pilots. Nó không bao giờ đặc biệt thành công. Bạn có thể chuyển thành công FreeDOS hoặc thậm chí Minix nhiều hơn Linux, có thể là thứ gì đó trong trình biên dịch chương trình, nhưng việc biên dịch HĐH trên vi điều khiển là rất không thực tế. Có lẽ đó là một vấn đề học tập đầy thách thức,
Tuy nhiên, điều đó có thể là một nỗi đau vì bạn sẽ phải viết nó bằng C. (không đề cập đến phần cứng bổ sung cần thiết như tấm chắn thẻ sd và (các) chip bộ nhớ bổ sung) Một cái gì đó giống như Onas, một hạt nhân tôi đã viết C cho arduino, sẽ giúp vì nó có hỗ trợ thêm trình điều khiển, với chi phí làm cho hàm void loop lặp lại chậm hơn. (Đây không phải là vấn đề lớn như bạn nghĩ) (Ontas vẫn đang được phát triển và các tính năng mới được thêm vào mọi lúc)
Bấm vào đây để liên kết đến các tệp .ino và các tệp .h đi kèm