2012-07-02 5 views
0

Я планирую внедрить веб-сервер Hiawatha на платформе, отличной от linux, которая является ОСРВ uC/OS-II.Портирование приложения на основе Linux на платформе uC/OS-II

Мне нужна помощь по переносу зависимой от Linux API на платформу RTOS.

Пожалуйста, позвольте мне, если есть уже библиотеки для сборки, которые я могу использовать для переноса Linux на RTOS.

Заранее спасибо

ответ

1

Любой код, который использует не только стандартной библиотеки C потребует некоторого портирование - степень, в которой нестандартные и OS конкретные библиотеки и вызовы выполняются будут определять требуется или даже усилий осуществимость такого порта.

Для большинства Linux-кода любой сложности потребуется API POSIX и сетевой код, вероятно, будут использовать сокеты BSD. Многопоточный код будет использовать pthreads. uC/OS-II не имеет ни одного из них; он имеет дело только с планированием, синхронизацией, синхронизацией и межпроцессной связью; это графическое ядро, а не полная ОС в том же смысле, что и Linux - в нем даже нет файловой системы - требование большинства Linux-кода. Конечно, добавление дополнительных библиотек и расширений может предоставить некоторые или все то, что вам может понадобиться.

Кроме того, простой планировщик с одним потоком на приоритет uC/OS-II мог бы сделать типичный многопоточный код Linux сложным для запланированного использования. Большинство RTOS (включая uC/OS-III) поддерживают циклическое/временное разбиение задач на одном уровне приоритета, но uC/OS-II этого не делает; что делает его непригодным для этой задачи.

Что-то более сложное в том, что uC/OS-II может быть в порядке или, возможно, использовать код, более подходящий для uC/OS-II. eCos, например, представляет собой гораздо более полную ОСРВ для встроенных систем; он является открытым исходным кодом и включает в себя API POSIX, поддержку файловой системы и API сокетов. Было бы гораздо легче переносить код Linux на этот код. Точно так же есть много легких примеров встроенных веб-серверов, которые, вероятно, более подходят для uC/OS-II и других простых ОС реального времени или вообще без ОС. Например, LwIP представляет собой стек TCP/IP для небольших встроенных систем, для которых существуют порты UC/OS-II и для которых есть web server examples.

Дело в том, что Linux - это uC/OS-II, не сопоставимы; один требует < 10Kb кода, другой имеет минимальный отпечаток около 4Mb! Чтобы получить код Linux для работы на такой системе, вам потребуется добавить много дополнительного кода для предоставления отсутствующих служб, и это может оказаться невыполнимым на вашей целевой платформе.


[Edit: 8 июля 2012]

считается Вы используете Micrium's own TCP/IP stack and μC/HTTPs web-server add-on? Похоже, что он лучше интегрирован в uC/OS-II и обеспечивает лучшую производительность, чем сторонний код, не относящийся к RTOS.

+0

Благодарим за полезную информацию. –

+0

У меня проверенное приложение, работающее на RTOS UCOS-2, которое пользовательский Rompager от AllegroSoft является веб-сервером. Но проблема с продуктом связана с веб-сервером, поэтому я подумал о переносе Hiawatha на мою платформу UCOS-2. Мне нужно придерживаться UCOS -2, поскольку мое приложение написано поверх него. Поэтому у меня остается только один вариант, который заключается в изменении веб-сервера. Просьба предложить любой веб-сервер с открытым исходным кодом, который может быть реализован на UCOS-2 и обеспечивает богатый пользовательский интерфейс. –

+0

Производительность может быть ограничением вашего оборудования, а не Rompager. На чем вы работаете ?. uC/OS = II предназначен для и в основном используется для систем с ограниченными ресурсами/низкой тактовой частотой, начиная с 8 бит.Приложения Linux (даже, предположительно, «легкие», могут предполагать наличие десятков мегабайт ОЗУ, тактовую частоту более 200 МГц, полный сетевой стек, управляемую память MMU и файловую систему, поэтому я нахожу это трудно представить, что перенос приложения Linux является решением ваших проблем с производительностью, если у вашей системы нет подобных ресурсов. – Clifford