AVR. Языки программирования.

Автор: | 16.11.2016

Доброго времени суток!

Сегодня, хотелось бы поговорить на тему выбора языка программирования микроконтроллера AVR. Данная статья имеет исключительно предвзятый характер, и не является истиной в последней инстанции, ведь выбор языка программирования личное дело каждого. Поэтому отнеситесь к данной статье как к просто личному мнению автора блога.

На момент написания статьи, языков программирования микроконтроллеров AVR существует большое количество. Здесь Вам и стандартные ASM/C так и нестандартные решения вплоть до графического языка программирования. Рассмотреть и потрогать их все я не могу, поэтому расскажу лишь о тех из них, с которыми имел опыт работы:

images

Arduino

Самый простой язык программирования из всех в данной статье. Данный язык основан на языках программирования C/C++. Вы, наверное, посчитаете его отличным началом для новичков, однако эта палка о двух концах. Рассмотрим его плюсы:

  1. Скорость разработки (Наверное, самая высокая среди языков представленных в данной статье).
  2. Простота освоения (Самый простой среди представленных в статье).
  3. Достаточно дружелюбная среда разработки (Субъективное мнение автора).

Теперь о минусах:

  1. Низкая оптимизация кода (В сравнении с другими языками, представленными в данной статье).
  2. Большинство действий микроконтроллера скрывается от программиста, что пагубно сказывается на его квалификации (Лучше один раз увидеть, чем сто раз услышать).
  3. Подходит лишь для платформ Arduino.

В итоге, хотелось бы сказать, что язык Arduino имеет полное право на существование. Он может пригодиться Вам и в самом начале вашего пути освоения микроконтроллеров (побалуйтесь и идите дальше), и при необходимости быстрого прототипирования какого либо устройства.

C8137933

Данный язык открывает перед программистом почти безграничные возможности программирования AVR. Является, чуть ли не стандартом программирования микроконтроллеров в целом. Выделять явные плюсы и минусы данного языка программирования достаточно сложно, ибо он нейтрален во всех отношениях. Поддерживается многими средами разработки, достаточно легок в освоении, занимает золотую середину по скорости разработки и оптимизации среди языков, представленных в статье.

Читайте также  Библиотека для работы с LCD.HD44780.AVR.

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

ASM

file1337362138Самый “низкий” язык программирования микроконтроллера. Его синтаксис представляет набор инструкций контроллера. То есть, данный язык дает наиболее полное представление о принципах работы микроконтроллера. Рассмотрим его положительные черты:

  1. Отличная оптимизация кода (При достаточной квалификации программиста) как по размеру, так и по быстродействию.
  2. Широкие возможности (Часто при помощи Ассемблера можно сделать то, что невозможно на других языках программирования).
  3. Понимание принципов работы микроконтроллера (Знание Ассемблера значительно ускорит процесс вашего обучения)

Однако данный язык обладает рядом недостатков:

  1. Ассемблер сложен в изучении и понимании.
  2. При недостаточной квалификации программиста, код написанный на Ассемблере уступит по быстродействию и размеру прошивкам написанным на других языках.
  3. Низкая скорость разработки кода.

Ассемблер — мощное оружие в руках программиста. Эффективность его применения зависит лишь от Вашего умения обращаться с ним.

Каждый язык программирования имеет свои сильные и слабые стороны. Зная достоинства и недостатки каждого инструмента, профессионал выберет именно тот, который наиболее удовлетворит требования поставленной задачи. Очень часто, применение нескольких языков “одновременно” поможет сэкономить такты микроконтроллера и его память. К примеру, отлично зарекомендовала себя связка языков C и ASM.

Я рекомендую Вам попробовать все языки программирования. Лишь написав несколько строчек кода на каждом из них, Вы узнаете какой язык наиболее подходит для решаемых Вами задач.

Повторюсь, что данная статья личное мнение автора блога, отнеситесь к ней соответствующим образом. Искренне надеюсь что не задел чувства приверженцев каких либо языков.

Читайте также  AVR для начинающих. Урок 14. EEPROM.

Продолжить обсуждение предлагаю в комментариях)

Спасибо за внимание!

AVR. Языки программирования.: 3 комментария

  1. Иван

    Вы так описываете про ардуино как о каком-то самостоятельном языке, и никакого упоминания от том, что это всего лишь С/C++ изложенный в виде библиотечых оберток! Не вводите начинающих в заблуждение.

    1. DamiKK Автор записи

      Добрый день(Вечер,ночь,утро), Иван!
      Спасибо за ваше замечание, добавил.
      Однако, официальный сайт Arduino, дает следующее определение:
      «The Arduino language is based on C/C++. It links against AVR Libc and allows the use of any of its functions; see its user manual for details.»

      Что означает, что Ардуино это все таки язык, основанный на C/C++.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *