Программная среда «AVR Studio»

Фирма Atmel, разработчик микроконтроллеров AVR, очень хорошо позаботилась о сопровождении своей продукции. Для написания программ, их отладки, трансляции и прошивки в память микроконтроллера фирма разработала и бесплатно распространяет специализированную среду разработчика под названием «AVR Studio». Инсталляционный пакет этой инструментальной программы можно свободно скачать с сайта фирмы. Адрес страницы для скачивания программ:

http://www.atmel.ru/Software/Software.htm.

Программная среда «AVR Studio» — это мощный современный программный продукт, позволяющий производить все этапы разработки программ для любых микроконтроллеров серии AVR. Пакет включает в себя специализированный текстовый редактор для написания программ, мощный программный отладчик.

Кроме того, «AVR Studio» позволяет управлять целым рядом подключаемых к компьютеру внешних устройств, позволяющих выполнять аппаратную отладку, а также программирование («прошивку») микросхем AVR.

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

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

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

Кроме файла aps, проект должен содержать хотя бы один файл с текстом программы. Такой файл имеет расширение asm. Недостаточно просто поместить файл asm в директорию проекта. Его нужно еще включить в проект. Как это делается, мы увидим чуть позже. Проект может содержать несколько файлов asm. При этом один из них является главным. Остальные могут вызываться из главного при помощи оператора .include. На этом заканчивается список файлов проекта, которые создаются при участии программиста.

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

Главная панель программы «AVR Studio»

На рис. 5.1 показано, как выглядит главная панель программы «AVR Studio». На самом деле «AVR Studio» имеет очень гибкий интерфейс, и внешний вид может сильно отличаться от варианта, показанного на рисунке. Но мы будем рассматривать случай, когда выбраны установки по умолчанию.

Рис. 5.1. Программа AVR Studio

Главная панель программы AVR Studio разделена на три основных окна. На рис. 5.1 они обозначены цифрами 1, 2 и 3. Первые два окна — вспомогательные. Окно 1 предоставляет нам полную информацию о текущем проекте. По умолчанию это окно включает в себя три вкладки. «Корешки» этих вкладок вы можете видеть в нижней части окна.

Первая вкладка называется «Info». Она содержит справочную информацию по используемому микроконтроллеру, такую как описание векторов прерываний, описание выводов для разных корпусов и краткое описание регистров.

Следующая вкладка называется «Project». Она содержит полную информацию по текущему загруженному проекту. Информация представлена в виде дерева. Разные ветви этого дерева описывают все исходные и результирующие файлы проекта, все метки, процедуры и присоединяемые файлы.

Последняя вкладка окна номер 1 называется «I/O View» (просмотр ввода—вывода). Это самая полезная вкладка. На ней в графическом виде показаны все ресурсы микроконтроллера:

- порты ввода—вывода;

-  таймеры;

-  компараторы;

- АЦП;

-  регистры общего назначения и т. д.

Вся информация также представлена в виде дерева. Каждая «ветвь» этого дерева — это отдельный элемент. Если какой-либо элемент состоит из других элементов, то его можно раскрыть и увидеть эти элементы.

Элементы, появляющиеся в результате раскрытия ветви, в свою очередь также могут быть раскрыты, если они имеют свое содержимое. На рис. 5.2 в увеличенном виде показано дерево ресурсов микроконтроллера АТinу2313. На рисунке несколько ветвей специально раскрыты, чтобы можно было увидеть их состав.

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

На рис. 5.2 для наглядности раскрыты ветви всех трех портов ввода—вывода и регистры, связанные с EEPROM. Вы можете видеть:

-  полный состав управляющих регистров для каждого из устройств;

- их названия и адреса;

-  состав и название каждого бита (если биты имеют свои названия).

Для наглядности на рис. 5.2 раскрыта ветвь, соответствующая регистру EECR, и вы можете видеть все его биты.

Рис. 5.2. Окно ресурсов микроконтроллера

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

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

В нижней части главной панели находится второе вспомогательное окно (окно 2 на рис. 5.1). Это окно служит, в основном, для вывода различных сообщений. Оно также содержит ряд вкладок. По умолчанию их четыре. Первая вкладка называется «Build». На вкладке «Build» отражается процесс трансляции. На эту вкладку выводятся сообщения об различных этапах трансляции, сообщения о синтаксических ошибках и различные предупреждения (Warnings).

Если трансляция заканчивается нормально (отсутствуют критические ошибки), то сюда же выводятся статистические данные о полученном результирующем коде. Эти данные показывают размеры и процент использования всех видов памяти микроконтроллера. Например, после трансляции нашего примера №11 (листинг 4.21) программа выдаст следующее сообщение:

Сообщение означает, что в программном сегменте использованы ячейки с адреса 0x000000 по адрес 0x0004f2. При этом собственно код программы занимает 508 байт. Данные в программной памяти занимают 758 байт. Всего использовано в программной памяти 1266 байт (сумма предыдущих двух чисел). Размер программной памяти для этого микроконтроллера составляет 2048 байт. Процент использования программной памяти 61,8%.

