Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Пост интересный родился по embedded OS
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Операционные системы
Evgeny_CD
http://www.caxapa.ru/echo/arm.html?id=54484

Linux имеет смысл использовать:
* нужны продвинутье коммуникационные возможности
* для решения целевой задачи нужны хорошие IPC (Inter Process Communications)
* есть (почти) готовый софт(ы) для решения целевой задачи.

Linux имеет четкие минимальные требования:
* 2 Мбайт FLASH для загрузки
* 8 Мбайт RAM для работы (лучше 16; в 8 самый минимум влезет, либо надо использовать специальные урезанные версии ядра)

Эти требования долго были не дешевы, да и сейчас они не тривиальны (если рассматривать очень дешевые тиражные устройства). Собственно, до сих пор нет _однокристального_ девайса, а на котором бы пошел Linux (многокристальные сборки не в счет).

Если от Linux нужна не вся крутизна, а, скажем, только POSIX и BSD Sockets, то имеет смысл использовать *nix подобную встраиваемую ОСь. Собственно, по такому пути и пошли создатtли eCos и RTEMS (и многих других осей - эти две наиболее популярны).

Для них надо 256к FLASH 64...128...256k RAM. Пример - в LPC2106 eCos с POSIX успешно влазит, но места там остается не много.

Если начать навешивать на типовой MCU с ARM7 внешние FLASH и SRAM (например, LPC22xx), то это получается не дешево, и, как много раз считалось, полноценный (Linux | uClinux) будет стоить ненамного дороже - зачем же тогда городить огород?

STR91xx претендует на то, чтобы кардинально сломать ситуацию. Лишние 32к ОЗУ (по сравнению с распространенными 64Кбайтными вариантами) дают шанс засунуть довольно нехилое приложение с BSD Sockets, POSIX, и какой-нибудь вполне нормальной embedded OS (eCos | RTEMS | много чего еще) в _один_ кристалл (внешний MII не проблема).

Теперь по поводу многослоек.

Безусловно, для макетирования 4-х слойка куда удобнее (ну и пусть она на 150$ дороже стоит) - тут и спорить нечего (если, конечно, речь не идет о примитивной плате на LPC21xx, например).

Для малых тиражей - тоже, поскольку реальная стоимость 4-х слойки в общей структуре себестоимости _правильно менеджируемого_ проекта не так уж и велика.

Теперь представим, что у нас тираж 1000шт/мес. Поскольку Ethernet сеть есть в любом современном офисе (раcсматриваем платежеспособные фирмы) и почти в любом современном приличном доме, то применений у embedded ethernet масса.

Рассмотрим два решения
* AT91RM9200
-- CPU
-- FLASH
-- SDRAM
-- MII
-- разъем с трансформатором
-- печатная плата
---- либо компактная 4-х слойка
---- либо довольно большая 2-х слойка

* STR91xxx
-- CPU
-- MII
-- разъем с трансформатором
-- печатная плата
---- компактная двух-слойка

Очевидно, что второе решение будет заметно дешевле. Даже экономия 5$ на таких тиражах - это уже не игрушки (я бы не отказался от такой "прибавки" к своей ЗП)!

"Ага, прозрел, сукин сын!" - скажет кто-то из любителей "жесткой оптимизации". А я на это отвечу - как сказано в методологии XP программирования - оптимизировать нужно толко то, что действительно в этом нуждается; не стоит ничего серьезно оптимизировать заранее - не угадаете (кроме общей структуры - ее стоит оптимизировать изначально и постоянно, не скатываясь, разумеется, к постоянное переделке проекта).

Если говорить о сетевых приложениях, то есть два пути оптимизации. Лично я не вижу никакого смысла брать и писать IP стек на ASM в надежде впихнуть все в "мелкий" камень - это просто пустая трата времени. Количество глюков такой реализации закроет дорогу к массовым продажам устройства - а без массовых тиражей тут и говорить не о чем (пользователи устройства за 1000р могут не оценить Ваши усердие по еженедельному выпуску новой прошивки).

Можно взять uIP
http://www.sics.se/~adam/uip/size.html
Это более перспективно, но в силу ограниченности ресурсов ограниченость стека все равно скажется - сегментация пакетов, отсутствие PPP и пр.

