реклама на сайте
подробности

 
 
> WinCE vs Linux vs eCos
DimaM
сообщение Feb 26 2008, 22:57
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 103
Регистрация: 17-12-06
Из: село
Пользователь №: 23 615



Мучаюсь сомнениями - намечается проект относительно сложного устройства. Электроника будет управлятся через fpga процессором под управлением операционки. Код со временем разрастется и не хочется ошибится вначале.
ОС нужна чтобы библиотеки использовать, а всего то надо сделать
- достаточно сложную калибровку
- хранить множество настроечных параметров
- продвинутый лог о работе прибора
- сделать доступ к устройству через сеть
- сделать CAN мастера, или подключить библиотеку.
- может и EtherCAT мастер потребуется.
- сложной индикации не будет, может и не будет вообще.

что быстрее освоить? опыт есть только в windows и микроконтроллерах.
для желаемого процессора достал linux BSP но мало разработанную, более хорошая wince bsp стоит денег.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
AlexandrY
сообщение Mar 6 2008, 08:18
Сообщение #2


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Постоянно делаю такие дивайсы и скажу вам, что Linux и WinCE здесь рядом не лежали.
Нормальных быстрых мультизадачных стеков прикладных протоколов ни под CAN ни под EtherCAT на халяву вы не найдете ни для Linux ни для WinCE.
Разработку интерфейса пользователя ни WinCE ни Linux никак не облегчают по сравнению с разработкой для того же uCOS.
В вашем приложении совсем ни к чему драйвера, у вас фиксированное железо.
Так зачем выбирать операционку требующую драйвера, а потом мужественно их писать, бороться за их совместимость и получить в результате лишь тормоза?
А как вы будете отлаживать баги? В Линуксе с JTAG практически нечего делать.
Для файловой системы вам достаточно FAT16. Так этого добра навалом для любой операционки.
Сетевых стеков гораздо более быстрых чем под Linux-ом тоже навалом для простых RTOS.
Для действительно стоящего железа все драйвера в Линуксе исключительно бинарные, т.е. прикрутить какой-нить произвольный Wi-Fi, Bluetooth, USB дивайс к вашему произвольному Линуксу будет такой же нереальной задачей как прикрутить то же к uCOS.
Более сложные сетевые сервисы чем стек TCP/IP вам на Линуксе будет поднять также сложно как и на uCOS-е
А eCOS - тот, что лежит в открытых исходниках вообще недееспособен.




Цитата(DimaM @ Feb 27 2008, 03:27) *
Мучаюсь сомнениями - намечается проект относительно сложного устройства. Электроника будет управлятся через fpga процессором под управлением операционки. Код со временем разрастется и не хочется ошибится вначале.
ОС нужна чтобы библиотеки использовать, а всего то надо сделать
- достаточно сложную калибровку
- хранить множество настроечных параметров
- продвинутый лог о работе прибора
- сделать доступ к устройству через сеть
- сделать CAN мастера, или подключить библиотеку.
- может и EtherCAT мастер потребуется.
- сложной индикации не будет, может и не будет вообще.

что быстрее освоить? опыт есть только в windows и микроконтроллерах.
для желаемого процессора достал linux BSP но мало разработанную, более хорошая wince bsp стоит денег.
Go to the top of the page
 
+Quote Post
path_finder
сообщение Mar 10 2008, 10:23
Сообщение #3


Участник
*

Группа: Новичок
Сообщений: 30
Регистрация: 28-01-05
Пользователь №: 2 260