Точно такие же сведения приведены для памяти данных (ОЗУ) и для EEPROM. Естественно, что два последних вида памяти не содержат программного кода. Поэтому в соответствующем столбике стоят нули. Последняя строка содержит сообщения об ошибках. В данном случае сообщение переводится так: «Ассемблирование прошло успешно, 0 ошибок, 0 предупреждений».

Следующая вкладка второго окна называется «Message». Здесь выводятся разные системные сообщения о загрузке модулей программы и т. п.

Третья вкладка второго окна называется «Find in Files» (поиск в файлах). В этом окне отражаются результаты выполнения команды «Поиск в Файлах». Эта команда позволяет производить поиск заданной последовательности символов сразу во всех файлах проекта. По окончании поиска во вкладке «Find in Files» отражаются все найденные вхождения с указанием имени файла и строки, где найдена искомая последовательность.

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

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

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

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

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

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

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

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

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

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

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

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

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

Рис. 5.3. Перемещение окна

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

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

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

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

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

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

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

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

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

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

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

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

Выбираем Ассемблер. Затем в поле «Project name:» выбираем имя проекта. Например, Prog1. Сразу под полем с именем проекта расположены два элемента выбора режимов. Так называемые «Чек-боксы» (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». После нажатия этой кнопки программа создает проект и записывает его в выбранную вами директорию.

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

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

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

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

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

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

-  вырезание;

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

-  вставку;

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

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

Для управления всеми этими возможностями используется стандартный интерфейс, знакомый вам по многим текстовым редакторам, в частности, по популярному редактору 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-файла, полученного в результате трансляции программы Prog1 (листинг 4.1):

:020000020000FC

:100000000FE70DBF00E806BD00E006BD01BB0FEF26

:1000100007BB08BB02BB00E808B900B308BBFDCFB3

:00000001FF

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

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

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

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

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

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

Но вернемся к процедуре трансляции. Для того, чтобы запустить процесс трансляции текущего проекта, нужно выбрать в меню «Build» пункт, который тоже называется «Build», или нажать кнопку _. Длительность процесса трансляции зависит от размеров программы-

Сразу же после начала процесса вкладка «Build» в окне 2 выходит на передний план.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

- имя файла;

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

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

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

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

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

Отладка программы Ошибки алгоритма и его реализации

Если вы исправили все ошибки и добились отсутствия предупреждений, то это значит, что программа успешно оттранслирована. В принципе, вы можете записывать ее в программную память и пробовать ее работу «в железе». Но в большинстве случаев отсутствие синтаксических ошибок еще не означает отсутствие ошибок как таковых. Можно написать команду правильно, да не ту. Но самая главная неприятность — ошибки алгоритма или его реализация-Программист может упустить какой-либо шаг или неправильно поставить условие. Всех возможных ошибок алгоритма не перечесть. Но в результате программа может работать неправильно либо совсем не работать. По этой причине перед тем, как записывать программу в программную память микроконтроллера, необходимо попытаться выявить все эти ошибки.

Вообще, процесс написания программы процентов на 60—70 состоит из поиска и устранения ошибок. И основное количество ошибок выявляется при отладке программы. Все программные примеры, приведенные в этой книге, прежде чем появились на ее страницах, прошли процесс отладки.

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

С большим юмором подошли к этому вопросу англичане. По-английски процесс отладки называется Debug (Дебаг). Слово «Bug» — означает блоха. A «Debug» — это процесс избавления от ошибок или процесс ловли блох. Именно этим вам и придется заняться.

03 августа 2010
Что еще почитать
Комментарии к новости
Цитировать
В этой теме обсуждается материал Программная среда «AVR Studio».

Фирма Atmel, разработчик микроконтроллеров AVR, очень хорошо позаботилась о сопровождении своей продукции. Для написания программ, их отладки, трансляции и прошивки в память микроконтроллера фирма разработала и бесплатно распространяет специализированную среду разработчика под названием «AVR Studio». Инсталляционный пакет этой инструментальной программы можно свободно скачать с сайта фирмы. Адрес страницы для скачивания программ:

Администратор

66 сообщений
Редактировать / Цитировать
Уважаемы Как собрать AVR
Гор
Редактировать / Цитировать
 Добрый день! Очень позновательная статья, былоб хорошо с элюстраций с описанием побольше. У мнея есь вопрос?
ATMEGa128 
RXD0/(PDI) PE0,(TXD0/PDO) PE1,и (MOSI) PB2,(MISO) PB3 у них
ввод-вывод интерфейс одинаковый, ISP?

Александр

Написать ответ
Ваше имя

Ваш e-mail

Сообщение

Введите текст, который вы видите на картинке слева.

Регистр не важен. Нажмите, если не можете прочитать

Предварительный просмотр

12 мая Двухкомпонентная система трекинга зрительно-моторной координации может быть использована для оптимизации производительности спортсменов.
10 апреля da Vinci Xi — новая версия хирургической системы da Vinci.
3 марта Водонепроницаемый смартфон от WickedLeak по цене всего 19900 рупий.
3 февраля Компания Huawei выпустила для европейского рынка новый смартфон на базе ОС Android, получивший название Ascend Y530.
Сдесь можно скачать Iq тест совершенно бесплатно.