Запускаем IAR AVR. Откроется окно Embedded Workbench Startup, можно создать проект ипользуя его, но мы пойдем другим путем, поэтому жмем Cancel. Окно закроется и перед нами во всей своей невзрачной красе предстанет IAR.
Выбираем в верхнем меню Project > Create New Project…
IAR предложит выбрать тип шаблона проекта (Project templates). Выбираем C > main и кликаем Ок.
В стандартном Save As диалоге находим или создаем папку и сохраняем проект. Проект готов. Приглядимся к IARу.
Верхняя строка – почти стандартный menu bar. Ниже - tool bar с кнопками.
С правой стороны находится редактор кода. Сейчас там открыт файл main.c, но в нем только пустая функция main().
С левой стороны расположено окно рабочего пространства (workspace), в котором отображается структура проекта. Любой IARовский проект должн находиться по-крайней мере в одном рабочем пространстве.
В верхней части рабочего пространства находится выпадающее меню. Это так называемые конфигурации проекта. По умолчанию их две – Debug и Release. Они отличаются между собой настройками проекта. Можно создавать свои конфигурации.
Сохраним рабочее пространство. Если не сделаем сейчас, придется делать это на этапе компиляции. Выбираем в меню File > Save Workspace
Зададим настройки проекта для конфигурации Debug. Выбираем в меню Project > Options
или кликаем правой кнопкой мышки по галочке напротив названия проекта.
Откроется диалоговое окно с множеством настроек.
Выбираем тип микроконтроллера
General Options > Target > Processor configuration
У меня это ATmega8535.
Разрешаем использование имен битов определенных в хедер файлеВ General Options > System ставим галочку Enable bit definitions in I/O-Include files
Хоть нам и не понадобится сейчас эта настройка, полезно знать где она находится.
Включаем генерацию ассемблерного листинга. Необязательная опция, но я обычно включаю, чтобы посмотреть что натворил компилер.
С/С++ Compiler > List > галочка Output List File
Меняем формат выходного файла Linker > Output.
B поле Output file cтавим галочку Override default и заменяем расширение d90 на hex
В поле Format выбираем Other и в выпадающем меню Output format выбираем тип файла intel-standart
Жмем ОК.
Теперь копируем и вставляем текст нашей программы в main.c
#include <ioavr.h>
#include <intrinsics.h>
int main(
void)
{
unsigned char led = 1;
DDRC = 255;
while(1)
{
PORTC = ~led;
__delay_cycles(400000);
led = led<<1;
if (led == 0)
led = 1;
}
return 0;
}
Кликаем кнопку Make.
Если все сделано правильно, IAR откомпилирует и соберет проект, а внизу откроется окно Messages.
Все прошло без ошибок. Но компилер выдал warning - statement is unreachable. Ничего страшного – он просто сообщает нам, что функция main никогда не возвратит значение. У нас в программе бесконечный цикл while(1){…} и микроконтроллер при работе никогда не дойдет до строчки return 0.
Ищем файл прошивки в папке проекта и грузим в микроконтроллер.
Если интересно посмотреть на ассемблерный листиг, открываем файл main.lst
С первого взгляда там черти че. Но если знаешь ассемблер, то легко разберешься.