Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Последняя вкладка называется «Breakpoints and Tracepoints»

Поиск

(Точки останова и точки трассировки). Эти точки проставляются в тексте программы перед началом процесса отладки и дублируются в данном окне. Как проставлять точки останова, мы узнаем чуть позже.

Точки останова используются для того, чтобы приостановить выполнение программы в том или ином месте программы, чтобы убедиться, что программа выполняется правильно. При создании точки останова в тексте программы она автоматически появляется во вкладке «Breakpoints and Tracepoints».

Вкладка позволяет увидеть все точки останова программы в одном месте. Кроме того, на вкладке против каждой записи, описывающей точку останова, автоматически появляется «Check box» (поле выбора), при помощи которого можно влюбой момент временно отключить любую точку останова.

Точки трассировки используются для управления процессом трассировки.

 

Определение. Трассировка – это особый вид отладочного процесса, когда программа запускается и выполняется в автоматическом режиме.

 

Но в процессе работы она оставляет сообщения в специальном окне. Сообщения отражают каждый шаг выполняемой программы. Точки трассировки могут отменить и заново разрешить трассировку на разных участках программы.

Программная среда «AVR Studio» поддерживает трассировку только при работе с отладочной платой ICE50. Это достаточно дорогое устройство. Поэтому мы остановимся лишь на программном отладчике без применения каких-либо аппаратных средств отладки.

Этого вполне достаточно для разработки микропроцессорных устройств практически любой сложности. Аппаратные отладчики необходимы в условиях промышленного производства для ускорения работ по разработке новых изделий.

Любую из вкладок любого вышеописанного окна можно скрыть или, наоборот, превратить в отдельное свободно перемещаемое окно. Для этого достаточно щелкнуть правой клавишей мыши по заголовку соответствующей вкладки и выбрать в открывшемся меню нужный режим. Пункт «Hide» этого меню означает «Скрытое» (невидимое), «Floating» означает «Свободное» (Перемещающееся), «Docking» — «Закрепленное».

Для некоторых пользователей бывает затруднительно вернуть вкладку на место после того, как она превратится в свободно перемещаемое окно. В программе «AVR Studio» используется нестандартный довольно оригинальный механизм управления окнами. Предположим, что мы случайно превратили в плавающее окно вкладку «Breakpoints and Tracepoints» окна номер два. Посмотрим, как можно поставить ее на место.

Если перемещать это окно при помощи мыши (удерживая его за заголовок), то на основной панели программы появляются указатели размещения, как это показано на рис. 1.3. Они представляют собой стилизованные стрелки синего цвета, расположенные по всему полю главного окна программы. Одновременно появляются восемь таких стрелок. Четыре из них объединены в центральный блок, в который включена еще и круглая кнопка посередине.

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

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

Дополнительные окна 1 и 2 позволяют легко изменять свои размеры. Для изменения размера достаточно перетащить границу окна при помощи мыши. Можно даже скрыть любое из этих окон, закрыв все его вкладки. Закрыть вкладку можно двумя способами. Либо щелкнуть по ее «корешку» правой кнопкой мыши, а в появившемся меню выбрать пункт «Hide». Либо щелкнуть мышью в крестик в верхнем правом углу вкладки. Открыть закрытые вкладки можно при помощи меню «View/Toolbars».

Особую роль играет окно 3. Это даже не окно, а оставшаяся часть от главного окна программы. Если закрыть окна 1 и 2, окно 3 займет все пространство программной панели. В окне 3 появляются различные рабочие окна.

Во-первых, это окна с текстами программ на Ассемблере. А, во-вторых, здесь могут появляться окна любых открытых программой файлов. Это могут быть текстовые файлы или файлы других программ. Каждый такой файл по умолчанию открывается в виде отдельного плавающего окна. Для определенности будем называть такие окна текстовыми окнами. Текстовые окна будут «плавать» только внутри окна 3.

 


 


Для каждого нового текстового окна в нижней части окна 3 появляется «корешок», при помощи которого можно быстро перейти к нужному окну, если оно не находится на переднем плане. При двойном щелчке левой кнопкой мыши по заголовку любого текстового окна оно раскроется на всю ширину окна 3. Иногда именно так удобно работать с тестами программ.