Цитата(AlexandrY @ Mar 6 2008, 10:18) *
Постоянно делаю такие дивайсы и скажу вам, что Linux и WinCE здесь рядом не лежали.
Нормальных быстрых мультизадачных стеков прикладных протоколов ни под CAN ни под EtherCAT на халяву вы не найдете ни для Linux ни для WinCE.
Разработку интерфейса пользователя ни WinCE ни Linux никак не облегчают по сравнению с разработкой для того же uCOS.
В вашем приложении совсем ни к чему драйвера, у вас фиксированное железо.
Так зачем выбирать операционку требующую драйвера, а потом мужественно их писать, бороться за их совместимость и получить в результате лишь тормоза?
А как вы будете отлаживать баги? В Линуксе с JTAG практически нечего делать.
Для файловой системы вам достаточно FAT16. Так этого добра навалом для любой операционки.
Сетевых стеков гораздо более быстрых чем под Linux-ом тоже навалом для простых RTOS.
Для действительно стоящего железа все драйвера в Линуксе исключительно бинарные, т.е. прикрутить какой-нить произвольный Wi-Fi, Bluetooth, USB дивайс к вашему произвольному Линуксу будет такой же нереальной задачей как прикрутить то же к uCOS.
Более сложные сетевые сервисы чем стек TCP/IP вам на Линуксе будет поднять также сложно как и на uCOS-е
А eCOS - тот, что лежит в открытых исходниках вообще недееспособен.

По поводу Wi-Fi, Bluetooth, USB дивайс огласите пожалуйста действительно стоящее железо, которое вы не смогли прикрутить.
По поводу интерфейса пользователя - чем uCOS так сильно облегчает его построение? Тем, что графическая библиотека всего одна, и у Вас нет выбора?
По моему мнению недостатки uCOS есть продолжение его достоинств - она маленькая и понятная. Соответственно для того чтобы быть маленькой у нее нет абстракции железа. А раз так, то становится проблематично обмениваться приложениями, разрабатывать приложения на продажу. Соответственно нельзя ожидать, что под нее вы найдете даже за деньги все, что вам надо,
придется разрабатывать самим даже очень простые приложения или прикручивать из другой RTOS.

Следующая проблема - потребуется ли Вам развивать дальше Ваше устройство - сегодня пользовательский интерфейс, а завтра?

Например, потребуются к вашим устройствам подключать USB-принтеры - где возьмете USB-хост стек, принтерную подсистему?
Есть ли это в Windows CE? В uCOS этого нет и не предвидится.
Тоже самое с Bluetooth - вставляете USB-донгл или подключаете RS-232 модуль - и работаете.
А в uCOS?
В Линукс это уже есть и уже работает, и как раз благодаря наличию драйверной подсистемы - это живет на очень
разнообразном железе и с очень разнообразным ПО.
Да, есть недостатки. Мало документации, часто она устарела. Система очень быстро развивается, поэтому все быстро меняется. Система сложная и "тяжелая". Отлаживать ее тоже довольно трудно. Получить реальное время на ней тоже сложно.
Однако это не мешает ее успешно применять.
Даже уважаемый AlexanderY ее применяет:
http://www.teltonika.lt/en/pages/view/?id=858 smile.gif

Поэтому все приходится взвешивать и в каждом конкретном случае - решение получается свое.
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Mar 10 2008, 11:49
Сообщение #4


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Ok! Тема видно народ волнует.

Но здесь очень важен контекст.
Я не обсуждаю здесь абстрактные тренды.
Человек описал достаточно ясные рамки задачи.

Тот роутер, что вы у нас нашли, во первых как раз то случай ребрендинга, а во вторых я хорошо знаю R&D контору которая это делает. Их цикл разработки такого роутера более года! при том, что они уже с десяток лет в той области.
Это совершенно недопустимые сроки для стартапного проекта, когда вы хотите срочно догнать и перегнать конкурентов имея вдесятеро меньший бюджет.

Итак, я даю вам MonataVista на своей плате с iMX27 и оригинальным внешним Phy USB host-а мультиплексированным с ATA (такое уж решение в реф. дизайне было применено), а вы мне хотябы в течении месяца прилепите любой USB-WiFi адаптер при сохранении соответствующей скорости?

Проблема драйверов чуть ли не самая мертвая в Линуксе если речь идет о своих платах.
А задача именно ориентирована на свои платы, поскольку иначе оказываетесть привязаны к сторониим производителям и они в бизнес вносят серьезный риск и тормоза.

