2009-10-05 24 views
11

Tôi cần sản xuất một thiết kế ARM được nhúng có yêu cầu để thực hiện nhiều việc mà Linux nhúng sẽ làm. Tuy nhiên, thiết kế có chi phí nhạy cảm và không cần một lượng lớn sức ngựa. Chủ yếu sẽ được nói chuyện với giao diện nối tiếp. Lý tưởng nhất là tôi muốn sử dụng một trong những ARM cấp thấp. Cấu hình thấp nhất của ARM mà bạn đã sử dụng thành công là nhúng Linux vào.Cấu hình tối thiểu để chạy Linux nhúng trên bộ xử lý ARM?

Chỉnh sửa:

Ứng dụng cần hệ thống tệp trên một số loại thiết bị flash và khả năng chạy ứng dụng để xử lý dữ liệu. Một số ứng dụng có thể được viết bởi những người khác ngoài bản thân tôi. Tôi cũng cần có khả năng tải các ứng dụng mới hoặc cập nhật các ứng dụng cũ bằng cách sử dụng các cổng nối tiếp để chấp nhận các ứng dụng.

Khi tôi đã xem xét các hệ điều hành nhúng khác, chúng dường như có nhiều giải pháp luồng thời gian thực hơn khả năng chạy các ứng dụng. Tôi mở cửa cho những gì sẽ bao giờ hoàn thành công việc.

+0

Bạn có thể cung cấp thêm thông tin về ứng dụng không? Nếu bạn thực sự chỉ nói chuyện với một vài thiết bị nối tiếp và truyền thông tin xung quanh và ARM + linux có thể vượt quá cả chi phí và độ phức tạp, đặc biệt là nếu bạn chưa quen với chuỗi công cụ và cấu hình của hệ điều hành trên thiết bị đó. – Mark

Trả lời

12

Tôi nghĩ bạn cần cân nhắc các tùy chọn chi phí của mình tại đây.

ARM + linux là một tùy chọn nhưng bạn sẽ phải trả phí hoạt động rất cao cho một tập hợp các tính năng đơn giản (từ mô tả của bạn). Bạn không thể chỉ cần nhìn vào chi phí của chip ARM nhưng cũng phải xem xét RAM bên ngoài mà rất có thể sẽ được yêu cầu cũng như đèn flash để có đủ không gian có sẵn để chạy các ứng dụng hạt nhân +.

LƯU Ý: bạn có thể tránh các yêu cầu bên ngoài với hạt nhân rất nhỏ và các ứng dụng đơn giản kết hợp với một UC với nguồn lực nội bộ lớn.

Tùy chọn thứ hai là một vi điều khiển đơn giản hơn nhiều với hệ điều hành có trọng lượng nhẹ. Điều này sẽ cắt giảm chi phí phần cứng của bạn trên CPU và bạn có thể chạy một cái gì đó như thế này mà không có RAM bên ngoài hoặc flash (phụ thuộc vào RAM ứng dụng và yêu cầu không gian chương trình)

tùy chọn thứ ba: Tôi không thực sự thấy bất cứ điều gì trong yêu cầu của bạn yêu cầu bất kỳ hệ điều hành nào đều được sử dụng. Các hệ thống tệp cơ bản rất đơn giản, ví dụ, thậm chí có cả các trình điều khiển FAT ở đó cho 8 bit của PIC. Giao diện với thẻ SD chỉ yêu cầu một cổng SPI và mạch bên ngoài tối thiểu.

Bit ứng dụng có thể đơn giản hoặc phức tạp. Tôi đã xây dựng hệ thống xung quanh vi điều khiển PIC18 chạy một máy chủ web và cho phép cập nhật chương trình thông qua màn hình tải lên đơn giản, nó chỉ lưu chương trình mới vào EEPROM hoặc flash, khởi động lại vào bộ nạp khởi động và sao chép chương trình mới vào bộ nhớ chương trình nội bộ. Bạn có thể thiết kế một cách để làm điều này mà không cần khởi động lại thông qua một kiểu đa nhiệm hợp tác của kiến ​​trúc. Bất kỳ cách nào bạn đi lập trình bằng văn bản các ứng dụng sẽ cần phải có kiến ​​thức về kiến ​​trúc và truy cập vào các thư viện/trình điều khiển bạn viết. Đặt cược tốt nhất của bạn để đơn giản hóa việc này là cung cấp API đơn giản nhất có thể và cố gắng tự động hóa quy trình xây dựng cho chúng.

