|
WinCE vs Linux vs eCos |
|
|
|
 |
Ответов
|
Mar 6 2008, 08:18
|

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 стоит денег.
|
|
|
|
|
Mar 10 2008, 10:23
|
Участник

Группа: Новичок
Сообщений: 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 Поэтому все приходится взвешивать и в каждом конкретном случае - решение получается свое.
|
|
|
|
|
Mar 10 2008, 11:49
|

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 Поэтому все приходится взвешивать и в каждом конкретном случае - решение получается свое.
|
|
|
|
|
Mar 11 2008, 18:53
|
Знающий
   
Группа: Свой
Сообщений: 601
Регистрация: 22-09-05
Из: Kharkov
Пользователь №: 8 847

|
Цитата(AlexandrY @ Mar 10 2008, 13:49)  Благодаря инструментам трассировки, внутрисхемной отладки на базе JTAG, человек освобождается от написания бесконечных отладочных вставок и логов, которые сами искажают код в свою очередь и могут иметь местные эффекты. В Линуксе если ошибка в ядре в каком-нибудь прекомпилированном модуле, только поиск может занять пару дней. А при чем здесь JTAG? Это если без ОС то понятно, но не всегда однако выгодно. А в Линукс gdb есть. В том числе и на уровне ядра. И ошибки находятся (и в драйверах и даже подсистеме виртуальной памяти) быстро. Может я чего-то не понимаю, но кто мне мешает посмотреть - исправить - перекомпилировать модуль? Что значит Цитата прекомпилированном модуле И кто (а главное на каком основании и по какому праву) его "прекомпилил" если это не я?
--------------------
- А мораль отсюда такова: всякому овощу свое время. Или, хочешь, я это сформулирую попроще: никогда не думай, что ты иная, чем могла бы быть иначе, чем будучи иной в тех случаях, когда иначе нельзя не быть. © Lewis Carroll. Alice's adventures in wonderland.
|
|
|
|
|
Mar 11 2008, 20:17
|

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 есть. В том числе и на уровне ядра. И ошибки находятся (и в драйверах и даже подсистеме виртуальной памяти) быстро. Может я чего-то не понимаю, но кто мне мешает посмотреть - исправить - перекомпилировать модуль? Что значит
И кто (а главное на каком основании и по какому праву) его "прекомпилил" если это не я?
|
|
|
|
|
Mar 12 2008, 08:45
|
Знающий
   
Группа: Свой
Сообщений: 601
Регистрация: 22-09-05
Из: Kharkov
Пользователь №: 8 847

|
Цитата(AlexandrY @ Mar 11 2008, 22:17)  JTAG позволяет просмотреть значения всех абсолютно переменных и без остановки программы и без единой строчки диагностического кода и без всяких отладочных движков на целевой платформе. Я знаю что такое JTAG и зачем он нужен. Цитата У знакомых разработчиков мобильных дивайсов трассер есть у каждого на столе. У меня тоже есть. Помогает. Но при отладке в Линукс - он только обуза и ничего больше. Цитата Проблема же Линукса и других монструозных осей в их величине. Простите меня, но мне кажется Вы слишком зациклились на "монстроидальности" того, что лично Вам не нравится (в самом широком смысле этого слова, включая, но не ограничиваясь, повышенными требования к железу, сложностью, (не)целесообразностью на данной задаче и т.п.) с одной стороны, и "минимализмом" - с другой. Всему свое место. Есть задачи, где я с Вами полностью соглашусь в ненужности, избыточности и сложности того-же Линукс. И есть задачи - где я не смогу с Вами согласится по поводу нецелесообразности применения Линукс. То-же касается и и других ОС. Цитата Компиляция целиком занимает столько времени, что приходится все оформлять в виде библиотек и заранее компилировать. Если ошибка попадается в таком скомпилированном модуле, то надо переключать проект на работу с исходниками модуля, исправлять, компилировать и снова оформлять как прекомпилированную библиотеку. А если ошибка снова там? А как ядро гранулировать на библиотеки если оно вам с готовым make файлом досталось гигантских размеров считая все включения? Значит не гранулируем, пытаемся сделать ядро и делать динамически линкующиеся модули. А если ошибки всетаки в ядре, то кошмар с полной перекомпиляцией повторяется, а динамические модули не отладить JTAG-ом. Это уже с какой стороны посмотреть. Когда мне приходится отлаживать программы для МК без ОС или в простых RTOS я применяю JTAG так как других способов понять что происходит - просто нет! Но при этом очень жалею, что нет чего нибудь типа kprobe (как в Линукс). Лично мое мнение JTAG это иллюстрация поговорки "На безрыбье и сам раком станеш." Цитата Вообщем такой секс позволителен только на уже кем-то отлаженных платформах. Имею богатый опыт по отладке прог под Win mobile через ихний ActiveSync. Больше похоже на шаманство и игру в рулетку. Такие средства отладки сами на ладан дышат и падают при любом сбое в ядре. Никогда не видел "уже кем-то отлаженных платформ" так как строю и отлаживаю эти самые платформы. Потому - без коментариев. Цитата Тут еще отмечу, что веду речь только об этапе подъема оси на голой платформе. Именно этим и занимаюсь. Начиная с обсуждения схемы платформы. Цитата Но для проекта по контексту этим этапом все и заканчивается практически.
Никто, конечно, никому не мешает. Все решает время, кто реально знает сравнительные расклады по времени на те или иные действия в технологии разработки тот и на коне. +1 Цитата Интересно, как пользователи eCOS объясняют существование лицензии VxWors стоимостью 12 штук баксов при такой раздольной халяве какую дает eCOS или RTEMS?
--------------------
- А мораль отсюда такова: всякому овощу свое время. Или, хочешь, я это сформулирую попроще: никогда не думай, что ты иная, чем могла бы быть иначе, чем будучи иной в тех случаях, когда иначе нельзя не быть. © Lewis Carroll. Alice's adventures in wonderland.
|
|
|
|
Сообщений в этой теме
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      AlexandrY Я поздравляю, что вы всем этим занимаетесь, теперь... Mar 12 2008, 12:47     vshemm Цитата(AlexandrY @ Mar 11 2008, 23:17) JT... Mar 12 2008, 13:00     path_finder Цитата(AlexandrY @ Mar 11 2008, 22:17) Пр... Mar 12 2008, 15:31 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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|