Kịch bản hệ thống nhúng [đã đóng]


7

Có ai có một số ý tưởng tuyệt vời cho việc sử dụng ngôn ngữ kịch bản trên một hệ thống nhúng không? Tôi đang nghĩ về dự án eLua cụ thể.

Về cơ bản, bạn cần một micro có ít nhất 64k RAM, 256k Flash, thư viện Newlib C và trình biên dịch gcc, (AVR32, ARM7, Cortex-M3 đều được hỗ trợ ngay bây giờ trong số những người khác) và bạn có thể gửi nó ( hoặc lập trình để tải) tập lệnh. Nó không cần HĐH, nhưng nó cho phép bạn sử dụng micro của mình (quá nhỏ so với Linux nhúng) giống như một thiết bị điện toán đa năng, bằng cách cho phép các chương trình không chạy vào bộ nhớ chương trình.

Dự án hiện tại có một số ứng dụng ví dụ, nhưng dường như không ai trong số họ làm bất cứ điều gì mà bạn không thể làm với chương trình được ghi vào Flash. Sự khác biệt lớn mà tôi có thể thấy là bạn có thể gửi riêng từng chương trình và chạy các chương trình khác nhau mà không cần đặt lại. Ngoài ra, bạn có thể sử dụng nó một cách tương tác (Thay đổi luồng chương trình của bạn bằng các quyết định của bạn trên bàn phím, thay vì phải mã hóa mọi thứ.

Làm thế nào bạn sẽ sử dụng một thiết bị như vậy? Bạn có cho nó một bàn phím và màn hình LCD nhân vật, và viết các kịch bản của riêng bạn trong khi nó ngồi trên bàn của bạn không? Bạn có thể đơn giản sử dụng ngôn ngữ kịch bản để đơn giản hóa việc lập trình các ứng dụng phức tạp hơn không? (Giống như các trò chơi hiện có trên trang web của dự án?) Hoặc bạn sẽ làm điều gì đó hoàn toàn khác? Tôi đang bắt đầu với nó và tìm kiếm ý tưởng dự án.

Chỉnh sửa : Bạn có thể gửi chương trình qua bất kỳ giao thức nào bạn muốn sử dụng (UART, SPI / I2C, v.v., USB, Ethernet), tải chúng từ thẻ SD, bất cứ thứ gì chip của bạn hỗ trợ. Chỉ muốn làm rõ rằng nó không phải ở trong một môi trường thân thiện với việc lập trình lại.

Edit2 : Hầu hết các dự án của tôi là cho mục đích sử dụng cá nhân của tôi hoặc để chia sẻ với những người bạn cùng chí hướng, không thường được bán cho công chúng. Tôi hy vọng người dùng các dự án của tôi sẽ quan tâm và quen thuộc với các hệ thống nhúng và có thể chọn cách sử dụng thô sơ của ngôn ngữ kịch bản mà không gặp quá nhiều khó khăn. Tôi có thể sử dụng chúng xung quanh nhà hoặc trong xe hơi, hoặc nhiều khả năng trong cửa hàng như một trợ lý để thiết kế và gỡ lỗi thêm các dự án mới. Tôi cũng có thể đề xuất nó cho ông chủ của tôi tại nơi làm việc, nơi chúng tôi sản xuất và thiết kế các hệ thống nhúng. Hoặc, tôi có thể sử dụng nó trong một dự án kỹ thuật cho trường học.


Tôi sẽ quan tâm nếu ai đó chỉ ra một ngôn ngữ kịch bản cho các chip 8 bit và 16 bit như megaAVR hoặc PIC.
Rick_2047

Câu trả lời:


6

Tôi đang lên kế hoạch nhúng ngôn ngữ kịch bản vào thiết bị tìm mẹ nhỏ bé của mình (cuối cùng tiến triển trở lại, hy vọng sẽ có một nguyên mẫu hoạt động của Detroit Maker Faire vào tháng tới).

Đó là một nền tảng nhỏ với GPS, la bàn, thẻ SD và zigbee nhằm giúp tôi theo dõi những đứa trẻ của mình tại các công viên lớn và cho chúng cách dễ dàng tìm thấy tôi khi chúng cần tôi.

Ngôn ngữ kịch bản nhúng sẽ cung cấp một hộp cát được bảo vệ trong đó các ứng dụng đơn giản, chẳng hạn như trò chơi, bản đồ, chương trình gắn thẻ địa lý hoặc trò chơi nhiều người chơi (một số trẻ em, mỗi đơn vị có thể chơi các phiên bản nâng cao của việc bắt cờ, ẩn và tìm, gắn thẻ, v.v.) mà không ảnh hưởng đến chức năng cơ bản của việc có thể theo dõi con tôi. Chúng sẽ đi trên thẻ SD dưới dạng tệp văn bản để có thể dễ dàng chỉnh sửa và cập nhật mà không cần phần cứng hoặc phần mềm đặc biệt.

Có rất nhiều cách và lý do khác để sử dụng ngôn ngữ kịch bản trong các hệ thống nhúng, nhưng để xem làm thế nào hoặc tại sao nó có thể phù hợp với nhu cầu của bạn, chúng tôi phải hiểu thêm về hệ thống cụ thể của bạn.


Điều đó có ý nghĩa; Lua có khả năng hộp cát là tốt. Tuy nhiên, bạn sẽ làm gì nếu họ nhập "trong khi thực sự làm - [[nothing]] - end"?
Kevin Vermeer

1
BTW, đây là loại câu trả lời tôi đang tìm kiếm - Tôi sẽ đợi thêm một thời gian nữa để có thêm câu trả lời để lọc.
Kevin Vermeer

1
@reemrevnivek - 1) Tôi sẽ chạy chúng theo cách có thể ngắt. Tôi chưa quyết định liệu điều đó có nghĩa là tôi sẽ chạy một hệ điều hành đa nhiệm ưu tiên hoàn toàn hay chỉ đơn giản là chạy tất cả mã "quan trọng" của tôi trên bộ định thời ngắt (dù sao thì tương đối dễ dàng), hoặc một số giải pháp khác. 2) Nhiều ngôn ngữ kịch bản có thể nhúng được. Tôi đã hỏi câu hỏi tương tự trên SO cách đây 18 tháng và nhận được rất nhiều câu trả lời hay: stackoverflow.com/questions/191222/ợi
Adam Davis