Tùy chọn thứ ba sẽ là "rẻ nhất" về phần cứng vì sẽ có rất ít chi phí trong việc xử lý các ứng dụng của bạn cho phép bạn loại bỏ khả năng xử lý và bộ nhớ tối thiểu. Nó có thể sẽ yêu cầu một số kiến ​​trúc lập trình/phần mềm nhiều hơn về phía bạn nhưng sẽ không yêu cầu gần như nghiên cứu bạn cần thực hiện để có được linux và chạy ngoài việc học viết các trình điều khiển thiết bị cần thiết theo mô hình linux.

Như thường lệ, bạn phải bao gồm chi phí phát triển phần mềm trong chi phí xây dựng của thiết bị. Nếu bạn có kế hoạch xây dựng 10.000+ trong số này, bạn có thể giảm chi phí phần cứng tốt hơn và đưa thêm sức mạnh vào việc thiết kế giải pháp phần mềm cho phép phần cứng đó đáp ứng được mục tiêu thiết kế. Nếu tòa nhà của bạn 10 người trong số họ, bạn nên chi thêm 15-20 đô la cho phần cứng nếu nó có thể cắt giảm chi phí phát triển phần mềm của bạn. Ví dụ một ARM với MMU với hỗ trợ hạt nhân Linux đầy đủ và trình điều khiển thiết bị có sẵn.

Tôi cảm thấy rằng bạn chọn điều tồi tệ nhất của cả hai thế giới tại thời điểm này, bạn phải trả thêm tiền để có được UC. Bạn có thể chạy Linux nhưng bằng cách làm như vậy, bạn cũng chọn một phần có khả năng phức tạp nhất linux và chạy trên, đặc biệt là không làm việc với Linux trên nền tảng nhúng trước đây.

2

Tôi đã thành công ngay cả trên ARM7TDMI, vì vậy tôi không nghĩ rằng bạn sẽ gặp bất kỳ sự cố nào. Nếu bạn có hệ thống yêu cầu thấp, bạn có thể sử dụng bất kỳ loại điều hành thời gian thực nhẹ nào và có trải nghiệm tốt hơn rất nhiều so với khi bạn sử dụng Linux.

2

Tôi đã sử dụng TS-7200 trong khoảng năm năm để chạy máy chủ web và máy chủ thư, sử dụng Debian GNU Linux. Nó là 200 MHz và có 32 MB RAM, và khá đầy đủ cho những nhiệm vụ này. Nó có cổng nối tiếp được tích hợp. Nó dựa trên ARM920T.

Điều này sẽ quá mức cần thiết cho công việc của bạn; Tôi đề cập đến nó để bạn có một điểm dữ liệu khác.

2

ucLinux được thiết kế đặc biệt cho các mục tiêu bị ràng buộc tài nguyên, nhưng có lẽ quan trọng hơn đối với các mục tiêu không có MMU.

Tuy nhiên, bạn phải có lý do chính đáng để sử dụng Linux trên hệ thống như vậy chứ không phải là một giám đốc điều hành thời gian thực nhỏ. Mạng ngoài mạng, các trình điều khiển sẵn có và ngăn xếp giao thức cho phần cứng phức tạp và hỗ trợ cho mã nguồn mở hoặc mã nguồn mở POSIX hiện tại có thể là một số ít. Tuy nhiên nếu bạn không cần điều đó, Linux vẫn còn lớn, và bạn có thể đang lãng phí các nguồn lực không có lợi ích thực sự. Trong hầu hết các trường hợp, bạn sẽ vẫn cần SDRAM và Flash ngoài chip nếu bạn chọn Linux theo bất kỳ hương vị nào.

tôi sẽ không coi nối tiếp I/O là 'phần cứng phức tạp', vì vậy, trừ khi bạn đang chạy một phức tạp, nhưng giao thức chuẩn, mô tả ngắn gọn của bạn không xuất hiện để đảm bảo việc sử dụng Linux IMO

2

Trong nhiều năm Tôi đã sử dụng a gumstix để làm mẫu và thử nghiệm và tôi đã có kết quả tốt với nó. Tôi không biết liệu bộ vi xử lý mà họ đang sử dụng (Intel PXA255 trên bảng của tôi) được coi là chi phí thấp, nhưng toàn bộ dòng Verdex có vẻ khá rẻ đối với tôi đối với một thiết bị có thể thích ứng.

0

Bộ định tuyến DLINK DIR-320 của tôi chạy Linux bên trong.

Và tôi biết một số mặt hàng, nhấp nháy bằng Optware và kết nối USB-hub, HDD, USB-flash và nhiều thứ khác.

Chi phí thấp sẵn sàng để sử dụng "nền tảng". (Nếu bạn không cần sản xuất hàng loạt). Nhưng có lẽ mạnh hơn bạn cần.

Ngoài ra, nó có thể được định cấu hình không dây qua giao diện web ngay cả qua pda của bạn :)

Các vấn đề liên quan