Member 9187336 Ответов: 3

встроенное системное программное обеспечение


является ли c или c++ оптимальным выбором для встраиваемой системы

Mohibur Rashid

О каком встроенном устройстве вы говорите? потому что есть встроенное устройство, где C тоже будет плохим выбором. Некоторые микроконтроллеры PIC имеют память на 1024 или менее исполняемых файлов

3 Ответов

Рейтинг:
24

OriginalGriff

Зависит от того, что вы делаете: я использовал как C, так и встроенный C++ для хорошего эффекта во встроенных приложениях.

Как правило, если ваш процессор и память невелики, вам будет лучше С C, но встроенный C++ (а не полножирный C++) может работать очень хорошо.

Какие языки доступны для вашего целевого процессора-это гораздо, гораздо лучший вопрос!


Рейтинг:
2

Mehdi Gholam

Оптимальность будет зависеть от вашего контекста того, что вы пытаетесь сделать, и от типа оборудования, на котором вы будете работать, если вы знакомы с c или c++, то, вероятно, это будет лучше и эффективнее.


Рейтинг:
0

michaelmel

Определение встроенного программного обеспечения несколько расширилось, включив разработку на платформах, использующих различные версии UNIX, уже перенесенные и предоставленные разработчикам как часть пакета разработки.

Если это так, то вы, скорее всего, будете использовать GNU C/C++. Однако я не считаю это встроенной системой.

Плюс у вас есть Android, плюс вы получаете Windows CE, так что границы того, что "встроено", несколько размыты (особенно в объявлениях о работе :))

Несмотря на вышесказанное, все еще имеет место тот факт, что 90% или более классических проектов встроенного системного программного обеспечения с голыми костями написаны на языке C.

Причины, по которым это произошло:
C++ имеет тяжеловесную среду выполнения, и перенос на новую платформу потребует изрядной работы, прежде чем вы даже начнете кодировать приложение (примеры - обработка исключений);
Кросс-компиляторы C++ обычно менее зрелые. Наличие проблемы с компилятором-это последнее, что вы хотите в встроенном проекте, поэтому выбирайте с умом;
Хорошие Кросс-компиляторы C чрезвычайно зрелы и генерируют феноменально эффективный код (что важно для среды реального времени);
Embedded C++ (EC++) еще не взлетел и не будет, на мой взгляд;
Масштаб проекта обычно таков, что преимущества C++ не так очевидны, как для разработки настольных или мобильных приложений.

В целом, придерживайтесь буквы "С", вы не можете ошибиться.


SoMad

Хороший ответ, +5.

Сорен Мадсен