В окне 3 можно открывать не только все тексты ассемблерных программ текущего проекта, но и тексты программ других проектов, а также тексты программ, написанных на других языках программирования. Такой прием очень удобен, если нужно переделать программу, написанную для старого микроконтроллера на старой версии Ассемблера, на новый лад. Все открытые текстовые окна запоминаются и затем открываются автоматически при открытии проекта.

Любое текстовое окно имеет подсветку синтаксиса. Разные части помещенного туда текста программы подсвечиваются разными цветами. Так, все операторы Ассемблера высвечиваются голубым цветом. Комментарии выделяются зеленым. Остальной текст (параметры команд, псевдооператоры, метки, переменные и константы) остается черным. Это очень удобно. Если написанный вами оператор окрасился в голубой цвет, то это значит, что вы не ошиблись всинтаксисе. Если вы написали комментарий, но перед текстом комментария забыли поставить точку с запятой, то этот комментарий не окрасится в зеленый цвет. Таким образом, многие ошибки видны уже в процессе написания программы.

Кроме двух вспомогательных и одного основного окна, главная панель программы имеет строку меню (отмечена цифрой 4 на рис. 1.1), а также несколько инструментальных панелей (отмечены цифрой 5). Как и в любой другой программе под Windows, при помощи меню вызываются все функции программы AVR Studio и переключаются все ее режимы. Панели инструментов дублируют часто используемые функции меню.

Создание проекта

 

Предположим, что программа AVR Studio установлена на компьютер, запущена и находится в исходном состоянии (все вкладки окон 1 и 2 пусты, окно 3 не содержит открытых файлов). Приступим к созданию нового проекта.

Для этого выберем в меню «Project» пункт «New Project». На экране появится окно построителя. В поле «Project Type:» выбираем тип будущего проекта. Программа предлагает два варианта:

- проект на Ассемблере (Atmel AVR Assembler);

- проект на языке СИ+ + (AVR GCC).

Выбираем Ассемблер. Затем в поле «Project name:» выбираем имя проекта. Например, Progl. Сразу под полем сименем проекта расположены два элемента выбора режимов – так называемые «Чек-боксы» (Check box). По умолчанию оба чек-бокса выбраны (то есть, в соответствующих квадратиках проставлены «галочки»).

Первый чек-бокс (Create initialize file) определяет, нужно ли автоматически создавать главный программный файл. Если у вас уже есть файл с текстом программы на Ассемблере и вы просто хотите создать проект, а затем подключить туда готовый программный файл, снимите соответствующую «галочку». Если вы создаете проект «с нуля», оставьте «галочку» нетронутой.

Второй чек-бокс (Create folder) определяет, нужно ли автоматически создавать отдельный каталог для данного проекта. Если вы заранее уже создали нужный каталог средствами Windows, снимите пометку. Если нет, оставьте. Следующее поле называется «Initial file». Оно должно содержать имя файла, куда будет записываться текст программы. По умолчанию имя файла уже вписано в это поле. Оно соответствует имени проекта. Рекомендуется оставить его без изменений.

Еще одно поле, требующее нашего вмешательства, – это поле «Location». Здесь вы должны указать путь к тому месту на вашем жестком диске, где будет храниться проект. Путь нельзя ввести непосредственно с клавиатуры. Для изменения пути нужно нажать кнопку справа, на которой в качестве названия поставлено многоточие («...»).

Откроется диалог «Select folder», при помощи которого вы и должны выбрать директорию. Просто войдите в нужную директорию и нажмите кнопку «Select». При выборе директории нужно учитывать значение чек-бокса «Create folder». Если там стоит «галочка», то при выборе в качестве Location каталога «c:\AVR\myprog», программа поместит ваш проект в каталог «c:\AVR\myprog\Progl».

На этом можно закончить работу с первым окном построителя. Но прежде, чем нажимать кнопку «Next>>», обратите внимание, что в нижней части окна имеется еще один чек-бокс. Он называется «Show dialog at startup». При выборе этого элемента диалог создания проекта будет автоматически запускаться каждый раз при запуске программы AVR Studio.

