Книга по работе с WinAVR и AVR Studio / AVR_06-2010
.pdf
СПРАВОЧНЫЙ МАТЕРИАЛ
|
Роман Абраш |
|
Книга по работе |
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
г. Новочеркасск |
|
с WinAVR и AVR Studio |
|
||||||||||||
|
E-mail: arv@radioliga.com |
|
|
|||||||||||||
|
|
|
|
|
· Regular expression – введенный текст |
|
|
|
|
Кнопка Find Next, как и ранее, позво- |
||||||
|
Продолжение. |
|
|
|
|
|
||||||||||
|
|
|
представляет собой регулярное выражение |
|
|
|
|
ляет найти и выделить очередное вхож- |
||||||||
|
Начало в №1-5/2010 |
|
|
|
|
|
|
|||||||||
|
|
|
для поиска |
|
|
|
|
|
|
дение текста, кнопка Replace – заменить |
||||||
|
|
|
|
|
Дополнительно указывается направле- |
|
|
|
|
найденный текст другим, а кнопка Replace |
||||||
|
Редактирование |
|
ние поиска (Direction) – вверх (Up) или вниз |
|
|
|
|
All – найдет и заменит все вхождения в ука- |
||||||||
|
исходных текстов |
|
(Down). |
|
|
|
|
|
|
занной области. |
|
|||||
|
AVR Studio для исходных текстов |
|
|
Нажатие кнопки Find Next приведет к |
|
|
|
|
Как и ранее, для поиска можно исполь- |
|||||||
|
программ реализует достаточно широ- |
|
тому, что будет найдено и выделено следу- |
|
|
|
|
зовать регулярные выражения. |
||||||||
|
кий набор функций редактирования. |
|
ющее (по отношению к положению курсо- |
|
|
|
|
Как было уже упомянуто, имеется воз- |
||||||||
|
Часть функций стандартна для всех |
|
ра) заданное вхождение искомого текста. |
|
|
|
|
можность поиска текста в нескольких фай- |
||||||||
|
Windows-программ, например, работа с |
|
Если в процессе поиска будет достигнут |
|
|
|
|
лах, для чего служит команда меню «Edit» |
||||||||
|
буфером обмена (копирование, вставка |
|
конец файла – поиск продолжится с нача- |
|
|
|
|
Find in Files. |
|
|||||||
|
и т.п.), есть ряд возможностей, специфич- |
|
ла, т.е. будет происходить по кругу в ука- |
|
|
|
|
|
|
|
|
|
||||
|
ных для работы с исходными текстами |
|
занном направлении. |
|
|
|
|
|
|
|
|
|
|
|
||
|
программ. |
|
|
Если заданного текста не найдено – |
|
|
|
|
|
|
|
|
|
|||
|
По умолчанию некоторые команды ре- |
|
выводится сообщение. |
|
|
|
|
|
|
|
|
|
|
|
||
|
дактора доступны только через кнопки па- |
|
|
Кнопка Mark All приведет к тому, что |
|
|
|
|
|
|
|
|
|
|||
|
нели редактирования, некоторые – через |
|
будут найдены все вхождения указанного |
|
|
|
|
|
|
|
|
Таблица 1 |
||||
|
команды меню и(или) горячие клавиши. |
|
текста в файле и каждая строка с этим тек- |
|
|
|
|
|
|
|
|
|
||||
|
Действие |
|
Сочетание |
|||||||||||||
|
Если некоторые команды вам удобнее вы- |
|
стом будет помечена закладкой. |
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
клавиш |
|||||||||
|
|
|
|
|
|
|
|
|
|
|||||||
|
полнять при помощи горячих клавиш или, |
|
|
Поиск по регулярному выражению – это |
|
|
|
|
|
|
||||||
|
Перемещение по тексту |
|||||||||||||||
|
наоборот, при помощи мыши (через кноп- |
|
интересная опция, которая позволяет осу- |
|
|
|
|
|
|
|
|
|
||||
|
На символ влево |
|
|
|||||||||||||
|
ки), следует перенастроить AVR Studio, как |
|
ществлять поиск по весьма сложным алго- |
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
||||||
|
На символ вправо |
|
|
|||||||||||||
|
было рассказано в главе «Настройка интер- |
|
ритмам. О формате регулярных выраже- |
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
||||||
|
фейса IDE». |
|
ний22 можно почитать, например, в [4]. Что- |
|
|
|
|
На строку вверх |
|
|
||||||
|
Список всех команд редактора и соот- |
|
бы немного пролить свет на эту возмож- |
|
|
|
|
На строку вниз |
|
|
||||||
|
ветствующих горячих клавиш по умолчанию |
|
ность, приведем ряд примеров регулярных |
|
|
|
|
|
|
|
||||||
|
Прокрутка текста на строку вверх |
|
Ctrl – |
|||||||||||||
|
приведен в таблице 1. |
|
выражений, которые можно использовать |
|
|
|
|
|
|
|
|
|
||||
|
Прокрутка текста на строку вниз |
|
Ctrl – |
|||||||||||||
|
Редактор тесно интегрирован с отлад- |
|
в своей работе: |
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
В конец строки |
|
End |
|||||||
|
чиком, поэтому содержит ряд команд, не- |
|
|
|
|
|
|
|
|
|
|
|||||
|
обходимых при отладке. Хотя этими коман- |
|
|
Нужно найти |
Регулярное |
|
|
|
|
|
В начало строки |
|
Home |
|||
|
|
|
выражение для этого |
|
|
|
|
|
|
|||||||
|
дами можно пользоваться и во время вво- |
|
|
|
|
|
|
|
|
|
На страницу вниз |
|
PgDn |
|||
|
|
Любой элемент массива, |
|
|
|
|
|
|
|
|||||||
|
да и редактирования текста программы, |
|
|
|
|
|
|
|
На страницу вверх |
|
PgUp |
|||||
|
|
адресуемый целочисленной |
\[\s*\d*\s*\] |
|
|
|
|
|
|
|||||||
|
рассматриваются они в главе «Компиляция |
|
|
|
|
|
|
|
||||||||
|
|
|
константой |
|
|
|
|
|
|
В конец документа |
|
Ctrl – End |
||||
|
и отладка». |
|
|
|
|
|
|
|
|
|
|
|||||
|
|
Функцию, имя которой |
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
\b\s*_+\w*\s*\( |
|
|
|
|
|
В начало документа |
|
Ctrl – Home |
||||||
|
В редакторе можно пользоваться |
|
|
|
|
|
|
|
||||||||
|
|
начинается с подчеркивания |
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
K началу следующего слова |
|
Ctrl – |
||||||
|
всплывающим по нажатию правой кнопки |
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
||||||
|
мыши меню. Оно содержит достаточно мно- |
|
|
Приведенные примеры регулярных вы- |
|
|
|
|
Kначалу предыдущего слова |
|
Ctrl – |
|||||
|
го команд, часть из которых доступна толь- |
|
ражений достаточно «интеллектуальны». |
|
|
|
|
|
|
|
||||||
|
Вставка табуляции |
|
Tab |
|||||||||||||
|
ко в режиме отладки (и рассматривается в |
|
Например, первое выражение позволит най- |
|
|
|
|
|
|
|
|
|
||||
|
Переход к предыдущей позиции |
|
Shift –Tab |
|||||||||||||
|
соответствующей главе), другая часть ко- |
|
ти текст «[1]», «[128]» и «[ 0 ]», но проигно- |
|
|
|
|
|
||||||||
|
|
|
|
|
|
табуляции |
|
|||||||||
|
|
|
|
|
|
|
|
|||||||||
|
манд доступна всегда, но имеет смысл толь- |
|
рирует «[a]» или «[i++]». Второе выражение |
|
|
|
|
|
|
|
|
|
||||
|
Операции с закладками |
|||||||||||||||
|
ко для режима отладки. |
|
обнаружит функцию «_demo(void)», но про- |
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
||||||
|
Включить/отключить закладку в |
|
|
|||||||||||||
|
|
|
|
игнорирует «func_demo()». |
|
|
|
|
|
Ctrl – F2 |
||||||
|
|
|
|
|
|
|
|
текущей строке |
|
|||||||
|
Поиск и замена текста |
|
|
|
|
|
|
|
||||||||
|
|
|
Поиск с заменой осуществляется при |
|
|
|
|
|
|
|
|
|
||||
|
Переход к следующей закладке |
|
F2 |
|||||||||||||
|
При нажатии Ctrl-F или выполнения ко- |
|
помощи команды меню «Edit» Replace. |
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
||||||
|
Переход к предыдущей закладке |
|
Shift – F2 |
|||||||||||||
|
манды меню «Edit» Find открывается окно |
|
Окно для этой команды похоже на рассмот- |
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
||||||
|
Удалить все закладки |
|
Ctrl – Shift – F2 |
|||||||||||||
|
поиска текста в текущем файле: |
|
ренное ранее: |
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Поиск и замена |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
Поиск |
|
Ctrl – F или Alt – F9 |
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
Поиск следующего вхождения |
|
F3 |
||
|
|
|
|
|
|
|
|
|
|
|
|
текста |
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
Поиск предыдущего вхождения |
|
Shift – F3 |
||
|
|
|
|
|
|
|
|
|
|
|
|
текста |
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
В поле-списке Find what можно ввести |
|
|
Небольшое отличие заключается в том, |
|
|
|
|
Выделение и удаление |
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
Выделить все |
|
Ctrl – A |
|||||||||||||
|
(или выбрать из выпадающего списка один |
|
что имеется два поля-списка: первое Find |
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
||||||
|
Удалить слово правее курсора |
|
Ctrl – Del |
|||||||||||||
|
из вариантов предыдущего поиска) текст, |
|
what для поиска текста, второе Replace |
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
||||||
|
Удалить слово левее курсора |
|
Ctrl – BkSp |
|||||||||||||
|
который следует найти. Если в момент вы- |
|
with – для указания текста, который будет |
|
|
|
|
|
||||||||
|
зова команды поиска курсор находился в |
|
заменять найденный. Кроме того, вместо |
|
|
|
|
Удалить строку |
|
Ctrl – L |
||||||
|
каком-либо слове, оно автоматически вво- |
|
направления поиска указывается диапазон |
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
Shift + команды |
|||||||||||
|
дится в это поле. |
|
поиска (Replace In): только внутри выделен- |
|
|
|
|
Выделить |
|
перемещения по |
||||||
|
Далее следует задать режимы поиска: |
|
ного текста (Selection) или во всем файле |
|
|
|
|
|
|
|
|
тексту |
||||
|
|
|
|
|
|
|
|
|
|
|
||||||
|
· Match whole words only – искать со- |
|
(Whole file). |
|
|
|
|
|
|
Отменить выделение |
|
Esc |
||||
|
впадение только целых слов |
|
|
|
|
|
|
|
|
|
|
|
Дополнительно |
|
||
|
· Match case – искать с учетом регист- |
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
22 Регулярные выражения вполне заслуживают |
|
|
|
|
Отменить правку |
|
Alt – BkSp |
||||||
|
ра символов |
|
отдельной книги. |
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
Отменить отмену правки |
|
Ctrl – Shift – BkSp |
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
5 4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Радиолюбитель – 06/2010 |
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
СПРАВОЧНЫЙ МАТЕРИАЛ
Окно поиска в файлах более простое, |
процесс. Иногда требуется процесс очис- |
использование какой-либо разной внешней |
содержит всего три поля для ввода: |
тки (Clean), т.е. удаления всех ранее со- |
периферии, или предполагается, что про- |
· Find what – текст, который надо найти |
зданных объектных файлов, чтобы заново |
ект будет портирован на другое семейство |
· In files/filetype – шаблон просматри- |
перекомпилировать их все. |
микроконтроллеров и т.п. В каждом конк- |
ваемых файлов (например, «*.c» - исходные |
Традиционно процесс компиляции и |
ретном случае наверняка будут иметься |
тексты программ на Си) |
сборки проекта автоматизируется при по- |
небольшие вариации исходных текстов всех |
· In folder – папка, в которой осуществ- |
мощи так называемого make-файла, в ко- |
модулей, параметров конфигурации и т.п. |
ляется просмотр указанных файлов. |
тором на особом скриптовом языке описа- |
Программист стоит перед выбором: или |
Опция Search only in files in project ог- |
ны все действия, которые нужно последо- |
создавать набор почти одинаковых фай- |
раничивает поиск файлами, составляющи- |
вательно выполнить, в результате процесс |
лов для каждого случая, или каким-то об- |
ми текущий проект, отключая указанную |
напоминает исполнение команд в bat-фай- |
разом учесть разные варианты в одних и |
папку. |
ле. Однако, среда AVR Studio позволяет от- |
тех же файлах (способы для этого уже рас- |
При поиске в файлах нельзя использо- |
казаться от использования этого подхода, |
смотрены – см. «Директивы условной ком- |
вать регулярные выражения. Введенный |
предоставляя альтернативу гораздо более |
пиляции»). Но остается открытым вопрос, |
текст ищется с учетом регистра символов. |
привычную для Windows – графический |
как упростить процесс выбора нужного ва- |
Все найденные вхождения помещаются в |
интерфейс. Фактически, генерация и испол- |
рианта. Вот для этого как раз и существу- |
окне вывода результатов поиска примерно |
нение make-файла осуществляется, одна- |
ет так называемая конфигурация проекта, |
в таком виде: |
ко она скрыта от пользователя. |
которая подразумевает наличие несколь- |
|
|
ких вариантов настроек для одного и того |
|
Параметры |
же проекта. |
|
компиляции проекта |
По умолчанию всегда существует одна |
|
Ранее уже упомина- |
конфигурация – default (по умолчанию). |
|
лись команды в главном и |
Если требуется создать вариант проекта, |
|
контекстном меню проек- |
предположим для разных типов микрокон- |
|
та, выполняющие на- |
троллеров – нужно создать нужное количе- |
В каждой строке списка указывается |
стройку параметров компиляции. Рассмот- |
ство конфигураций (далее будет сказано, |
полный путь к файлу, в котором найден ука- |
рим диалоговое окно, которое при этом от- |
как). Для каждой конфигурации задается |
занный текст, затем указывается номер |
крывается. |
свой тип микроконтроллера, свои уникаль- |
строки с вхождением текста и сама строка. |
|
ные (если нужно) подключаемые файлы, |
Двойной щелчок на строке в этом окне при- |
|
определяются константы, макросы и т.п. Все |
ведет к тому, что будет открыт нужный |
|
это автоматически сохраняется при сохра- |
файл, и курсор будет установлен в нужную |
|
нении проекта. Когда потребуется – следу- |
строку. |
|
ет выбрать нужную конфигурацию, т.е. сде- |
В окне результатов поиска можно вы- |
|
лать ее текущей, и выполнить очистку и |
полнить ряд других действий при помощи |
|
пересборку проекта. |
всплывающего по нажатию правой кнопки |
|
Вернемся к диалогу настроек. При на- |
мыши контекстного меню: |
|
жатии кнопки Edit Configurations (редакти- |
· Clear – очистить окно |
|
рование конфигураций) открывается окно |
· Copy – скопировать |
|
следующего вида: |
выделенную строку в бу- |
|
|
фер обмена |
|
|
· Font – изменить |
Это окно настройки параметров компи- |
|
шрифт для текста в окне |
ляции и сборки проекта. |
|
· Default Font – уста- |
В левой части его имеется область для |
|
новить шрифт по умолча- |
выбора групп параметров в виде графичес- |
|
нию |
ких символов, а остальная часть служит для |
|
· Help on Output – |
настройки соответствующих опций. |
|
просмотреть справку об |
Всего 5 групп параметров: |
|
окне |
· General – основные |
|
Опции Info (информация), Warning (пре- |
· Include Directories – подключаемые |
|
дупреждения), Error (ошибки) и Timestamp |
директории |
|
(дата и время) позволяют указать, какого |
· Libraries – библиотеки |
|
рода информация должна отображаться в |
· Memory Settings – настройки парамет- |
|
этом окне. |
ров памяти |
|
Компиляция и отладка |
· Custom Options – параметры пользо- |
В нем перечислены все существующие |
вателя |
конфигурации (в данном случае – един- |
|
Так как проект может состоять из не- |
|
ственная default). Выбрав нужную из спис- |
скольких модулей, различают компиляцию |
General – основные |
ка, вы можете ее удалить кнопкой Delete |
модуля и сборку (построение) проекта. |
Рассмотрим опции в группе основных |
или переименовать кнопкой Rename. Ниже |
Сборка осуществляется компоновщиком |
по порядку их размещения в окне – сверху |
списка имеется поле ввода названия новой |
из уже откомпилированных объектных мо- |
вниз. |
конфигурации – если вы введете там ее имя, |
дулей, а сама компиляция исходных тек- |
Первой следует выбор текущей конфи- |
то активируется кнопка Add Configuration |
стов в объектные файлы выполняется ком- |
гурации проекта – Active Configuration. Вы |
(добавить конфигурацию). Нажатие этой |
пилятором. |
можете выбрать из выпадающего списка |
кнопки добавит вашу конфигурацию к спис- |
Каждый модуль может быть откомпи- |
наименование нужной конфигурации или, |
ку. Не допускается задавать имя конфигу- |
лирован отдельно. Сборка проекта вызы- |
нажав на кнопку Edit Configurations, доба- |
рации с пробелами или с символами кирил- |
вает автоматическую перекомпиляцию тех |
вить новую или изменить существующие. |
лицы. |
исходных файлов, которые изменились с |
Несколько слов о том, что такое кон- |
Все параметры проекта, рассматрива- |
момента предыдущей сборки. Если исход- |
фигурация, которая уже упоминалась не- |
емые далее, относятся исключительно к |
ные тексты модуля не изменялись – при |
сколько раз ранее. Разрабатываемый про- |
выбранной конфигурации. Если их не- |
сборке используется ранее полученный |
ект может быть рассчитан на использова- |
сколько – придется настроить все парамет- |
объектный файл, что существенно ускоряет |
ние разных микроконтроллеров, или же на |
ры отдельно для каждой. |
|
|
|
5 5 |
Радиолюбитель – 06/2010 |
|
|
|
|
|
|
СПРАВОЧНЫЙ МАТЕРИАЛ
|
Следующей идет опция Use External |
|
Short Enums – короткие списки. Опция |
что компилятор использует первый найден- |
|||||
Makefile (использовать внешний make- |
указывает компилятору, что следует исполь- |
ный подходящий файл. |
|||||||
файл). Если эта опция активирована, то |
зовать для хранения перечисляемых кон- |
|
|||||||
будет использован указанный в соответ- |
стант24 тип short int. |
|
|
Libraries – библиотеки |
|||||
ствующем поле make-файл. Использование |
|
Как правило, все эти 4 опции можно |
|
||||||
этой возможности подразумевает наличие |
оставить по умолчанию (они активирова- |
|
|||||||
этого самого make-файла, правильно со- |
ны), и только в случае возникновения оши- |
|
|||||||
здать который – целая наука. В подавляю- |
бок компиляции, связанных с ними, отклю- |
|
|||||||
щем большинстве реальных практических |
чать. |
|
|
|
|
||||
случаев вам это не потребуется. |
|
Завершают этот раздел параметров |
|
||||||
|
Далее предлагается указать имя выход- |
проекта три опции генерации компилятором |
|
||||||
ного файла проекта – Output File Name и |
вспомогательных файлов25. |
|
|
|
|||||
директории, куда он будет помещен – Output |
|
Create Hex File – создать Hex-файл. |
|
||||||
File Directory. По умолчанию имя выходно- |
Если вы планируете использовать програм- |
|
|||||||
го файла совпадает с именем проекта (но с |
матор для «прошивки» микроконтроллера |
|
|||||||
расширением elf), а имя директории – с |
вашей программой – включите эту опцию, |
|
|||||||
именем выбранной конфигурации. Сама ди- |
т.к. формат Hex – де-факто стандартный |
|
|||||||
ректория по умолчанию создается в папке |
формат данных для всех типов программа- |
Группа настроек библиотек служит для |
|||||||
проекта. Как правило, нужды изменять зна- |
торов. |
|
|
|
указания компоновщику использовать гото- |
||||
чение этих параметров не возникает. |
|
Generate Map File – генерировать файл |
вые библиотечные файлы (архивы) или |
||||||
|
Далее следует группа важных парамет- |
«карты памяти». Карта памяти позволит |
объектные модули. Параметры по умолча- |
||||||
ров компиляции проекта. |
детально рассмотреть результат работы |
нию подойдут в большинстве случаев. Од- |
|||||||
|
Device – выбор модели микроконтрол- |
компилятора: выяснить, какие переменные |
нако, если необходимо, вы можете добавить |
||||||
лера. Из выпадающего списка вы можете |
в каких областях памяти находятся, сколь- |
пути поиска библиотек (аналогично рас- |
|||||||
выбрать любую поддерживаемую компиля- |
ко места занимают и т.п. Бывает очень по- |
смотренному способу в предыдущей главе), |
|||||||
тором модель. Учтите, что выбранная здесь |
лезно при «глубинной» отладке или опти- |
а так же указать конкретные варианты |
|||||||
модель контроллера не обязательно долж- |
мизации. Отключение этой опции ускоряет |
объектных модулей стандартных библиотек, |
|||||||
на совпадать с той, что была указана в мо- |
компиляцию. |
|
|
которые следует использовать при сборке |
|||||
мент создания проекта (см. «Мастер про- |
|
Generate List File – генерировать лис- |
вашего проекта. Для этого в списке |
||||||
ектов»), однако во избежание недоразуме- |
тинг. Листинг – это файл, в котором одно- |
Available Link Objects (доступные для ком- |
|||||||
ний не следует допускать такого разнобоя23. |
временно виден исходный текст на языке |
поновки объекты) нужно выбрать требуе- |
|||||||
|
Frequency – тактовая частота контрол- |
Си и его ассемблерный эквивалент, а так |
мый файл и, нажав кнопку Add Library (до- |
||||||
лера. Вы должны указать в герцах значе- |
же машинные коды соответствующих инст- |
бавить библиотеку), добавить его в список |
|||||||
ние тактовой частоты, с которой предпола- |
рукций и т.п. информация. Может быть по- |
прикомпоновываемых объектов Link with |
|||||||
гается использовать микроконтроллер. Этот |
лезен при отладке или при изучении рабо- |
These Objects. Кнопка Remove Object по- |
|||||||
параметр важен для правильной генерации |
ты компилятора. Отключение этой опции |
зволяет удалить файл из числа прикомпо- |
|||||||
кода некоторых библиотечных функций. В |
ускоряет компиляцию. |
|
|
новываемых, кнопки Move Up (перемес- |
|||||
программе это значение всегда доступно в |
|
|
|
|
|
тить выше) и Move Down (переместить |
|||
виде константы F_CPU (т.е. эту символьную |
|
Include Directories – подключаемые ди- |
ниже) изменяют порядок файлов в списке. |
||||||
константу можно использовать при написа- |
ректории |
|
|
|
Наконец, кнопка Add Object позволит до- |
||||
нии программы). Рекомендуется всегда за- |
|
|
|
|
|
бавить файл, которого нет в левом списке, |
|||
давать этот параметр. |
|
|
|
|
|
к списку справа. |
|||
|
Optimization – уровень оптимизации. |
|
|
|
|
|
|
||
Можно выбрать из выпадающего списка |
|
|
|
|
|
Memory Settings – настройки парамет- |
|||
любой доступный вариант. По умолчанию |
|
|
|
|
|
ров памяти |
|||
устанавливается режим наиболее сильной |
|
|
|
|
|
|
|||
оптимизации по размеру кода – Os. |
|
|
|
|
|
|
|||
|
Unsigned Chars – опция, указывающая |
|
|
|
|
|
|
||
компилятору, что тип char должен рассмат- |
|
|
|
|
|
|
|||
риваться как беззнаковый. В скобках при- |
|
|
|
|
|
|
|||
водится параметр командной строки ком- |
|
|
|
|
|
|
|||
пилятора для этой же цели. Следует с осто- |
|
|
|
|
|
|
|||
рожностью пользоваться этой опцией! |
|
|
|
|
|
|
|||
|
Unsigned Bitfields – беззнаковые бито- |
|
Эта группа опций представлена един- |
|
|||||
вые поля. Опция влияет на структуры типа |
ственным (и по умолчанию пустым) спис- |
|
|||||||
битовое поле24. |
ком директорий, в которых компилятор пос- |
|
|||||||
|
Pack Structure Members – упаковывать |
ледовательно будет искать файлы, подклю- |
|
||||||
поля структур. Опция указывает компиля- |
ченные директивами #include. Список по |
|
|||||||
тору использовать так называемый «упако- |
умолчанию пуст неспроста – указывать до- |
Группа параметров памяти позволяет |
|||||||
ванный» формат хранения в памяти данных |
полнительные пути имеет смысл лишь в том |
управлять пользовательскими секциями |
|||||||
полей структуры. В некоторых случаях это |
случае, когда вы имеете пакеты библиотек |
(см. далее «Секции памяти»). В верхней ча- |
|||||||
может вызвать несовместимость с исход- |
или исходных файлов модулей сторонних |
сти окна приводятся сведения о памяти выб- |
|||||||
ными текстами, написанными для других |
разработчиков (или свои собственные уни- |
ранного микроконтроллера (Part |
|||||||
компиляторов, хотя в большинстве случаев |
версальные «заготовки»). |
|
|
Information): |
|||||
дает экономию памяти данных. |
|
Добавить директорию можно при помо- |
Flash Size – объем памяти программ |
||||||
|
|
|
щи кнопки |
, удалить – |
, а кнопками |
Sram Size – объем ОЗУ |
|||
|
23 Мастер проекта задает модель для отладки, в |
|
и |
можно изменить порядок про- |
Eeprom Size – объем EEPROM |
||||
то время как компилятор может генерировать код для |
смотра директорий компилятором. Учтите, |
Ниже располагается список заданных |
|||||||
любой другой модели. Разумеется, ожидать адекват- |
|||||||||
|
|
|
|
|
пользователем секций в виде таблицы, со- |
||||
ного поведения отладчика при разных моделях контрол- |
|
|
|
|
|
||||
лера не приходится. |
|
|
|
|
|
стоящий из трех столбцов: Memory Type |
|||
|
|
|
|
|
|||||
|
24 Эта возможность языка Си не рассматривалась |
|
25 Фактически, эти файлы генерируются дополни- |
(тип памяти), Name (имя секции) и Address |
|||||
в кратком введении в язык. Принципиально, это никак |
тельными утилитами, входящими в комплект WinAVR, од- |
||||||||
(стартовый адрес секции). Добавить свою |
|||||||||
не скажется на эффективности ваших программ. |
нако с точки зрания программиста это несущественно. |
||||||||
5 6 |
Радиолюбитель – 06/2010 |
|
СПРАВОЧНЫЙ МАТЕРИАЛ
секцию вы можете, на- |
изменению поведения компилятора и соот- |
|
генерации различных выходных файлов с |
жав кнопку Add, при |
ветственно отразится в других разделах на- |
|
аналогичным «перенаправлением» выводи- |
это откроется следую- |
строек. Некоторые опции не имеют интерак- |
|
мых ими сообщений. |
щее окно: |
тивных аналогов, но могут серьезно влиять |
|
В итоге у пользователя создается впе- |
Поля ввода в этом |
на компиляцию. В главе «Опции командной |
|
чатление, что AVR Studio сама выполняет |
окне совпадают с наи- |
строки» будет рассказано о параметрах ко- |
|
компиляцию и т.п. действия. |
менованиями столбцов в таблице: из выпа- |
мандной строки, которые вы можете допол- |
|
Запуск компилятора сопровождается |
дающего списка можно выбрать тип памя- |
нительно добавить к этому списку. Делает- |
|
выводимой командной строкой в окне ин- |
ти (память программ Flash, ОЗУ Sram или |
ся это вводом соответствующей строки в |
|
формации на закладке «Build», отмечаемой |
EEPROM), затем следует ввести имя сек- |
поле под правым списком и нажатию кноп- |
|
зеленым кружочком. |
ции и, в заключение, ее стартовый адрес. |
ки Add (добавить). Если требуется изменить |
|
Если компиляция модуля прошла без |
Учтите, что компоновщик считает, что сек- |
введенную ранее строку – надо выделить |
|
ошибок, то в окне появляется сообщение |
ция ОЗУ начинается с адреса 0x800000, а |
ее в списке и нажать кнопку Edit, она ско- |
|
«Build succeeded with 0 Warnings...» – ком- |
секция EEPROM – с адреса 0x810000, т.е. к |
пируется в поле редактирования (не забудь- |
|
пиляция успешна, 0 предупреждений. Ра- |
фактическому адресу в пространстве ОЗУ |
те затем снова нажать Add для возврата |
|
зумеется, количество предупреждений мо- |
или EEPROM нужно прибавить соответству- |
строки в список). |
|
жет быть и ненулевым. В том случае, если |
ющее смещение. |
В нижней части имеется группа опций |
|
выполнялась сборка проекта, дополнитель- |
На добавленную секцию затем можно |
External Tools, которая позволяет изменить |
|
но будет выведены сведения о полученном |
сослаться в программе, указав соответству- |
инструментарий, необходимый для компи- |
|
объектном модуле проекта, и окно будет |
ющий атрибут. |
ляции, указав другие программы компиля- |
|
|
Удалить секцию из таблицы можно на- |
тора avr-gcc и утилиты make. Категоричес- |
|
|
жатием кнопки Remove. |
ки не рекомендуется изменять значения по |
|
|
В нижней части окна имеется опция уп- |
умолчанию. |
|
|
равления участком памяти, выделяемого |
|
|
|
для организации стека – Specify Initial Stack |
Сборка проекта |
|
|
Address. Если активировать эту опцию, то |
Рассмотрим меню «Build», ранее толь- |
|
|
можно задать адрес начала области ОЗУ, |
ко упоминавшееся. |
|
|
выделяемой под стек (дополнительно см. |
Меню состоит из следующих пунктов: |
|
|
«Динамическое распределение памяти»). |
· Build (собрать) |
|
|
|
– выполняет сборку |
|
|
Custom Options – параметры пользова- |
проекта, компили- |
|
иметь следующий вид: |
теля |
руя при необходи- |
|
В приведенной на рисунке итоговой |
|
мости обновленные |
|
сводке указывается объем занятой памяти |
|
исходные файлы |
|
микроконтроллера attiny13: программа за- |
|
модулей. |
|
нимает 558 байт (что составляет 54,5% от |
|
· Rebuild All (пересобрать все) – выпол- |
|
всего имеющегося пространства), данные |
|
няет принудительную перекомпиляцию всех |
|
(секций «.data», «.bss» и «.noinit») занима- |
|
файлов проекта с последующей сборкой. |
|
ют 5 байтов (что составляет 7,8% всей дос- |
|
· Build and Run (собрать и запустить) – |
|
тупной памяти). Эти сведения помогут вам |
|
выполняет сборку проекта и включает ре- |
|
сделать выводы о ресурсоемкости вашего |
|
жим отладки, т.е. запускает программу на |
|
проекта. |
|
исполнение. |
|
|
|
· Compile (компилировать) – выполня- |
|
Ошибки компиляции |
|
ет компиляцию только одного текущего ре- |
|
Если на этапе компиляции обнаружива- |
|
дактируемого файла (модуля) |
|
ются ошибки в тексте модуля, выводится со- |
Последняя группа параметров позво- |
· Clean (очистить) – удаляет все резуль- |
|
ответственно иное сообщение «Build failed |
ляет пользователю добавить опции к ко- |
таты предыдущих компиляций всех моду- |
|
with 3 errors and 0 warnings...» – компиля- |
мандной строке компилятора и компонов- |
лей |
|
ция неудачна, 3 ошибки и 0 предупрежде- |
щика (Custom Compilation Options). Это |
· Export Makefile – сохраняет в make- |
|
ний (и снова – число ошибок и предупреж- |
дает максимальную гибкость в настройке |
файле все настройки компиляции для пос- |
|
дений может быть иным). Подобное сооб- |
параметров компиляции, однако требует |
ледующего использования компилятором в |
|
щение обязательно предваряется указан- |
достаточно высокой квалификации |
консольном режиме. |
|
ным количеством сообщений об ошибках |
пользователя. |
Выполнение любой команды меню, кро- |
|
(помеченных красным кружочком) и предуп- |
Слева находится окно со списком всех |
ме последнего, заключается в автоматичес- |
|
реждениях (помеченных желтым кружоч- |
файлов проекта и парой «глобальных» эле- |
ки (и незаметно для пользователя) выпол- |
|
ком), например, так: |
|
|||
ментов – All files (все файлы) и Linker |
няющихся следующих эта- |
|
|
Options (параметры компоновщика). Спра- |
пах: |
|
|
ва окно со списком параметров командной |
1. Компиляция при помо- |
|
|
строки, используемых для обработки выб- |
щи консольного компилятора |
|
|
ранного в левом списке элемента. Т.е. если |
avr-gcc.exe одного или всех |
|
|
вы желаете, чтобы все файлы компилиро- |
модулей с «перехватом» |
|
|
вались с одним и тем же набором пара- |
всей выводимой компилято- |
|
|
метров – выберите слева вариант All files. |
ром информации и выводом |
|
|
По умолчанию в списке справа перечис- |
ее в окно информации на зак- |
|
|
лены все опции, которые были заданы на |
ладке «Build» (окно Output – см. «Рабочее |
|
На рисунке показано, что при компиля- |
других страницах диалога настройки в «ин- |
пространство»). |
|
ции модуля «encoder.c» в функции этого |
терактивном режиме» – присмотритесь: вы |
2. При отсутствии ошибок на первом |
|
модуля «enc_rotate» обнаружены следую- |
увидите –funsigned-char, которая соот- |
этапе (и при необходимости) – запуск ком- |
|
щие три ошибки (как правило, одна ошиб- |
ветствует опции Unsigned Chars из пер- |
поновщика с аналогичным перехватом вы- |
|
ка может порождать несколько следующих |
вой группы, указание константы F_CPU и |
водимой информации. |
|
за ней): в строке 36 найден ранее не опи- |
т.п. Удаление (кнопкой Remove) элемен- |
3. При отсутствии ошибок компонов- |
|
санный символ EN_A_DN (остальные две |
та списка приведет к соответствующему |
ки – запуск вспомогательных утилит для |
|
ошибки – это собственно не ошибки, а |
|
|
|
5 7 |
Радиолюбитель – 06/2010 |
|
|
|
|
|
|
СПРАВОЧНЫЙ МАТЕРИАЛ
продолжение описания первой ошибки26 ). |
объем является следствием неудачно выб- |
|
компилятором, как char (см. «Констан- |
|||
После сообщений об ошибках следует стро- |
ранного режима оптимизации, реже – |
|
ты»). Таким образом, операция инверсии |
|||
ка-уведомление о том, что сборка проекта |
следствием крайне неаккуратного програм- |
|
~2 из char получит int, т.е. число со зна- |
|||
невозможна, т.к. есть ошибка. |
мирования. Следует помнить, что очень |
|
ком. Переменная var имеет тип char, т.е. |
|||
|
К сожалению, привести список всех со- |
требовательными к памяти программ явля- |
|
меньший, чем int – чтобы значение «влез- |
||
общений об ошибках, распознаваемых ком- |
ются любые алгоритмы с использованием |
|
ло» в переменную, оно укорачивается пу- |
|||
пилятором, нет никакой возможности – он |
чисел с плавающей точкой – только добав- |
|
тем отбрасывания старшего байта – об |
|||
слишком обширен. Чтобы более-менее ори- |
ление в программу единственной операции |
|
этом компилятор и предупреждает. В |
|||
ентироваться в них, следует хоть немного |
деления с дробным результатом может уве- |
|
этом конкретном случае никакой опасно- |
|||
знать английский язык – фразы весьма при- |
личить объем программы более чем на 1,5 |
|
сти нет, потому что поведение компиля- |
|||
митивны, перевод их не вызывает сложно- |
килобайта! Наконец, ошибка может быть и |
|
тора совпадает с намерением програм- |
|||
стей буквально спустя две-три попытки. |
в выборе микроконтроллера с заведомо не- |
|
миста получить просто инверсное пред- |
|||
|
Процесс работы над проектом, как пра- |
достаточным объемом памяти. |
|
ставление байта 2, однако поручиться, |
||
вило, обязательно сопровождается нео- |
|
|
что такое же предупреждение во всех |
|||
днократной компиляцией модуля с после- |
Предупреждения компилятора |
|
случаях определенно безопасно, нельзя. |
|||
дующим исправлением ошибок. Чтобы этот |
Предупреждения компилятора – это |
|
|
По возможности следует стремиться к |
||
процесс был более удобен – AVR Studio ре- |
сообщения о найденных в тексте програм- |
|
тому, чтобы предупреждений при компиля- |
|||
ализует удобный механизм: двойной щел- |
мы «подозрительных» или потенциально |
|
ции не возникало. |
|||
чок мышкой на строке с сообщением об |
опасных мест, неоднозначностей, допуска- |
|
|
|
||
ошибке приводит к тому, что в редакторе |
емых синтаксисом языка и т.п. В некоторых |
|
|
Средства виртуальной отладки |
||
откроется нужный файл (если он не был |
случаях предупреждение – это завуалиро- |
|
|
Допустим, компиляция проекта прошла |
||
еще открыт), а курсор будет установлен в |
ванная ошибка, но чаще это просто «очист- |
|
без ошибок и предупреждений. Означает ли |
|||
строку с ошибкой, причем сама строка бу- |
ка совести» компилятора за слишком ши- |
|
это, что программа заработает в реальной |
|||
дет дополнительно помечена синей стре- |
рокие вольности, допускаемые языком Си. |
|
схеме? Вовсе нет! Записанная без ошибок |
|||
лочкой – вам останется лишь исправить |
В окне информации предупреждения |
|
неверная инструкция к действию не может |
|||
ошибку. |
компилятора выводятся на закладке |
|
привести к успешному результату. То есть |
|||
|
Отдельно следует оговорить случай, |
«Build», и отмечаются желтыми значками: |
|
отсутствие синтаксических ошибок, прове- |
||
|
|
|||||
когда после компиляции программы выяс- |
|
|
|
ряемых компилятором, вовсе не оз- |
||
няется, что размер объектного модуля слиш- |
|
|
|
начает отсутствия логических или |
||
ком велик, чтобы уместиться в доступной |
|
|
|
алгоритмических ошибок програм- |
||
памяти микроконтроллера. Окно результа- |
|
|
|
миста. Отладка – это как раз про- |
||
тов компиляции при этом внешне выглядит, |
|
|
|
цесс поиска логических и алгорит- |
||
как при верной компиляции, что не должно |
|
|
|
мических ошибок. |
||
вводить в заблуждение: |
|
|
|
AVR Studio предлагает програм- |
||
|
|
|
|
|
|
мисту удобный способ проследить |
|
|
|
Как и при ошибках, двойной щелчок на |
|
за тем, как его программа исполняется мик- |
|
|
|
|
строке с предупреждением перенесет кур- |
|
роконтроллером, при этом программист |
|
|
|
|
сор в строку, где кроется причина этого со- |
|
может не только наблюдать за процессом, |
|
|
|
|
общения. |
|
но и вмешиваться в него! |
|
|
|
|
Опасны ли предупреждения? Скорее |
|
|
Реализуется это следующим образом: |
|
|
|
следует признать, что они таят в себе не- |
|
AVR Studio эмулирует27 работу микроконт- |
|
|
|
|
которую опасность именно за счет своей |
|
роллера, т.е. имитирует исполнение им про- |
|
|
|
|
«сомнительности», т.е. компилятор «чув- |
|
граммы. Благодаря тому, что мощность со- |
|
|
|
|
ствует», что тут что-то не так, но назвать |
|
временных компьютеров очень велика, осо- |
|
|
|
|
это ошибкой – «язык» у него не повора- |
|
бых проблем проимитировать работу куда |
|
|
Прекрасно видно, что программа «тре- |
чивается (извините за столь одушевлен- |
|
более слабого AVR не возникает. При этом |
||
бует» наличия 201% памяти, что, разумеет- |
ную образность). Например, на рисунке |
|
AVR Studio заполняет «виртуальные» реги- |
|||
ся, невозможно. В том, что это действитель- |
самое первое предупреждение гласит «../ |
|
стры и ячейки памяти значениями из про- |
|||
но ошибка, вы убедитесь в момент, когда |
bp_c.c:75: warning: return type of “main” |
|
граммы, исполняя написанные программи- |
|||
попытаетесь приступить к отладке програм- |
is not “int”» – тип функции main – не int. |
|
стом строки. Содержимое любой перемен- |
|||
мы (см. «Средства виртуальной отладки»): |
Опасно ли это? 100% нет – для микро- |
|
ной в программе, и даже любого регистра |
|||
вместо начала отладки произойдет пере- |
контроллеров совершенно без разницы, |
|
или ячейки памяти, программист может в |
|||
ключение информационного окна на зак- |
какое значение возвращает функция |
|
любой момент изменить, проимитировав |
|||
ладку «Message»: |
main. А несколько следующих предуп- |
|
любые варианты поступления в программу |
|||
|
|
|
реждений уже иного рода: «../ |
|
внешних данных. Такое «виртуальное» ис- |
|
|
|
|
display.c:41: warning: large integer |
|
полнение программы позволяет найти по- |
|
|
|
|
implicitly truncated to unsigned type» |
|
чти все отклонения поведения программы |
|
|
|
|
– большое число укорочено до разме- |
|
от задуманного. |
|
|
|
|
ра unsigned int. Это уже должно на- |
|
|
Рассмотрим меню «Debug», команды |
|
|
|
сторожить: согласитесь, что если чис- |
|
которого управляют всем процессом от- |
|
|
В отмеченной желтым кружком строке |
ло 2L будет укорочено до int – это не |
|
ладки. |
||
сказано, что «Содержимое объектного фай- |
страшно, но вот если 24765134 укоротить |
|
|
На рисунках (см. на следующей стра- |
||
ла превышает размер программной памя- |
до int – это вряд ли может устроить. По- |
|
нице) показаны варианты меню «Debug» |
|||
ти выбранного микроконтроллера», а сле- |
этому надо внимательно проанализиро- |
|
соответственно для выключенного режима |
|||
дующая строка, отмеченная красным, ука- |
вать строки в программе, приведшие к |
|
отладки и для включенного. |
|||
зывает на ошибку загрузки этого объект- |
предупреждениям. В частности, в случае |
|
|
|
||
|
|
|
||||
ного файла. |
на рисунке, предупреждения были выз- |
|
|
27 Наряду с термином «эмуляция» применяется и тер- |
||
|
Борьба с размером программы – слож- |
ваны строками типа char var = ~2. Поче- |
|
мин «симуляция». Разделение между ними скорее наду- |
||
|
|
манное: первый чаще применяют в тех случаях, когда ис- |
||||
ный процесс. Иногда слишком большой |
му так вышло? Все просто: по умолча- |
|
||||
|
пользуются аппаратные средства, имитирующие действия |
|||||
|
|
|
нию результат любой операции в Си, если |
|
микроконтроллера или его узлов, второе – при использо- |
|
|
|
|
иное не оговорено, трактуется как int, а |
|
вании чисто программных методов имитации. В настоя- |
|
|
|
|
||||
|
26 Особенность «перехвата» сообщений – каждая |
|
щей книге разницы между терминами не делается, т.к. в |
|||
строка сообщения воспринимается как новая ошибка. |
константа 2 по умолчанию трактуется |
|
русском языке это слова-синонимы. |
|||
5 8 |
Радиолюбитель – 06/2010 |
|
СПРАВОЧНЫЙ МАТЕРИАЛ
|
микроконтроллер, т.е. вынуждает програм- |
|
|
му начаться заново. |
|
|
· Step Into – «шаг внутрь». Пошаго- |
|
|
вое исполнение программы с заходом в |
|
|
функции. |
|
|
· Step Over – «шаг поверх». Пошаго- |
|
|
вое исполнение программы, причем обра- |
|
|
щения к функциям исполняются, как «одна |
|
|
команда». |
|
|
· Step Out – «шаг наружу». Команда |
|
|
вызывает исполнение всех оставшихся |
|
|
строк (операторов) в функции до выхода из |
|
|
нее, т.е. остановка происходит в момент |
В левой части окна имеется древовид- |
|
возврата значения функции. |
ный список групп настроек эмулятора. Ко- |
|
· Run to Cursor – «дойти до строки с |
личество этих групп зависит от того, какой |
|
курсором». Команда запускает программу |
именно способ отладки был избран при со- |
|
на исполнение с текущего места и останав- |
здании проекта: мы рассматриваем про- |
|
ливает, как только исполнение дойдет до |
граммный симулятор, а для аппаратных |
|
строки, в которой находился курсор в мо- |
средств отладки могут быть доступны и |
|
мент подачи команды. |
другие группы параметров. |
|
· Auto Step – автопошаговое исполне- |
В базовом варианте доступно две груп- |
|
ние. Программа начинает исполняться в |
пы: Device selection – выбор устройства и |
|
режиме «автоматического исполнения» ко- |
Stimuli and logging – стимуляция и прото- |
|
манд Step, подаваемых через определен- |
колирование. |
|
ные интервалы времени (можно регулиро- |
В группе Device Selection можно выб- |
|
вать). |
рать тип эмулируемого микроконтроллера |
|
· Next Breakpoint – перейти к следую- |
из раскрывающегося списка Device. Важ- |
|
щей точке останова. |
но понимать, что обязательно нужно все- |
|
· New Breakpoint – подменю команд ус- |
гда указывать одинаковые типы и в настрой- |
|
тановки точек останова. |
ках компилятора и здесь, иначе отладка |
|
Возможно три |
будет некорректной или вообще невозмож- |
|
варианта точек ос- |
ной. По умолчанию такое соответствие |
|
тановки: Program |
обеспечивается автоматически. |
|
Breakpoint – оста- |
Так же можно указать значение такто- |
|
новка по месту в программе, Data |
вой частоты контроллера при отладке: выб- |
|
Breakpoint – остановка по изменению дан- |
рать из списка Frequency или ввести зна- |
|
ных (переменных) в программе и Program |
чение вручную. Для корректной эмуляции |
|
Tracepoint – точка трассировки программы |
нужно так же обеспечить совпадение с час- |
|
(не является точкой останова по своей сути). |
тотой, указанной при компиляции. |
|
· Toggle Breakpoint – включение/выклю- |
Наконец, если программа содержит сек- |
|
чение точки останова в строке программы |
цию загрузчика (Boot loader), можно и нуж- |
|
· Remove all Breakpoints – удалить все |
но указать адрес начала этой секции и ука- |
|
точки останова из программы |
зать режим поведения при сбросе микро- |
|
· Trace – подменю управления режима- |
контроллера (отмеченная опция Enable |
|
ми трассировки программы (рассматрива- |
Boot reset заставит после сброса испол- |
|
ется в последующих главах). |
няться функцию загрузчика). |
|
· Stack Monitor – команда зарезерви- |
Если микроконтроллер имеет возмож- |
|
рована |
ность подключения внешнего ОЗУ, стано- |
· Start Debugging – запуск отладки. Ко- |
· Show Next Statement – показать стро- |
вится доступной опция Enable external |
манда переводит AVR Studio в режим эму- |
ку, которая должна исполняться. Команда |
Memory, включающая поддержку эмулято- |
ляции микроконтроллера, при этом могут |
позволяет быстро переместиться к очеред- |
ром дополнительного внешнего ОЗУ. |
автоматически появиться на дисплее новые |
ной исполняющейся строке из любого мес- |
В правой части окна присутствует об- |
окна и панели. |
та программы. |
ласть, в которой кратко приведены основ- |
· Stop Debugging – остановка отладки. |
· Quickwatch – добавление переменной |
ные характеристики выбранного микрокон- |
Команда завершает режим отладки, воз- |
в окно просмотра. Добавляется переменная, |
троллера. Следует помнить, что максималь- |
вращая вид интерфейса к исходному. |
на которой установлен текстовый курсор в |
ное значение тактовой частоты, указанное |
· Run – исполнение. Команда запускает |
тексте программы. |
здесь (и даже в технической документации) |
программу на исполнение. Обычно этой ко- |
· Select Platform and Device – выбрать |
не является ограничением для программ- |
манде должны предшествовать команды |
отладочную платформу и микроконтроллер. |
ной эмуляции – вы можете задать значение |
установки точек останова, иначе возмож- |
Позволяет изменить на время отладки на- |
тактовой частоты хоть 100 МГц – процесс |
ности наблюдения за ходом работы про- |
стройки, сделанные при создании проекта. |
отладки от этого никак не изменится. |
граммы практически не будет (во время |
· Up/Download Memory – сохранить/заг- |
Группа Stimuli and logging отвечает за |
исполнения содержимое отладочных окон |
рузить область памяти. |
режим имитации и протоколирования вне- |
не обновляется). |
· AVR Simulator Options – настройки |
шних сигналов на портах микроконтролле- |
· Break – приостановка (пауза) испол- |
эмулятора AVR. |
ра и подробно рассматривается в главе |
нения. Команда активируется только во вре- |
В первую очередь рассмотрим после- |
«Имитация входных сигналов и наблюдение |
мя исполнения программы по команде Run |
дний пункт меню – настройку параметров |
выходных». |
и позволяет остановить программу прину- |
эмулятора (данный пункт доступен только |
|
дительно. После остановки исполнения об- |
в режиме отладки), а остальные команды |
Ресурсы |
новляется содержимое окон отладки. |
будут рассмотрены более подробно далее, |
4. http://www.rsdn.ru/article/alg/regular.xml |
· Reset – сброс. Команда позволяет про- |
в контексте различных способов и режимов |
|
имитировать поступление сигнала Reset на |
отладки (см. следующую колонку): |
Продолжение в №7/2010 |
|
|
|
|
|
|
|
|
|
5 9 |
Радиолюбитель – 06/2010 |
|
|
|
|
|
|