lwIP куда более перспективен
http://savannah.nongnu.org/projects/lwip/

Если же взять готовую и отлаженную ОСь с POSIX Threads (можно ругать (eCos | RTEMS), можно хвалить, то pthreads... () там точно работают!), и тот же lwIP или даже встроенный в ось BSD стек, то в пользовательском приложениие имеет смысл заниматься "жесткой оптимизацией". Ибо системные глюки ОСь + стек маловероятны, а Ваши глюки Вы, в принципе, можете и дожать. Тут и вдумчивое изучение асмового листинга своей программы поможет, и переписывание отдельных кусов на asm руками, и пр. "все тяжкие".

Такое устройство вполне можно продавать 1000+ тиражами, и суппорт не "умрет" от "багодарных клиентов".

Судя по мейл листу lwIP он не идеален, но его юзают в тысячах проектов - так что основные баги там точно пофиксили.

В общем, STR91xx открывает дорогу к принципиально новым проектам, которые удастся впихнуть в "однокристальное" решение путем "разумной" оптимизации, а не путем написания 256к кода на асме. А это новый рынок smile.gif
===
Кто что скажет по этому поводу?
zltigo
Цитата(Evgeny_CD @ Mar 18 2006, 16:27) *
Такое устройство вполне можно продавать 1000+ тиражами, и суппорт не "умрет" от "багодарных клиентов".
...
Кто что скажет по этому поводу?


Осталось подобрать чипу 'устройство' :-( c тиражем 1000+ в месяц.

Цитата
Теперь представим, что у нас тираж 1000шт/мес. Поскольку Ethernet сеть есть в любом современном офисе (раcсматриваем платежеспособные фирмы) и почти в любом современном приличном доме, то применений у embedded ethernet масса.

Уж больно расплывчато. Ну и продукции подходящей под данную "формулу" в ценовой
категории от 30USD..100USD+ море, причем не на вышеназванном чипе и память навешана....


Ну и кто из российских 'самодельщиков' выпускает устройства такого класса? А может при таком тираже
съэкономить еще? А может.....

В общем статья, как статься.
ig_z
Цитата(Evgeny_CD @ Mar 18 2006, 18:27) *
Рассмотрим два решения
* AT91RM9200
-- CPU
-- FLASH
-- SDRAM
-- MII
-- разъем с трансформатором
-- печатная плата
---- либо компактная 4-х слойка
---- либо довольно большая 2-х слойка

* STR91xxx
-- CPU
-- MII
-- разъем с трансформатором
-- печатная плата
---- компактная двух-слойка

Очевидно, что второе решение будет заметно дешевле. Даже экономия 5$ на таких тиражах - это уже не игрушки (я бы не отказался от такой "прибавки" к своей ЗП)!


Справедливые рассуждения для массового рынка. И ваши усилия в данном направлении заслуживают уважения. Но я полагаю, что большинство здешних разработчиков представляют все же малотиражный рынок. И мне представляется, что в обозримом будущем здесь будут задавать тон подешевевшие АРМ9 с VM RTJava. Не зря ведь SUN выпускает плату на 9200 кристалле, по всей видимости ембед рынок уже готов к серьезному использованию данной технологии.
Evgeny_CD
Цитата(ig_z @ Mar 20 2006, 16:46) *
...И мне представляется, что в обозримом будущем здесь будут задавать тон подешевевшие АРМ9 с VM RTJava. Не зря ведь SUN выпускает плату на 9200 кристалле, по всей видимости ембед рынок уже готов к серьезному использованию данной технологии....
Планы SUN - это одно, рынок - это другое. Вскрытие покажет.

То, что на ARM9 можно толкать на рынок всякие скриптовые языки - сомнений нет. Да и на 7 тоже можно. Как пример грамотного проекта (я уже приводил эту ссылку)

http://www.circuitcellar.com/renesas2005m1...inners/1685.htm
http://www.circuitcellar.com/renesas2005m1...85_abstract.pdf
http://www.circuitcellar.com/renesas2005m1...tries/M1685.zip

А вот какова роль джавы - это большой вопрос....
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.