Для перехода кследующему этапу построения проекта нажмите кнопку «Next>>». Содержимое окна построителя изменится. Появятся два больших поля под общим названием «Select debug platform and device» (Выбор отладочной платформы и микроконтроллера). В списке Отладочных платформ («Debug platform») перечислены все отладочные платы, которые поддерживает данная программа.

Мы не будем использовать внешних плат, поэтому выберем пункт «AVR Simulator» (Программный имитатор AVR). В поле «Device» выбираем нужный тип микросхемы. В нашем случае это ATiny2313. Теперь все настройки закончены. Для завершения процесса нажмите кнопку «Finish». После нажатия этой кнопки программа создает проект и записывает его в выбранную вами директорию.

Сразу после создания новый проект состоит всего из двух файлов:

- собственно файл проекта Progl.aps;

- файл, куда будет помещен текст программы на Ассемблере

Progl.asm.

Файл текста программы автоматически открывается в окне 3. Причем он пока абсолютно пустой. Теперь вы можете приступать к набору этого текста. Если речь идет о программе Progl, то просто наберите текст программы, разработанный для выполнения лабораторной работы, например первой.При наборе текста вы можете пользоваться всеми возможностями, какие обычно предоставляет любой современный текстовый редактор.

Встроенный текстовый редактор программы AVRStudio поддерживает все необходимые сервисные функции:

- выделение текстовых фрагментов;

- вырезание;

- копирование;

- вставку;

- перетаскивание мышью;

- поиск и замену, и многое другое.

Для управления всеми этими возможностями используется стандартный интерфейс, знакомый вам по многим текстовым редакторам, в частности, по популярному редактору Microsoft Word. Набранный тест программы не забудьте записать на диск при помощи команды «Save» меню «File» или при помощи соответствующей кнопки на панели инструментов (). Кнопка [ ] позволяет записать сразу все открытые текстовые файлы.

Для программ, электронные версии которых уже имеются в Интернете, проекты создавать не обязательно. Достаточно скачать файл с электронными версиями программ с нужного сайта, например http://book.microprocessor.by.ru, распаковать архив и поместить его содержимое в любую подходящую директорию.

Например, в директорию c:\AVR\myprog\. После распаковки у вас появится целый набор директорий, в каждой из которых помещен свой проект. Причем архив может содержать не только проекты на Ассемблере, но и на СИ. Любой проект на Ассемблере можно открыть при помощи пункта «Open Project» меню «Project».


Трансляция программы

 

Форматы файлов

 

После того, как текст программы набран и записан на жесткий диск, необходимо произвести трансляцию программы. В процессе трансляции создается результирующий (объектный) файл, который представляет собой ту же программу, но в машинных кодах, предназначенную для записи в программную память микроконтроллера. Результирующий файл имеет расширение hex.

Кроме hex -файла транслятор создает еще несколько вспомогательных файлов. И главное, файл с расширением еер. Этот файл имеет точно такую же внутреннюю структуру, как файл hex. А содержит он информацию, предназначенную для записи в EEPROM. Такая информация появляется в том случае, когда в тексте программы переменным, размещенным в сегменте eeprom, присвоены начальные значения. Если в лабораторных работах этого не делать, то файл с расширением еер во всех проектах будет пустой (будет содержать лишь завершающую строку).

Теперь немного разберемся с форматом файлов hex и еер. В обоих случаях применяется так называемый НЕХ-формат, который практически является стандартом для записи результатов транслирования различных программ. Он поддерживается практически всеми трансляторами с любого языка программирования.

В принципе, программисту не обязательно знать структуру этого формата. Достаточно понимать, что в hex -файле определенным способом закодирована программа в машинных кодах. Именно этот файл используется программатором для «прошивки» программной памяти микроконтроллера. Любой программатор поддерживает hex -формат и распознает записанные туда коды автоматически. Приведем краткое описание hex -формата.

 

Формат НЕХ-файла

 

Если вы посмотрите содержимое такого файла при помощи редактора «Блокнот», то вы увидите, что это текстовый файл, в котором данные закодированы в виде текстовых строк. Ниже приведен пример содержимого hex -файла, полученного в результате трансляции одного из вариантов программы Progl:

:020000020000FC

