Меню сайта |
|
|
Категории раздела |
|
|
Мини-чат |
|
|
|
MAKEFILE И КОМПИЛЯЦИЯ ПРОГРАММЫ
Исходный текст программы
Сначала создадим на диске папку, где будут находиться файлы вашего проекта. Название папки любое, а вот место для нее желательно выбрать на том диске, куда установлен пакет WinAVR.
Запустим редактор программиста Programmers Notepad [WinAVR], его ярлык должен остаться у вас на рабочем столе. В меню редактора выберем File -> New -> C/C++ и напишем программу на языке Си.
/************************************************
ПРИМЕР МИГАНИЯ СВЕТОДИОДАМИ :: MYROBOT.RU
*************************************************/
#include <avr/io.h> #include <avr/delay.h> #define F_CPU 8000000UL // 8 MHz int main(void) // начало основой программы { DDRD = 0xff; // все выводы порта D сконфигурировать как выходы
while (1) { // Бесконечный цикл
PORTD = 0xff; // установить "1" на всех линиях порта D
_delay_ms(250); // Ждем 0.25 сек.
PORTD = 0x00; // установить "0" на всех линиях порта D
_delay_ms(250); // Ждем 0.25 сек.
} // закрывающая скобка бесконечного цикла
} // закрывающая скобка основной программы
Сохраним листинг программы в файл с именем "my_test.c". Имя файла может быть любым без пробелов и иметь расширение ".c". После этого закроем Programmers Notepad.
Создание файла Makefile
В WinAVR исходный текст программы компилируется при помощи утилиты make.exe, которая находится в папке WinAVR\utils\bin. Make.exe контролирует генерацию исполняемых файлов из исходного кода программы. Для управления работой этой утилиты используют make-файлы. Make-файл сообщает компилятору, какие команды запускать, какие файлы компилировать и линковать, какой выходной код генерировать и т. д.
После установки WinAVR в папке WinAVR\sample можно найти шаблон с именем Makefile, который нужно скопировать в папку с проектом и уже там редактировать.
Внимание: Makefile и компилируемый файл (в нашем случае my_test.c) должны находиться в одной папке.
Откроем Makefile в редакторе Programmers Notepad и отредактируем несколько важных для компилятора инструкций.
Во-первых, обязательно нужно указать, для какого типа микроконтроллера мы хотим получить выходной код. Найдем следующие строки:
# MCU name MCU = atmega128
Первая строка - комментарий, а во второй вместо atmega128 пишем тот микроконтроллер, который нас интересует (например, atmega8, attiny2313, attiny26).
Частота используемого кварцевого резонатора в герцах определяется в строках:
# Processor frequency. F_CPU = 8000000
Имя проекта, а соответственно и имя исходного файла с функцией main и выходные файлы с расширениями hex и cof, определяется в следующих строках:
# Target file name (without extension). TARGET = testpp
Здесь вместо testpp пишем нужное имя проекта (в нашем случае my_test).
Ищем строки:
# List C source files here. (C dependencies are automatically generated.) SRC =
После знака "равно" пишем $(TARGET).c, чтобы получилось
# List C source files here. (C dependencies are automatically generated.) SRC = $(TARGET).c
Ищем строки:
# List C++ source files here. (C dependencies are automatically generated.) CPPSRC = main.cpp
Стираем запись после знака "равно". Должно получиться:
# List C++ source files here. (C dependencies are automatically generated.) CPPSRC =
После этого, немного ниже, ищем раздел:
#---------------- Programming Options (avrdude) ----------------
Ищем строку:
AVRDUDE_PROGRAMMER = stk500
Заменяем на:
AVRDUDE_PROGRAMMER = stk200
В дальнейшем в курсе "Шаг за шагом" мы будем использовать упрощенный вариант программатора stk200.
Ищем строку:
AVRDUDE_PORT = com1 # programmer connected to serial device
Заменяем на:
AVRDUDE_PORT = lpt1
Программатор stk200 использует параллельный порт (lpt).
Вы можете использовать более удобный шаблон Makefile от myROBOT, в котором часто изменяемые опции вынесены в начало файла. В простейшем случае для использования этого Makefile'а достаточно скопировать его в папку с проектом и изменить строки в разделе "ОСНОВНЫЕ ИНСТРУКЦИИ".
Кроме того, в состав пакета WinAVR входит утилита MFile, которая помогает правильно составить или отредактировать Makefile. Запустить утилиту можно через меню "Пуск -> Программы -> WinAVR -> MFile [WinAVR]"
Компиляция программы
Загрузите в редактор Programmers Notepad исходный текст программы my_test.c, в меню выберете Tools -> [WinAVR] Make All. Команда Make All выполняет компиляцию исходного кода программы и в случае отсутствия ошибок генерирует файл, который можно прошивать в микроконтроллер AVR.
Внизу, в окне "Output", должно появиться сообщение об успешной компиляции:
А в папке вашего проекта должны появиться следующие файлы:
В файле my_test.eep хранится шестнадцатиричный код для загрузки в энергонезависимую память данных (EEPROM).
Следует помнить, что после каждого изменения кода программа должна быть перекомпилирована, т.е. в редакторе Programmers Notepad выполнено Tools -> [WinAVR] Make All.
Если проект будет состоять из нескольких файлов и в одном из них что-то изменили, то при повторной компиляции будет компилироваться только измененный файл. Для полной перекомпиляции необходимо вначале выполнить команду Tools -> [WinAVR] Make Clean, а затем команду [WinAVR] Make All. Команда Make Clean удаляет все файлы, сгенерированные предыдущей командой Make All.
|
Категория: МикроКонтроллеры | Добавил: ЛЕВША (12.06.2008)
|
Просмотров: 9061
| Рейтинг: 5.0/3 |
Добавлять комментарии могут только зарегистрированные пользователи. [ Регистрация | Вход ]
|
|
Поиск |
|
|
Статистика |
|
|
Наш опрос |
|
|
|