Программирование микроконтроллеров. Компиляторы.

Все языки программирования делятся на несколько групп, в зависимости от «профессиональной ориентации»:

1. Прикладные языки программирования (FORTRAN для математиков, FoxPro для финансовых работников);
2. Универсальные (Pascal и Basic);
3. Системные (Ассемблер и Си).

Системные языки стали называть низкоуровневыми, т.е., программист работает на нижнем, наиболее приближенном к процессору, уровне. А языки, при работе с которыми программист не сталкивается с непосредственным управлением работой процессора, стали называть языками высокого уровня. Каждая группа имеет свои достоинства и недостатки. Так, например, программы, написанные на Ассемблере, очень быстро выполняются процессором. Дело в том, что Ассемблер — это практически машинная команда. Но у ассемблера есть и минусы: основной минус – сложность написания программ, второй — даже относительно несложные программы имеют большой объем исходного текста, что затрудняет анализ программы.

В настоящее время одними из наиболее часто используемых являются микроконтроллеры фирм Atmel и Microchip. Для программирования этих микроконтроллеров создано множество сред разработки. Далее приведены наиболее популярные из них.

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

Кроме того, "AVR Studio" позволяет управлять целым рядом подключаемых к компьютеру внешних устройств, позволяющих выполнять аппаратную отладку, а также программирование ("прошивку") микросхем AVR.

Программная среда "AVR Studio" работает не просто с программами, а с проектами. Для каждого проекта должен быть отведен свой отдельный каталог на жестком диске. В AVR Studio одновременно может быть загружен только один проект.

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

Главный из них - файл проекта. Он имеет расширение aps. Файл проекта содержит сведения о типе процессора, частоте тактового генератора и т.д. Он также содержит описание всех остальных файлов, входящих в проект. Все эти сведения используются при отладке и трансляции программы.

Кроме файла aps, проект должен содержать хотя бы один файл с текстом программы. Такой файл имеет расширение asm. Недостаточно просто поместить файл asm в директорию проекта. Его нужно еще включить в проект. Проект может содержать несколько файлов asm. При этом один из них является главным. Остальные могут вызываться из главного при помощи оператора include. На этом заканчивается список файлов проекта, которые создаются при участии программиста.

Algorithm Builder предназначен для производства полного цикла разработки, начиная от ввода алгоритма, включая процесс отладки и заканчивая программированием кристалла.

Algorithm Builder довольно нетрадиционная программа в плане языка программирования: ассемблер, завернутый в красивую обертку визуального программирования. Algorithm Builder - визуальный ассемблер, или построитель ассемблера, с помощью которого на выходе можно получить максимально эффективный код.

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

Algorithm Builder имеет удобный настройщик периферии (таймеры, UART, ADC, SPI и т.д.), позволяющий просто выбрать необходимые параметры работы устройства в окне настройки. В этом же окне Builder покажет набор инструкций, обеспечивающих эти параметры.

Переходы осуществляются в программе очень наглядно - вектором. Если требуется перейти по условию в какую-либо точку программы, нужно просто провести вектор в эту точку. Это освобождает программу от бесчисленных имен меток, которые в классическом ассемблере являются неизбежным балластом. Переходы по именованным меткам также возможны. Algorithm Builder обеспечивает мониторную отладку на кристалле (On Chip debug), которая позволяет наблюдать содержимое реального кристалла в заданной точке останова. При этом для связи микроконтроллера с компьютером используется только один вывод, причем по выбору пользователя. Мониторная отладка может быть применена к любому типу кристалла, имеющего SRAM.

WinAVR представляет собой набор инструментальных средств для работы с микроконтроллерами семейства AVR фирмы ATMEL. В него вошли следующие компоненты:

a) компилятор языка C avr-gcc,

b) библиотека компилятора avr-libs,

c) ассемблер avr-as,

d) интерфейс программатора avrdude,

e) интерфейс JTAG ICE avarice,

f) Debugger avr-gdb,

g) редактор programmers notepad.

Весь этот набор собран в один инсталляционный пакет и предназначен для установки на платформу Windows.

CCS PCWHD (PIC C Compiler) – компилятор языка С. Современная интегрированная (визуальная) среда разработки программного обеспечения Windows IDE включает в себя текстовый редактор, компилятор и интерпретатор, средства автоматизации сборки и отладчик. Возможность работы как автономно, так и в интеграции с MPLAB IDE (интегрированная среда разработки фирмы MICROCHIP) делают его незаменимым при разработке программ для PIC микроконтроллеров. Поддерживает микроконтроллеры фирмы MICROCHIP PIC10/12/16/18/24 и dsPIC30/33 серий.

Написанная и преобразованная (откомпилированная) программа переносится в микроконтроллер с помощью программатора. Программатором называют электронное устройство, к которому подключается микроконтроллер, а также программатор - это компьютерная программа, управляющая процессом переноса подготовленной программы из компьютера в микроконтроллер. Конструкцию с микроконтроллером, в который прошивается программа, называют целевой конструкцией или целевой схемой.