8

Tôi đã xem xét eLua và cũng là một thông dịch viên python nhúng cho một số dự án tôi đang làm trong công việc hàng ngày. Chúng tôi đang phát triển một hệ thống kiểm soát cơ sở, nhưng các hệ thống này đi ra ngoài và được tùy chỉnh rộng rãi trong lĩnh vực này. Thay vì yêu cầu sử dụng cuối để thêm các mô đun xử lý bổ sung, chúng tôi cho phép họ định cấu hình hệ thống của chúng tôi và trong một số trường hợp, hãy viết các tính năng của riêng họ. Vì việc người dùng cuối phản ứng trong lĩnh vực này bị cấm (họ có thể dễ dàng gạch mọi thứ), chúng tôi cung cấp giao diện kịch bản.

Hiện tại, chúng tôi có một ngôn ngữ độc quyền được biên dịch thành mã byte và được nhân theo thứ tự, nhưng chúng tôi đang cố gắng làm cho mọi thứ tuân thủ các tiêu chuẩn hơn và dễ bảo trì hơn.

Dưới đây là so sánh các ngôn ngữ được dịch khác nhau có thể chạy trên 'kim loại trần': /programming/1082751/what-are-the-av Available-interactive-lacular-that-run-in-life-moryory

Nói chung, một khi thiết bị đã được flash một lần trong nhà máy, chúng tôi không muốn phải làm lại. Nó chậm, dễ bị lỗi và khó khăn cho người dùng cuối. Để mở rộng chức năng sau khi sản xuất, một số loại mở rộng kịch bản là một giải pháp tốt.


1
Còn việc sử dụng bootloader thì sao?
msr


1

Một số dự án và ý tưởng với eLua được lưu trong wiki của Phòng thí nghiệm người dùng eLua tại địa chỉ http://wiki.eluaproject.net v0.8 sẽ ra khỏi lò vào khoảng tháng này (tháng 1 năm 2011).


Yup, tôi thấy rằng trong danh sách gửi thư. Cảm ơn các cập nhật!
Kevin Vermeer
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.