×Закрыть

Эмбеддерские холивары

1) А меморі ліків не боїтесь?

2) А скільки часу проца займає маллок або н"ю?

3) Які шаблони, ви про що, знову про Відндоуз СЕ чи про іншу ОС для мобайлі?

4) А як щодо портованості коду?

5) А як щодо ріл тайму?

1 — боюсь

2 — багато, але на сотнях mips це не непринципово

3- Слова QNX/VxWorks нічого не кажуть?

4 — А причому тут шаблони?

5 — див п. 3

Допустимые теги: blockquote, code, em, pre, i, li, ol, strike, strong, u, ul, a.
Ctrl + Enter
Допустимые теги: blockquote, code, em, pre, i, li, ol, strike, strong, u, ul, a.
Ctrl + Enter
Для того що розуміти що таке ембедед і наскільки десктоп від нього далеко раджу почитати:
1) Embedded Systems Design—An Introduction to Processes, Tools, and Techniques. Arnold Berger
2) An Embedded Software Primer. by Simon
3) First Steps with Embedded Systems. by Byte Craft Limited
дуже коротке ессе:
4) Embedded System Primer. by GenerExe
GNUшникам і лінуксоїдам:
5) Programming Embedded Systems By Michael Barr, Anthony Massa
6) Embedded System Design on a Shoestring. Achieving High Performance with a Limited Budget. by Lewin A.R. W. Edwards

7) Building Embedded Linux Systems. by Karim Yaghmour

1) Не боюсь. Может просто их кто-то готовить не умеет?
2) Зависит от платформы и проекта. На 5К строк — действительно не нужно, статики хватит с головой. На бортовой комп автомобиля с навигацией и прочей лабуденью — никак не получится. Для управления лифтами в большинстве случаев достаточно контроллера и никакой ОС не нужно. Да и С++ откровенно проигрывает С в плане эффективности кода. Зачем этот оверхед в виде таблиц методов и прочего?
3) WinCE, Palm, QNX, VxWorks, Linux, NetBSD. Некоторые проекты без ОС вообще. А про шаблоны потому, что про них упомянул kurtis99 в сопряжении с отсутствием динамического выделения памяти. Ок, я грешным делом подумал про STL, а там без динамики ничего жить не будет.
4) POSIX в разных профилях. И plain C, в основном. Но и плюсы пользуем:) Однако это никаким боком к портабельности не относится. Динамический аллокатор есть практически везде, где есть ОС и не только там.
5) Как риал-тайм относится к выделению памяти? Если речь о четком понимании механизма квантования времени в данной конкретной системе — так все зависит от конкретной системы. Preemptive multitasking — хорошо, меньше мозги парить. Если нет — считать циклы и делать контрольные точки для передачи управления.
Все это не требует знания электроники. Это большой плюс, но не более того.
Я бы разделил области примерно так:
1. Электронщик
2. Системный программист
3. Прикладной программист.
В каждым следующим уровнем степень абстракции все выше. Любой человек может сочетать разные уровни.
При этом, к эмбеддед я тут не отношу ничего.

Эмбеддед в моем понимании — это лишь та категория программно-аппаратных решений, которые крутятся в необслуживаемом режиме годами. С гарантией доступности, со внутренними знаниями о том, как решать свои проблемы без участия человека. А степень монстроидальности технологий тут до лампы. Хоть Мейнфрейм с жабой на борту, хоть ассемблер. Важно, чтобы хотя-бы синиоры понимали, в какой код выливаются абстракции верхнего уровня, какие ресурсы будут горлышком и как с этим бороться.

а якщо десятки міпсів, і довгі зв"язані списки тре збільшувати/зменшувати?
Ось шо пишуть про malloc.
www.mirbsd.org/...PERS/malloc.htm
і про його оптимізацію,
www.cs.princeton.edu/...es/14Memory.ppt

може ще шо є в нетах.

1. Не-а, не боюсь=)
2. Не пользуюсь
3. Посмотрите scmRTOS, ОСь делалась специально для небольших микроконтроллеров, и там активно используется Си++, и шаблоны в том числе.
scmrtos.sourceforge.net
Большой плюс это наличие русскоязычной документации и русскоязычных разработчиков=)
4. Если писать код с использованием стандартной библиотеки шаблонов (STL), то да, возможны проблемы с портированием т.к. не везде этот STL водится (например для мною любимых 8-ми битных AVR его нету)

5. Я сомневаюсь что какая-то ОСь сможет предложить максимально честный риалтайм, особенно если нужно придерживаться четных временных ограничений (сформировать импульсы определенной длительности, например) то тут только нужно надеятся на работу с железными прерываниями.

Подписаться на комментарии