LINUX.ORG.RU

[Linux Embedded] архитектура прикладного ПО


0

2

Здравствуйте! Занимаюсь разработкой автомата самообслуживания на базе Linux Embedded. Сейчас стоит концептуальный вопрос — использовать ли многопоточное монолитное приложение, или разбить на несколько процессов-серверов (демонов, если хотите) и «рабочих» процессов, которые будут устанавливать IPC-связи с серверами. Масштабы: ARM9, busybox, несколько RS-485 модулей, RS-232 модуль, SPI-модуль, дисплей на framebuffer, возможно, еще что-то.

Понимаю, что вопрос философский и холиваро-емкий. Поэтому постановка такая: какие подходы к проектированию ПО используются в удачных embedded-linux системах подобного рода (автономные устройства с разнообразной переферией)? Видел, что есть роботы под управлением Linux, но описания их ПО не нашел. Может быть, посоветуете, на какие примеры можно посмотреть?

ЗЫ: неудачные примеры тоже интересны :)

Смотря какое ipc будешь городить. Если shm+семафоры, то проще на потоках сделать. А если pipe или сокеты, то лучше на процессах.

Reset ★★★★★
()

недостаточно входных данных. Если ресурсы позволяют то бей на несколько прог, тестить и деволопить будет проще.

true_admin ★★★★★
()

> разработкой автомата самообслуживания на базе Linux Embedded. Сейчас стоит концептуальный вопрос — использовать ли многопоточное монолитное приложение, или разбить на несколько процессов-серверов (демонов, если хотите) и «рабочих» процессов, которые будут устанавливать IPC-связи с серверами. Масштабы: ARM9, busybox, несколько RS-485 модулей, RS-232 модуль, SPI-модуль, дисплей на framebuffer, возможно, еще что-то.

http://www.forth.org.ru/~cactus/files/brodie.rar

http://www.forth.org.ru/~kp/taunsend.zip

anonymous
()

> вопрос философский

Лови ещё ссылку на интересную библиотечку: http://ewrika-ru.narod.ru/Downloads.html

Не самое новое, конечно, но многие и этого не знают.

anonymous
()

> ecos

Спасибо, знаю о нем. У нас Linux.

Real-time

Задачи реального времени решаются внешними модулями. ARM лишь асинхронно опрашивает их.

Смотря какой IPC использовать

Предполагается использование чего-то из этого набора: pipe, named pipe, socket, unix domain socket. Общая память не нужна, сам понимаю.

Если ресурсы позволяют

ARM 9. Тактовая частота 200 МГц. 32 МБ памяти. Шина данных для обмена с памятью 16-битная. У нас спокойно живут и не дерутся sshd, crond и другие. Так что все должно быть нормально с ресурсами.

И все же. Я еще раз прошу привести примеры решений на базе Embedded Linux (серевые устройства и телефоны не предлагать).

ornelius
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.