:100000000FE70DBF00E806BD00E006BD01BB0FEF26

:1000100007BB08BB02BB00E808B900B308BBFDCFB3

:00000001FF

Как видите, данный файл состоит из четырех строк. Первая и последняя строки несут служебную информацию. Наличие первой строки необязательно. Система AVR Studio при трансляции программы всегда добавляет в hex -файл первую строку именно такого содержания. Последняя строка – это стандартный конец для любого hex -файла.

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

Строка начинается с двоеточия. Двоеточие – обязательный элемент, который служит для идентификации hex -формата. Все остальные символы в строке – это шестнадцатеричные числа, записанные слитно без пробелов. Отдельные числа отличают по их позиции в строке. Так первые два знака занимает шестнадцатеричное число, означающее длину цепочки.

В нашем случае длина обеих цепочек равна 0x10 (то есть 16) байт. Следующие четыре символа — это начальный адрес, куда эти байты должны быть помещены. Первая цепочка будет размещена в памяти, начиная с нулевого адреса. Вторая цепочка — с адреса 0x0010. Очередные два знака занимает код вида строки. В интересующих нас строках он равен «00», что означает, что эти строки предназначены для записи данных (в первой строке такой код равен «02», а в последней «01»).

Сразу после кода вида строки начинаются собственно данные. Каждый байт данных занимает два знака. Самые последние два символа — это контрольная сумма. Она рассчитывается по специальной формуле с использованием значений всех байтов цепочки и служит для проверки на отсутствие ошибок.

Процедура трансляции

 

Но вернемся к процедуре трансляции. Для того, чтобы запустить процесс трансляции текущего проекта, нужно выбрать в меню «Build» пункт, который тоже называется «Build», или нажать кнопку . Длительность процесса трансляции зависит от размеров программы. Сразу же после начала процесса вкладка «Build» в окне 2 выходит на передний план. В процессе трансляции сюда выводятся служебные сообщения. К таким сообщениям относятся: сообщения о завершении различных этапов трансляции, сообщения об ошибках (Error), а также предупреждения (Warning).

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

Естественно, транслятор не в состоянии найти все виды ошибок. Он находит только явные ошибки, которые можно найти автоматически. К таким ошибкам относятся:

- ошибки синтаксиса (неправильное написание имени команды);

- неверное количество параметров у оператора;

- попытка использования неописанных переменных и т. п.

Например, сообщение «Unknown instruction or macro» означает, что найдена «Неизвестная инструкция или макрокоманда».

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

Все сообщения во вкладке «Build» появляются по мере их поступления. Для наглядности каждое сообщение помечено цветным кружочком в начале строки:

- сообщения об ошибках помечаются кружочком красного цвета;

- предупреждения — желтым кружочком;

- сообщения об успешном выполнении каждого очередного этапа трансляции помечаются зеленым кружочком.

Если сообщения не вмещаются в окно, то они скрываются в верхней его части. Однако, используя полосу прокрутки, их всегда можно просмотреть. В случае успешного завершения процесса трансляции в качестве последнего сообщения выводится статистическая информация (см. раздел 1.2).

Каждое сообщение об ошибке во вкладке «Build» содержит точное указание места в программе, где произошла эта ошибка. При этом указывается

- имя файла;

- номер строки;

- фрагмент текста программы, содержащий ошибку;

- ее расшифровка.

Для того, чтобы быстро перейти к фрагменту программы, содержащему эту ошибку, достаточно двойного щелчка по сообщению об ошибке. Окно с текстом программы выйдет на передний план, и в этом окне автоматически отобразится нужный участок текста. На левой границе окна напротив строки, содержащей ошибку, вы увидите синюю стрелочку – указатель ошибки.

Иногда программа неверно определяет место, где возникла ошибка.Это происходит из-за несовершенства анализатора синтаксиса. Дело в том, что очень сложно разработать идеальный алгоритм анализа ошибок. Если в какой-либо строке транслятор показывает ошибку, а вы ошибок не наблюдаете, посмотрите на предыдущие строки. Возможно, ошибка где-то там.

 




Поделиться:


Последнее изменение этой страницы: 2016-12-16; просмотров: 476; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.227.24.74 (0.009 с.)