воскресенье, 12 октября 2014 г.

На каком языке и где писать программы

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


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

Первой в списке будет родная среда ардуино.

Arduino IDE http://arduino.cc/en/Main/Software

Программы пишутся на C/C++. Возможно использование ассемблерных вставок. Используется компилятор GCC.

Среда является образчиком минимализма. Ничего лишнего. Это сильно облегчает работу тем, кто впервые сталкивается с ардуино.

Следующей будет родная для микроконтроллеров AVR среда разработки от ATMEL.

Atmel Studio IDE http://www.atmel.com/tools/ATMELSTUDIO.aspx

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

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

Теперь немного расскажу о проприетарном программном обеспечении. Воспользоваться всеми возможностями этих программ можно лишь купив программу. Однако, большинство разработчиков предоставляют возможность установки бесплатных версий своих программ. Это делается для того, чтобы у пользователя была возможность ознакомиться с программой, изучить программу. Как правило, бесплатные версии имеют ограничения. Часто встречается ограничение времени работы бесплатных программ. По истечении ознакомительного периода программа перестает работать. Также распространено ограничение функционала. Например, нельзя скомпилировать прошивку превышающую 4 килобайта. Для ознакомления и изучения среды этого достаточно, для полноценной работы этого мало. Также запрещается использование бесплатных версий программ для работы над коммерческими проектами.

Перечислю известные мне платные средства разработки для AVR.

IAR http://supp.iar.com/Download/SW/?item=EWAVR-EVAL (Си).

ImageCraft https://www.imagecraft.com/devtools_AVR.html (Си).

CodeVisionAVR http://www.hpinfotech.ro/cvavr_download.html (Си).

mikroC http://www.mikroe.com/mikroc/avr/ (Си).

mikroPascal http://www.mikroe.com/mikropascal/avr/ (Pascal).

mikroBasic http://www.mikroe.com/mikrobasic/avr/ (Basic).

BASCOM AVR http://www.mcselec.com/index.php?option=com_content&task=view&id=14&Itemid=41 (Basic).

Algorithm Builder http://algrom.net/russian.html Уникальная среда разработки. Совершенно не похожа на все ранее представленные.

Настоятельно рекомендуется установка бесплатных версий в ознакомительных целях. В своё время, генератор кода CodeVisionAVR мне очень помог в изучении микроконтроллеров AVR.

Немного скажу о языках программирования. Ближе всего к железу находится ассемблер. Знание этого языка помогает понять, как работает микроконтроллер. У разных микроконтроллеров разный набор команд. Но провести параллели не сложно, так как функционирование современных микроконтроллеров основывается на одинаковых принципах. Однако, наиболее распространен Си. На этом языке программы пишутся легко и быстро. Существуют компиляторы Си для неисчислимого множества самых разных микроконтроллеров.

Не смотря на наличие поддержки Pascal, Basic и т.д. и т.п., я бы не советовал тратить на них время.