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

7.4.7. Некоторые сведения о подготовке исполняемой программы

Исполняемая программа состоит из кодов команд МК. Для ее получения программа сначала формируется в текстовой форме на языке программирования высокого уровня. Текст программы, набранный в любом текстовом редакторе и сохраненный в файле в виде последовательности кодов символов, называется исходной программой (исходным модулем). Исходная программа обрабатывается компилятором, в результате чего получается так называемый объектный модуль. Объектный модуль состоит из двух основных частей: тела модуля, представляющего собой программу в кодах команд, и заголовка, содержащего имена внешних объектных модулей. Объектный модуль обрабатывается компоновщиком компилятора, который строит исполняемую программу (загрузочный модуль), содержащую только команды МК. При построении исполняемой программы к объектному модулю, полученному из исходной программы, подключаются объектные модули из библиотек компилятора, содержащих объектные модули функций ввода-вывода, обработки строк, массивов и т. д. Схема подготовки исполняемой программы из исходной программы, подготовленной на языке Си, приведена на рис.6. .

Рис. 7.21

Рис. 7.22



Рис.7.23

Для иллюстрации изложенного на рис. 7.22 приводится исходная программа на языке Си, создающая эффект сигнала SOS с помощью светоиндикаторного табло - светодиодов, подключенных к выводам PORTD МК. Исходная программа по структуре включает препроцессорные директивы с именами заголовочных файлов и определения функций, причем здесь последняя функция является главной. В теле функций имеются обращения к макроопределениям, описанным в заголовочных файлах, и выражения-операторы вызова ранее определенных функций. Рядом (рис. 7.23) приведены коды команд исполняемой программы в шестнадцатеричном представлении, полученные после компиляции и компоновки исходной программы Си-компилятором WinAVR Programmers Notepad. На рис.7.24 показан фрагмент исполняемой программы в виде листинг-файла, в котором видна трансформация компонентов исходной программы в исполняемую программу как в кодах машинных команд в шестнадцатеричном представлении, так и в символьной форме на ассемблере.

Рис. 7.24

На рис. 7.25 приведен развернутый алгоритм функционирования приведенной выше программы.

7.4.8. Имитация и отладка программы в среде avr Studio 4

AVR Studio 4 – это интегрированная среда разработки, которая очень удобна для отладки и имитации выполнения программ на МК. Рассмотрим действияв по применению интегрированного имитатора, входящего состав AVR Studio:

Рис.7.25

-запустить программу AVR Studio, в появившемся окне приветствия нажать клавишу Open и открыть ранее созданную в компиляторе Programmers Notepad папку Test с файлами (рис.7.26, представлены только файлы указанных внизу окна типов), открыть загрузочный файл Test.hex (первый в списке), в результате будет предложено выбрать вид отладочного средства и тип МК (рис.7.27), выбрать интегрированный имитатор AVR Simulator и МК Atmega 128, подтвердить

Рис. 7.26

Рис. 7.27

выбор нажатием клавиши Finish, появляется служебное окно с запросом о включении файла в состав проекта – Нет;

- открывается главное окно AVR Studio (рис.7.28).

В главном окне представлена исполняемая программа в виде (Disassembler), полученном ассемблированием кодов машинных команд файла Test.hex, и рабочее окно Workspaсe, предоставляющее доступ к 32 РОН, к параметрам процессора, а также к портам ввода/вывода и другим компонентам МК.

Особый интерес на этапе отладки представляет ветвь параметров про-

цессора (рис.7.29). Представленные здесь элементы позволяют просматривать и изменять содержимое программного счетчика PC , указателя стека SP, счетчика циклов во время выполнения программы, регистров двойной длины (на два байта) X, Y и Z, а также частоту кварцевого осциллятора и показания таймера отсчета времени. Для этого следует выбрать требуемый элемент в

Рис. 7.28

окне Workspace, дважды щелкнуть мышью на значение в поле Value и ввести требуемое значение в появившемся диалоговом окне Edit. Через самый нижний элемент окна Workspace (рис. 7.28) можно выйти на регистры ввода/вывода (рис.7.30) и, например, контролировать имитацию выполнения в МК созданной ранее программы. Для этого достаточно запустить её на вы-

Рис. 7.29

полнение командой меню DebugAuto Step или соответствующей клавишей панели инструментов Debug, расположенной в правой части панели инструментов главного окна AVR Studio (рис. 7.30). При этом желтая

Рис. 7.30

стрелка - курсор показывает выполняемую команду, а цвет поля бит регистров PORTD и PIND отражает их содержимое: белый фон соответствует «0» (светодиод горит), а черный фон – «1» (светодиод выключен). Для того, чтобы прервать выполнение программы, следует выполнить команду меню Debug Break или нажать соответствующую клавишу панели инструментов Debug. Также можно отредактировать содержимое какого-либо рабочего регистра как до, так и в процессе выполнения программы (действия аналогичны предыдущему). При отладке программы весьма удобны пошаговый режим (команда меню DebugStep Into) и режим без захода в подпрограммы (команда меню Debug Step Over), клавиши запуска выполнения программы в этих режимах также имеются на панели инструментов Debug. Перед отладкой программы и имитацией ее выполнения на МК командой меню Debug Reset или клавишей панели инструментов Debug следует обнулить программный счетчик, счетчик циклов и таймера отсчета времени.