Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МУ_ПМПС.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
16.39 Mб
Скачать

3.2. Создание простейшей программы и её отладка средствами WinAvr

Подробно процесс создания программы рассмотрен в [4]. Для создания проекта в программе Programmers Notepad, входящей в состав пакета WinAVR, необходимо ее запустить. После установки ярлык этой программы находится на рабочем столе, также ее можно выбрать через Пуск – Все программы – WinAVR. Интерфейс программы Programmers Notepad изображен на рисунке 1.5.

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

#include <avr/io.h>

void main (void)

{ while (1)

{

asm volatile("inc r16"::);

}}

Затем необходимо сохранить написанную программу с расширением *.с (рисунок 1.6). Рекомендуется сохранять программу в отдельную папке, поскольку в процессе отладки создается довольно большое число вспомогательных файлов. После сохранения программы в формате *.с конструкции языка С будут подсвечиваться, что облегчает работу по написанию и правке программы.

Рисунок 1.5 – Рабочая область программы Programmers Notepad

Рисунок 1.6 – Программа в среде Programmers Notepad

Для компиляции программы в рабочую папку с программой необходимо скопировать файл makefile, содержащий параметры компиляции. Данный файл можно найти через меню Пуск – Все программы – WinAVR – MFile или в папке, в которой установлена среда WinAVR. После копированию в рабочую папку, необходимо открыть makefile и изменить поля MCU (содержит тип микроконтроллера) и TARGET (содержит имя программы на С).

Для приведенного выше примера эти поля будут иметь следующие значения:

# MCU name

MCU = at90can128

***************

# Target file name (without extension).

TARGET = First

Теперь необходимо откомпилировать программу First.c. Для этого в среде Programmers Notepad следует выполнить команду меню Tools – [WinAVR] Make All. В области Output будет отображен листинг процесса компиляции. Если компиляция прошла без ошибок, то Process Exit Code будет равен 0 (рисунок 1.7).

Для отладки программы ее теперь можно запустить в AVR-Studio. Для этого в AVR-Studio нужно выбрать файл First.elf. программа предложит пересохранить его в виде проекта AVR-Studio. После этого будет открыто диалоговое окно с параметрами отладки. В списке микроконтроллеров выбираем AT90CAN128.

Рисунок 1.7 – Процесс компиляции программы в Programmers Notepad

Если все сделано правильно, программа на языке С запустится сразу в режиме отладки (рисунок 1.8).

Рисунок 1.8 – Отладка программы на С в AVR-Studio

4. Программа исследования

1. Изучить систему команд и директивы ассемблера AVR, структуру ядра и памяти микроконтроллеров AVR.

2. Создать новый проект в AVR-Studio.

3. Ввести текст учебной программы для микроконтроллера AT90CAN128:

.include "can128def.inc"

.ORG 0x0000

rjmp RESET

.ORG 0x0020

RESET:

inc r16

rjmp RESET

; End of program

4. Запустить учебную программу в программном отладчике AVR Simulator, встроенном в AVR-Studio.

5. Разработать тесты для проверки выполнения команд RJMP и INC.

6. Изучить различные режимы отладки.

7. Исследовать, что изменяется в ходе выполнения программы.

8. Исследовать дизассемблер программы.

9. Изучить версию языка С системы WinAVR.

10. Ввести текст учебной программы на языке С, функционально идентичную программе на ассемблере, с использованием ассемблерной вставки:

#include <avr/io.h>

void main (void)

{ while (1)

{

asm volatile("inc r16"::);

}}

11. С помощью WinAVR откомпилировать ее и повторить п. 4–7.

12. Ввести текст учебной программы на языке С без ассемблерной вставки, функционально идентичную двум предыдущим программам:

#include <avr/io.h>

void main (void)

{

unsigned char *r16;

r16=0x10;

while (1)

{

(*r16)++;

}

}

13. С помощью WinAVR откомпилировать ее и повторить п. 4–7.

14. В соответствии с номером в списке группы оформить отрывок программы из таблицы А.1 приложения А в полноценную программу на языке ассемблер, написать идентичные ей программы на языке С с использованием ассемблерной вставки и без неё. Программу на ассемблере скомпилировать в AVR-Studio, программы на С – в WinAVR.

15. Выполнить п. 4–7 для всех трех программ.