Поскольку речь идет о достаточно понятной линейке промышленных дивайсов, локальных, с хорошей проводной связью, абсолютно ясной прикладной функциональностью, то человеку явно не надо гадать какие такие выдающиеся прибамбасы понадобятся там в будущем.
Достаточно быстрого TCP стека, простенькой файловой системы. GUI вообще не нужен.
Хотя для uCOS есть выбор разных GUI.
Опять же GUI уткнутся в драйвер дисплея и опять с Линуксом будет ступор.
Тачскрин - это вообще элементарный прибамбас который к любой GUI на любой RTOS прикручивается за день. И даже без GUI.
В поставке компилятора IAR есть эффектные примеры, как тачкскрин и скины из BMP делают крутой интерфейс вообще без ОС.
Логично просто сделать в дивайсе HTML интерфейс на базе встроенного WEB сервера для управляющего PC, или выносной панели на основе PC.
HTML интерфейс как известно кроссплатформенный, тут вообще не важно под какую OC он написан.

Денег у человека на специализированные стеки нет, т.е. акцент на самостоятельное написание.
Тут компактность OS абсолютно необходима. Если одна итерация исправления, перекомпиляции, загрузки на целевую платформу и запуска отладки полного имиджа включая RTOS длиться всего пару десятков секунд, то человек гарантированно может исправить любую ошибку в системе за день.
Благодаря инструментам трассировки, внутрисхемной отладки на базе JTAG, человек освобождается от написания бесконечных отладочных вставок и логов, которые сами искажают код в свою очередь и могут иметь местные эффекты.
В Линуксе если ошибка в ядре в каком-нибудь прекомпилированном модуле, только поиск может занять пару дней.
А ошибки в ядре обязательно будут, поскольку ядро очень большое и монолитное и, как правило, пропатченное неизвестно кем.
Учтем, что человек с embedded Linux никогда не сталкивался.

Итого мой диангоз - цикл разработки на RTOS в данном случае будет раза в два короче чем на Линуксе.




Цитата(path_finder @ Mar 10 2008, 14:53) *
По поводу Wi-Fi, Bluetooth, USB дивайс огласите пожалуйста действительно стоящее железо, которое вы не смогли прикрутить.
По поводу интерфейса пользователя - чем uCOS так сильно облегчает его построение? Тем, что графическая библиотека всего одна, и у Вас нет выбора?
По моему мнению недостатки uCOS есть продолжение его достоинств - она маленькая и понятная. Соответственно для того чтобы быть маленькой у нее нет абстракции железа. А раз так, то становится проблематично обмениваться приложениями, разрабатывать приложения на продажу. Соответственно нельзя ожидать, что под нее вы найдете даже за деньги все, что вам надо,
придется разрабатывать самим даже очень простые приложения или прикручивать из другой RTOS.

Следующая проблема - потребуется ли Вам развивать дальше Ваше устройство - сегодня пользовательский интерфейс, а завтра?

Например, потребуются к вашим устройствам подключать USB-принтеры - где возьмете USB-хост стек, принтерную подсистему?
Есть ли это в Windows CE? В uCOS этого нет и не предвидится.
Тоже самое с Bluetooth - вставляете USB-донгл или подключаете RS-232 модуль - и работаете.
А в uCOS?
В Линукс это уже есть и уже работает, и как раз благодаря наличию драйверной подсистемы - это живет на очень
разнообразном железе и с очень разнообразным ПО.
Да, есть недостатки. Мало документации, часто она устарела. Система очень быстро развивается, поэтому все быстро меняется. Система сложная и "тяжелая". Отлаживать ее тоже довольно трудно. Получить реальное время на ней тоже сложно.
Однако это не мешает ее успешно применять.
Даже уважаемый AlexanderY ее применяет:
http://www.teltonika.lt/en/pages/view/?id=858 smile.gif

Поэтому все приходится взвешивать и в каждом конкретном случае - решение получается свое.
Go to the top of the page
 
+Quote Post
amw
сообщение Mar 11 2008, 18:53
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 601
Регистрация: 22-09-05
Из: Kharkov
Пользователь №: 8 847



