Re: Кто-нибудь программирует микроконтролёры на С++?
С++ это язык. Он не имеет никакого отношения к событиям, операционке, ООП. На ООП можно писать на Си. Что я и делаю, к примеру.
С++ действительно сложнее, что, потенциально, увеличивает вероятность появления ошибки, при низкой квалификации программиста. То есть это не свойство языка, а требование к его использованию.
С++ является расширением языка С. По сути на С++ можно писать используя синтаксис С. Объём результирующего кода, при полноценном использовании С++ (объекты) будет больше, но незначительно. (Метод, для объекта не транслируется в вызов функции, - это ссылка на таблицу методов класса и прочие отличия). На С никто не мешает писать так же. В С ты можешь создать структуру, одним из членов которой будет п/п (читай метод). Единственное, что в С, при этом, ты лишён наследования. Кроме того нет виртуальных методов. И то и другое явный недостаток, если честно.
Короче сам язык - как язык. Но, как правило, под использованием С++, всё же понимают, кроме средств языка ещё и шаблоны, исключения, библиотеки классов, и так далее ... До последнего времени это всё не поддерживалось компиляторами. Так, IAR, к примеру разрешал использовать только диалекты Embedded C++ (EC++), Extended Embedded C++. Буквально год - два назад они начали поддерживать полный стандарт. Поддерживают также исключения и RTTI.
На мой взгляд эти вещи пока избыточны, для МК.
Сейчас я работаю с stm32f407. Там 1М флэши и ›190К памяти. Это позволяет впрямую использовать С++, включая динамические объекты. С появлением контроллеров Cortex-M7, думаю, применение С++ становится экономически обоснованным.
Есть и поддержка различных фреймворков. Например QT платный есть для младших моделей кортексов.
|