Цитата(AlexandrY @ Mar 10 2008, 13:49) *
Благодаря инструментам трассировки, внутрисхемной отладки на базе JTAG, человек освобождается от написания бесконечных отладочных вставок и логов, которые сами искажают код в свою очередь и могут иметь местные эффекты.
В Линуксе если ошибка в ядре в каком-нибудь прекомпилированном модуле, только поиск может занять пару дней.

А при чем здесь JTAG? Это если без ОС то понятно, но не всегда однако выгодно.
А в Линукс gdb есть. В том числе и на уровне ядра. И ошибки находятся (и в драйверах и даже подсистеме виртуальной памяти) быстро.
Может я чего-то не понимаю, но кто мне мешает посмотреть - исправить - перекомпилировать модуль?
Что значит
Цитата
прекомпилированном модуле

И кто (а главное на каком основании и по какому праву) его "прекомпилил" если это не я?


--------------------
- А мораль отсюда такова: всякому овощу свое время. Или, хочешь, я это сформулирую попроще: никогда не думай, что ты иная, чем могла бы быть иначе, чем будучи иной в тех случаях, когда иначе нельзя не быть.
© Lewis Carroll. Alice's adventures in wonderland.
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Mar 11 2008, 20:17
Сообщение #6


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



JTAG позволяет просмотреть значения всех абсолютно переменных и без остановки программы и без единой строчки диагностического кода и без всяких отладочных движков на целевой платформе.
Он позволяет остановить программу мгновенно как только происходит несанкционированная запись или даже чтение переменной, области памяти или периферии.
Он позволяет вместе с процессором заморозить периферию и смотреть неизмененный ничем снимок системы в момент краха и т.д. Трассировка же через JTAG дает еще больше возможностей.
Все это приправляется эффективными визуальными отладочными оболочками как в RealView, IAR, Multi, Tasking и т.д. к которым делаются визуальные же add-on всяких компактных RTOS.
У знакомых разработчиков мобильных дивайсов трассер есть у каждого на столе.

Проблема же Линукса и других монструозных осей в их величине.
Компиляция целиком занимает столько времени, что приходится все оформлять в виде библиотек и заранее компилировать.
Если ошибка попадается в таком скомпилированном модуле, то надо переключать проект на работу с исходниками модуля, исправлять, компилировать и снова оформлять как прекомпилированную библиотеку.
А если ошибка снова там?
А как ядро гранулировать на библиотеки если оно вам с готовым make файлом досталось гигантских размеров считая все включения?
Значит не гранулируем, пытаемся сделать ядро и делать динамически линкующиеся модули.
А если ошибки всетаки в ядре, то кошмар с полной перекомпиляцией повторяется, а динамические модули не отладить JTAG-ом.

Вообщем такой секс позволителен только на уже кем-то отлаженных платформах.
Имею богатый опыт по отладке прог под Win mobile через ихний ActiveSync. Больше похоже на шаманство и игру в рулетку. Такие средства отладки сами на ладан дышат и падают при любом сбое в ядре.

Тут еще отмечу, что веду речь только об этапе подъема оси на голой платформе.
Но для проекта по контексту этим этапом все и заканчивается практически.

Никто, конечно, никому не мешает.
Все решает время, кто реально знает сравнительные расклады по времени на те или иные действия в технологии разработки тот и на коне.

Интересно, как пользователи eCOS объясняют существование лицензии VxWors стоимостью 12 штук баксов при такой раздольной халяве какую дает eCOS или RTEMS?


Цитата(amw @ Mar 11 2008, 23:23) *
А при чем здесь JTAG? Это если без ОС то понятно, но не всегда однако выгодно.
А в Линукс gdb есть. В том числе и на уровне ядра. И ошибки находятся (и в драйверах и даже подсистеме виртуальной памяти) быстро.
Может я чего-то не понимаю, но кто мне мешает посмотреть - исправить - перекомпилировать модуль?
Что значит

И кто (а главное на каком основании и по какому праву) его "прекомпилил" если это не я?
Go to the top of the page
 
+Quote Post
path_finder
сообщение Mar 12 2008, 15:31
Сообщение #7


Участник
*

Группа: Новичок
Сообщений: 30
Регистрация: 28-01-05
Пользователь №: 2 260



Цитата(AlexandrY @ Mar 11 2008, 22:17) *
Проблема же Линукса и других монструозных осей в их величине.
Компиляция целиком занимает столько времени, что приходится все оформлять в виде библиотек и заранее компилировать.
Если ошибка попадается в таком скомпилированном модуле, то надо переключать проект на работу с исходниками модуля, исправлять, компилировать и снова оформлять как прекомпилированную библиотеку.

В этом случае хорошо помогает вынос отлаживаемого куска в отдельный модуль.
Далее - make, insmod, rmmod.
Все компилируется очень быстро.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- DimaM   WinCE vs Linux vs eCos   Feb 26 2008, 22:57
- - Kirill Frolov   Цитата(DimaM @ Feb 27 2008, 01:57) что бы...   Feb 27 2008, 07:33
|- - DimaM   Цитата(Kirill Frolov @ Feb 27 2008, 11:33...   Feb 27 2008, 08:16
||- - Damon   Цитата(DimaM @ Feb 27 2008, 11:16) Только...   Feb 27 2008, 16:19
|- - axle   Цитата(Kirill Frolov @ Feb 27 2008, 13:33...   Feb 29 2008, 05:28
- - jasper   Некорректно даже их сравнивать, все-таки eCos – эт...   Feb 27 2008, 18:41
|- - DimaM   Цитата(jasper @ Feb 27 2008, 22:41) Некор...   Feb 27 2008, 19:26
||- - amw   Цитата(DimaM @ Feb 27 2008, 21:26) нужно ...   Feb 29 2008, 08:22
||- - DimaM   Цитата(amw @ Feb 29 2008, 12:22) Ну тогда...   Mar 1 2008, 14:23
|- - vshemm   Цитата(jasper @ Feb 27 2008, 21:41) Некор...   Feb 29 2008, 11:14
- - beer_warrior   Цитатанужно писать приложение и драйверы для досту...   Feb 28 2008, 23:08
|- - lyakhovich   Цитата(beer_warrior @ Feb 29 2008, 02:08)...   Mar 14 2008, 14:05
- - zltigo   Что-то не видно в перечисленных задачах необходимо...   Feb 28 2008, 23:17
- - Andy Great   Для Линукса есть RTAI и этим реалтаймовость его не...   Feb 29 2008, 12:13
- - vshemm   Цитата(DimaM @ Mar 1 2008, 17:23) чтобы з...   Mar 1 2008, 15:45
|- - vshemm   Цитата(AlexandrY @ Mar 6 2008, 11:18) Пос...   Mar 6 2008, 15:58
||- - AlexandrY   Логично учиться на чужих ошибках. Я профессиональ...   Mar 6 2008, 20:36
||- - yes   >>> Ничего хорошо известного нет в неизве...   Mar 7 2008, 13:34
||- - AlexandrY   Ага, ясно. Чесно вам скажу, что та дока на котору...   Mar 7 2008, 15:22
||- - yes   может я отстал от жизни - имел дело с uCOS 2.51 - ...   Mar 7 2008, 21:12
||- - AlexandrY   Не понял от чего там надо тащиться Пошарил, ниг...   Mar 7 2008, 23:15
||- - yes   Цитата(AlexandrY @ Mar 8 2008, 02:15) Не ...   Mar 11 2008, 12:53
||- - AlexandrY   Чесно не въехал в логику вашего бизнеса. Если бух...   Mar 11 2008, 15:23
||- - yes   2AlexandrY, как правильно заметил dezzer, клиент п...   Mar 11 2008, 16:42
|- - vshemm   Цитата(path_finder @ Mar 10 2008, 13:23) ...   Mar 10 2008, 10:57
|- - path_finder   Цитата(AlexandrY @ Mar 10 2008, 13:49) Ит...   Mar 11 2008, 10:54
|- - amw   Цитата(AlexandrY @ Mar 11 2008, 22:17) JT...   Mar 12 2008, 08:45
||- - AlexandrY   Я поздравляю, что вы всем этим занимаетесь, теперь...   Mar 12 2008, 12:47
|- - vshemm   Цитата(AlexandrY @ Mar 11 2008, 23:17) JT...   Mar 12 2008, 13:00
- - vshemm   Слишком много безапелляционных утверждений...   Mar 6 2008, 12:27
|- - AlexandrY   Ну это вам показалось Жду возражений. Цитата...   Mar 6 2008, 13:31
|- - yes   Цитата(AlexandrY @ Mar 6 2008, 16:31) Ну ...   Mar 6 2008, 17:14
|- - AlexandrY   Что то меня это "замечательно" не убедил...   Mar 6 2008, 19:17
- - DimaM   Я еще поговорил с разработчиками приборов, для кот...   Mar 7 2008, 14:17
|- - vshemm   Цитата(DimaM @ Mar 7 2008, 17:17) WinCE н...   Mar 7 2008, 15:51
|- - AlexandrY   Это для платы стороннего производителя. А поставит...   Mar 7 2008, 16:03
|- - vshemm   Цитата(AlexandrY @ Mar 7 2008, 19:03) Это...   Mar 7 2008, 16:57
|- - zltigo   Цитата(vshemm @ Mar 7 2008, 19:57) В двух...   Mar 7 2008, 17:20
|- - AlexandrY   Там речь идет о лицензии для производителя устройс...   Mar 7 2008, 17:27
- - vshemm   http://www.msembedded.ru/windowsCE6.0.aspx тыкаем ...   Mar 7 2008, 17:59
|- - zltigo   Цитата(vshemm @ Mar 7 2008, 20:59) В сред...   Mar 7 2008, 18:33
||- - vshemm   Цитата(zltigo @ Mar 7 2008, 21:33) Не пре...   Mar 7 2008, 19:12
|- - AlexandrY   Что-то вы даете ссылки которые сами видать не чита...   Mar 7 2008, 21:35
|- - vshemm   Цитата(AlexandrY @ Mar 8 2008, 00:35) Что...   Mar 8 2008, 10:13
- - DimaM   ну студия у нас все равно есть, хотя пока старая. ...   Mar 7 2008, 18:44
- - DimaM   чтобы было понятно какие что мы делаем дам ссылку ...   Mar 8 2008, 07:11
- - DimaM   Я как то поговорил с продавцами uCOS. для случая с...   Mar 10 2008, 13:44
|- - AlexandrY   Посмотрите на систему лицензий ThreadX. Там есть л...   Mar 10 2008, 21:54
- - dezzer   ЦитатаВообщем далекоо.. не убедили, скорее наоборо...   Mar 11 2008, 15:50
- - dezzer   Цитатапричем eCos выбирался (как Вы верно заметили...   Mar 11 2008, 17:35
|- - yes   Цитата(dezzer @ Mar 11 2008, 20:35) Однак...   Mar 12 2008, 11:28
|- - AlexandrY   Без останова JTAG отлично работает на Cortex M3 на...   Mar 12 2008, 13:23
|- - yes   Цитата(AlexandrY @ Mar 12 2008, 16:23) Бе...   Mar 12 2008, 15:28
|- - AlexandrY   Ну да JTAG имеет доступ ко всей системе через порт...   Mar 12 2008, 17:01
|- - blackfin   Цитата(AlexandrY @ Mar 12 2008, 20:01) И ...   Mar 12 2008, 17:58
|- - yes   Цитата(blackfin @ Mar 12 2008, 20:58) На ...   Mar 13 2008, 14:07
- - ATname   По поводу JTAG'а. Эта штука имеет свой канал д...   Mar 28 2008, 12:18


Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd August 2025 - 05:26
Рейтинг@Mail.ru


Страница сгенерированна за 0.01472 секунд с 7
ELECTRONIX ©2004-2016