IDE AVR32StudiDIo
34.1. Общее описание
Программный пакет IDE AVR32Studio 2.0, который использовал автор при написании этой книги, поддерживает разработку автономных (без ОС) приложений для устройств семейств AT32AP7000 и AT32UC3, а также приложений под ОС Linux для устройств AT32AP7000. AVR32- Studio так- также
поддерживает все инструментальные средства производства Atmel, раз-Atmelmel, раз-, разработанные
для архитектуры AVR32, включая JTAG--адаптеры JTAGICE--mmkII и AVR ONE!, а также отладочные платы EVK1100, EVK1101, NGW100, STK1000, STK1002 и STK600.
IDEAVR32Studio содержит законченный набор компонент в число ко- AVR32Studio в которых
входят:
менеджер проектов с конкурентной системой версий (CVS),•
редактор языка C/C++ с поддержкой выделения синтаксиса и за•
вершенного кода,
отладчик, поддерживающий управление пошаговым выполнением • на уровне команд исходного кода, а также точки останова,
средства мониторинга регистров, памяти и подсистем ввода--вывода • МК,
средства конфигурирования и управления целевой системой.•
Как можно видеть из этого перечня, собственного компилятора C в со- в составе
AVR32Studio нет. По этой причине для компоновки и отладки про- По и проектов
AVR32Studio использует дополнительные программные инструмен- AVR32Studio 32Studio инструментальные
средства из пакета AVR32 GNU Toollchain (компилятор, отладчик, компоновщик, набор необходимых вспомогательных программ и библиотек).
Компилятор GNU C (GCC) используется в AVR32Studio для компиля- в AVR32Studio 32Studio компиляции
и компоновки программ на C/C++, а отладчик GNU (GDB) — для от- GDBB) — отладки
приложения в целевой системе. Утилиты Atmelmel AVR32 (avr32program и avr32gdbproxy) используются для развертывания и отладки автономных приложений, а также для задания напряжения питания целевой системы и корректировки синхронизации генератора. В ходе своего запуска на компьютере
хоста AVR32Studio проверяет наличие этих программ и выдает со- AVR32Studio 32Studio и соответствующее
сообщение об их наличии (рис. 34.1) или сообщение об ошибке, если не находит их (рис. 34.2).
Таким образом, для обеспечения возможности подготовки в AVR32Stu-AVR32Stu-32Stu-Studio
исходных кодов на C/C++ на компьютер хоста необходимо установить не только дистрибутив IDE AVR32Studio (файл AVR32Studio-2.x.x-Setup.exe), но и дистрибутив AVR32 GNU Toollchain (файл avr32-gnu-toolchain-
687
34.2. Пользовательский интерфейс IDE
2.x.x.exe). Оба этих файла доступны для бесплатного скачивания на сайтах www.atmelmel.comm, www.argussoft.ru. Пакет AVR32Studio предлагается для скачивания
в двух версиях: под ОС Linux и под ОС Windows.
Для увеличения своих функциональных возможностей AVR32� Studio до- допускает
простую интеграцию с дополнительными программами сторонних производителей.
При первом после инсталляции запуске AVR32Studio по умолчанию открывается окно Welcome, из которого пользователь может ознакомиться
с особенностями функционирования всех элементов IDE при помощи встроенной справочной системы. Окно Welcome можно также открыть, выбрав
в главном меню IDE команду Help>Welcome.
Несмотря на наличие встроенной справочной системы AVR32Studio, на взгляд автора, документирована довольно невнятно. Содержащиеся в справочной
системе сведения отрывочны, структурно разобщены и не предоставляют
пользователю законченного руководства.
34.2. Пользовательский интерфейс IDE
34.2.1. Основные понятия и определения
При работе в AVR32Studio используется понятие рабочая область (Workbeench). Каждая рабочая область содержит одну или более перспектив.
Перспективы, в свою очередь, содержат обозрения (Vieew) и редакторы
Рис. 34.1. Сообщение AVR32Studio о наличии компонент AVR32 GNU Toollchain
Рис. 34.2. Сообщение AVR32Studio об отсутствии компонент AVR32 GNU Toollchain
688
Глава 34. IDE AVR32Studio
(�Editor), доступ к которым возможен через соответствующие меню и ин-Editor), ин-), к и инструментальные
панели. В любой момент времени на рабочем столе может существовать несколько окон рабочей области.
Для проектов, папок, и файлов, которые содержатся в рабочей области, введен собирательный термин ресурсы. Навигационные обозрения обеспечивают
иерархическое представление ресурсов и позволяют открывать их для редактирования. Другие инструментальные средства могут отображать и обрабатывать эти ресурсы по--другому.
Каждому типу ресурсов, существующему в рабочей области, сопоставляется
определенный тип объектов из файловой системы компьютера хоста.
Файлам сопоставляется файлы.•
Папкам сопоставляются каталоги в файловой системе. В рабочей • области папки содержатся в проектах или в других папках. Папки могут содержать файлы и другие папки.
Проекты содержат папки и файлы. Проекты используются для ком•
поновки, управления, совместного использования и организации ресурсов.
Подобно папкам проекты сопоставляются каталогам в файловой
системе. Когда пользователь создает проект, он определяет местоположение этого проекта в виде каталога в файловой системе.
Пользовательский проект может быть открытым или закрытым. Когда проект является закрытым, он не может быть изменен в рабочей области. Ресурсы закрытого проекта не будут появляться в окне рабочей области, но, тем не менее, они будут содержаться в файловой системе. Закрытые проекты требуют для хранения меньшего количества памяти. У закрытого проекта по сравнению с открытым меньше время формирования.
Замечание автора. Под формированием проекта разработчики AVR32Studio подразумевают компиляцию его компонент с последующей компоновкой.
Когда проект является открытым, его структура может быть изменена и пользователь может видеть его содержимое в рабочей области.
Папки и файлы могут быть связаны с местоположениями в файловой системе вне местоположения проекта. Эти папки и файлы называются в AVR32Studio связанными ресурсами.
Каждое окно рабочей области содержит одну или более перспектив. Перспектива определяет начальный набор и размещение обозрений в окне рабочей области. В пределах окна каждая перспектива совместно использует
один и тот же набор редакторов. Каждая перспектива предоставляет пользователю набор функциональных возможностей, нацеленных на выполнение
определенного типа задач, или работает с определенными типами ресурсов. Например, перспектива C/C++ объединяет обозрения, которые обычно используются при редактировании исходных файлов, а перспектива
Debug содержит обозрения, которые используются при отладке программ.
При работе с различными проектами в рабочей области пользователь
может производить переключение перспектив.
Перспективы могут содержать собственные меню и инструментальные панели. Они определяют видимые наборы действий, которые пользователь может задействовать, чтобы настроить перспективу. Для открытия нуж34.2.
Пользовательский интерфейс IDE 689
ной пользователю перспективы в окне рабочей области следует выбрать в меню Window>Open Perspective. Чтобы увидеть список всех поддерживаемых
перспектив, следует выбрать Window>Open Perspective>Other..., после чего откроется окно Open Perspective, как показано на рис. 34.3. Когда перспектива
открывается, в области заголовка окна рабочей области появляется
название этой перспективы. Кроме того, на панели быстрого доступа добавляется иконка, позволяющая быстро переключиться на предыдущую перспективу, открытую в том же самом окне.
По умолчанию перспектива открывается в том же самом окне, что и предыдущая. Если у пользователя имеется необходимость открывать ее в новом окне, то следует выбрать в меню Window>Preferences, а затем выбрать
General>Perspectives, после чего откроется окно выбора и настройки перспектив Perspectives, как показано на рис. 34.4.
Обозрения поддерживают редакторы и обеспечивают альтернативные представления, а также способы управления информацией в рабочих областях.
Например, проводник проектов (Project Explorer) и другие навигаРис.
34.3. Окно открытия перспектив Opeen Peerspeectivee
Рис. 34.4. Окно выбора и настройки перспектив Peerspeectivees
690 Глава 34. IDE AVR32Studio
ционные обозрения управляют отображением проектов и других ресурсов, с которыми работает пользователь.
Обозрения также имеют свои собственные меню. Чтобы сделать это меню видимым, следует кликнуть на иконке в левой части области заголовка
обозрения. Некоторые обозрения также имеют свои собственные инструментальные панели.
Обозрения можно отображать отдельно или стыковать с другими обозрениями.
Пользователь может изменять размещение перспективы, открывая
и закрывая обозрения и закрепляя их в различных позициях в окне рабочей области.
Большинство перспектив в рабочей области состоит из области редактора
и одного или более обозрений. Пользователь может связать определенный
редактор с определенными типами файлов. Например, когда пользователь
открывает файл для редактирования, дважды кликнув на его имени в одном из навигационных обозрений, то связанный с ним редактор открывается
в рабочей области. Если для данного ресурса нет никакого связанного
редактора, то рабочая область будет пытаться запустить внешний редактор, не входящий в данную рабочую область.
В каждый момент времени может быть открыто любое количество редакторов,
но только один из них может быть активен. Область главного меню и инструментальная панель окна рабочей области содержат иконки операций, соответствующих активному редактору.
Позиции табуляции в области редактора указывают имена ресурсов, которые в настоящее время открыты для редактирования. Звездочка (*)
Рис. 34.5. Вид окна рабочей области AVR32Studio с открытым по умолчанию
окном Welelcomeme
34.2. Пользовательский интерфейс IDE 691
у имени ресурса указывает, что редактор еще не сохранил произведенные в ресурсе изменения.
По умолчанию редакторы размещены в стеке в области редактора, но пользователь можете выбрать их неперекрывающееся расположение, чтобы рассматривать исходные файлы одновременно.
Поле слева от границы области редактирования в открытом для редактирования
окне файла может содержать значки, которые помечают ошибки,
предупреждения или проблемы, обнаруженные системой. Значки также
появляются при создании пользователем закладок, добавления точек останова или зарегистрированных примечаний.
Архив конкурентной системы версий (� CVS) представляет собой по-CVS) по-) постоянную
память данных, которая координирует многопользовательский доступ к проектам и их содержанию. Проекты в архиве могут иметь две формы: неизменный или поддающийся изменению. Связь между архивом и клиентами рабочей области возможна по местным или глобальным сетям.
В настоящее время рабочие области поддерживают два внутренних опознавательных протокола CVS: pseerveer и ssh.
Вид окна рабочей области AVR32Studio показан на рис. 34.5. По умол- 34.55. По умолчанию
в нем открывается перспектива AVR32 C/C++.
34.2.2. Создание нового проекта
Первое, что следует сделать в начале разработки приложения AVR32, — — это создание нового проекта. Для этого в меню File окна рабочей области следует выбрать опцию New..., а затем выбрать тип проекта, который планируется
создать (AVR32 C Project, AVR32 C++ Project или AVR32 C Project from a template), как показано на рис. 34.6. Если выбрать один из явно предлагаемых
в меню типов, то по умолчанию будет создаваться проект вида Manageed mmakee, который не предусматривает самостоятельное управление со стороны пользователя mmake-e-файлом проекта (см. ниже). При этом откроется
окно создания нового проекта (рис. 34.7), в котором необходимо
Рис. 34.6. Порядок создания нового проекта
692 Глава 34. IDE AVR32Studio
заполнить поля названия проекта, типа платформы (МК семейства AVR32) и типа проекта.
При создании нового проекта на языке C в меню выбирается цепочка File>New...>AVR32 C Project. В открывшемся окне вводятся имя проекта и тип МК � AVR32. При выборе типа проекта для семейства AT32UC3 мо-AVR32. При AT32UC3 может
быть выбран только тип AVR32 Standalone Executable (автономная исполняемая
программа). Для семейства AT32AP7 помимо этого могут быть выбраны различные типы проектов для ОС Linux: AVR32 Linux Shared Li- LLinux LLibrary,
AVR32 Static LLibrary или AVR32 Executable.
При создании нового проекта на языке C на базе шаблона в меню вы- в выбирается
цепочка File>New...>AVR32 C Project from a template. Далее в от-в открывшемся
окне вводятся имя проекта и тип МК AVR32, а также из пред-AVR32, а предлагаемых
списков выбираются тип проекта (шаблона) и доступный для этого типа программный инструментарий.
Рис. 34.7. Окно создания нового проекта
Рис. 34.8. Создание нового проекта на языке C на базе примера
693
34.3. Работа с проектами в IDE
При создании нового проекта на языке � C на базе примера в меню выби- в выбирается
цепочка File>New...>Project...>Examples. Далее в открывшемся окне в папке Examples из предлагаемого списка можно выбрать пример, на базе которого планируется создать проект, как показано на рис. 34.8. Затем следует
кликнуть на кнопке Next, после чего вводится имя проекта. При выборе
примера автоматически производится и выбор аппаратной платформы,
поскольку каждый из предлагаемых примеров сопоставлен в списке конкретной платформе (МК и отладочной плате производства Atmelmel).
В заключение создания проекта любого типа необходимо кликнуть на кнопке Finish. После этого на жестком диске компьютера будет создан каталог
с выбранным именем проекта. Путь к такому каталогу может быть задан или изменен пользователем при каждом новом запуске AVR32Studio в окне выбора рабочей области (рис. 34.9). В этот каталог можно помещать исходные файлы проекта (исходные тексты, заголовки и т. п.) и открывать их в окне редактора AVR32Studio, выбирая в меню File>Open File и используя
соответствующие перспективы. Как уже упоминалось, AVR32Studio обеспечивает поддержку редактирования кода, написанного на C/C++. Ре-C/Ре-/C++. Ре-++. Редактор
C/C++ запускается автоматически, когда пользователь открывает для редактирования исходный файл на C/C++. При необходимости можно изменить заданные по умолчанию настройки редактора, выбрав в меню Window>Preferences, а затем C/C++>Editor.
34.3. Работа с проектами в IDE
34.3.1. Системы формирования проектов
Каждый вновь создаваемый проект должен быть сформирован. AVR32Studio предлагает две системы формирования. Первая из них на- называется
системой управления формированием (MBS) и имеет два опера-MBBS) опера-) и операционных
режима: внутреннее (непосредственное) формирование (Inteernall builld) и управление формированием (Manageed mmakee). Режим Manageed mmakee автоматически создает mmakee--файл для формируемого проекта, используя задаваемые пользователем параметры настройки формирования. Этот режим
требует указания пути к утилите Makee. Последняя будет также использовать
задаваемые параметры настройки формирования. При этом все команды toollchain выполняются непосредственно. Указанный режим является наиболее типичным и задается по умолчанию. Именно этот режим
используется при создании проектов с помощью мастеров проекРис.
34.9. Окно выбора рабочей области
694
Глава 34. IDE AVR32Studio
та C Projeect Wizard и C++ Projeect Wizard (две верхние позиции в меню File>New... на рис. 34.6).
В случае, если создается проект с непосредственным формированием,
эти мастера проекта уже не применяются. Создание такого проекта производится путем выбора в меню File>New...>Project... с последующим выбором нужного мастера проекта, как показано на рис. 34.10. Например, для проектов на � C и C++ можно выбрать мастера проекта с управлени- и C++ управлени-++ с управлением
формированием (AVR32 C Project, AVR32 C++ Project) или с непосредственным
(простым) формированием (AVR32 C Project(Make), AVR32 C++ Project(Make)). При этом необходимо учитывать, что в последнем случае некоторые примеры из архива AVR32-SoftwareFramework для МК AT32UC3Bработать не будут, поскольку они требуют разрешения управ-32UC3BB управления
формированием.
34.3.2. Запуск формирования
Конечным результатом формирования (компоновки) проекта является двоичный
файл с расширением elf, который по умолчанию создается в одной из автоматически создаваемых AVR32Studio папок Debug или Release данного проекта. Старт формирования проекта производится путем выбора в меню Project>Build Project или нажатием на клавиши Ctrl+B, когда позиция табуляции
данного проекта выбрана курсором в окне обозрения проводника проектов, содержащихся в рабочей области (Project Explorer). Ход процесса
Рис. 34.10. Создание проекта с непосредственным формированием
Рис. 34.11. Ход процесса формирования проекта
34.3. Работа с 695 проектами в IDE
формирования будет отображаться графической шкалой, как показано на рис. 34.11. Результаты формирования и возможные проблемы можно видеть соответственно в окнах Console и Problems обозрения перспективы Debug, как показано на рис. 34.12.
При старте формирования AVR32� Studio по умолчанию автоматиче- автоматически
сохранит файлы проекта. Если это по каким--то причинам нежелательно,
можно отказаться от автоматического сохранения, выбрав в меню Window>Preferences, а затем General>Workspace, где отключить опцию Save automatically before build.
34.3.3. Управление целевой системой
В общем случае, при разработке приложений на базе МК целевая система состоит из трех компонент: адаптера, отладочной платы и собственно МК. В нашем случае в качестве адаптера используется JTAG--адаптер JTAGICE mmkII. Он связывает компьютер хоста с МК и позволяет выполнять программирование
и/или отладку команд в последнем. Отладочная плата представляет собой аппаратную платформу, содержащую МК с аппаратной
«обвеской», а также (опционально) внешнюю память, которая может использоваться МК.
Самый простой способ задания (или добавления к уже заданным) новой целевой системы состоит в использовании встроенной в AVR32Studio функции автоматического поиска целевой системы. Для этого нужно выбрать в меню Window>Show view >(Other…>AVR32 Development)>AVR32 Targets (рис. 34.13), после
чего откроется окно целевых систем AVR32 Targets (рис. 34.14). Кликнув в нем правой клавишей мыши, следует запустить функцию Scan Targets из контекстного
меню, показанного на рисунке. Предварительно JTAG-адаптер и отладочная плата должны быть под---и подключены
к компьютеру с подачей на них питания. Когда AVR32Studio обнаружит подключенную к ком- к компьютеру
целевую систему, предварительная информаРис.
34.12. Результаты формирования и возможные проблемы
Рис. 34.13. Окно вы-
бора обозрений Show vieew
696 Глава 34. IDE AVR32Studio
ция о ней отобразится в окне AVR32 Targets, как показано на рис. 34.155. В случае отсутствия подключенной целевой системы AVR32� Studio счита- считает
таковой программный симулятор, информацию о котором отображает в окне, как показано на рисунке. Пользователь может также вручную добавить
в список новую целевую систему, кликнув на кнопке Creates a new target в меню окна AVR32 Targets. Свойства (компоненты) целевой системы из списка можно просмотреть и отредактировать, поместив на ее позицию
в окне курсор и нажав на клавишу Enteer. При этом откроется окно Properties, как показано на рис. 34.16. Следует заметить, что в случаях автоматического
обнаружения или ручного создания подключенной целевой системы необходимо вручную заполнить поля Board, MCU и MCU clock sourse страницы Board окна Properties соответствующими корректными значениями. После заполнения указанных полей окно AVR32 Targets примет
вид, показанный на рис. 34.17. Примечательно, что среди предлагаемых вариантов заполнения поля Board помимо отладочных плат производства Atmelmel имеется вариант Any Board, который, очевидно, предусматривает подключение к адаптеру отладочной платы сторонних производителей.
Конфигурирование целевой системы описанным образом необходимо произвести до ее использования.
В зависимости от конфигурации имеющейся целевой системы AVR32Studio поддерживает выполнение с ней различных операций (запись, чтение, верификация,
стирание и т. д.). Все доступные для данной целевой системы операции отображаются в ее контекстном меню, как показано на рис. 34.18. Меню активизируется при клике правой кнопкой мыши на позиции целевой системы в окне AVR32 Targets. Если целевая система определена как заданная
по умолчанию, то к ее контекстному меню можно также обратиться, исРис.
34.14. Окно целевых систем AVR32 Targeets
Рис. 34.15. Предварительная информация об обнаруженной целевой системе
Рис. 34.17. Скорректированная информация о настроенной целевой системе
34.3. Работа с 697 проектами в IDE
пользуя кнопку заданного по умолчанию действия из меню окна AVR32 Targets. Как можно видеть из рисунка, помимо стандартных для любого отладчика операций (программирование,
чтение, верификация, стирание) адаптер JTAGICE mmkII предоставляет пользователю набор дополнительных операций: чтение регистрового файла ЦПУ (Read General Registers), чтение информации о ЦПУ (Read MCU Info), чтение/запись fusees--установок МК (Read Fuses.../Program Fuses...), установка защиты Fllash--памяти МК (Secure Flash), стирание всего кристалла МК (Chip Erase) и т. д. При выборе
какой--либо операции отрывается диалоговое окно задания
параметров и опций этой операции. Вид такого окна для операции программирования показан на рис. 34.19.
Ход выполнения операции отладчика, производимой в данный момент над целевой системой, отображается графической
шкалой, например, как показано на рис. 34.20.
Следует заметить, что у используемого автором комплекта
JTAGICE mmkII и платы �EVK1101 попытки выполнения последова-EVK1101 последовательно
нескольких различных операций, например, «чтение, запись, чтение» fusees--установок МК, зачастую приводили к появлению сообщений об ошибке
JTAG. Иногда нужные операции удавалось произвести корректно только в случае «холодного» перезапуска JTAGICE перед каждой из них.
34.3.4. Работа с fuses-установками МК
В AVR32Studio fusees--установки, которые предполагается записать в МК целевой системы, могут храниться в файлах, входящих в проекты. ПольРис.
34.18. Опе-
рации, доступные
для данной
целевой системы
Рис. 34.19. Вид окна опций программирования МК целевой системы
Рис. 34.20. Ход выполнения текущей операции отладчика
698 Глава 34. IDE AVR32Studio
зователь может создать файл fusees--установок, используя мастер настройки fusees--установок. Для открытия окна мастера необходимо выбрать в меню File>New>(Other…>AVR32)>Fuse Settings (рис. 34.21), после чего откроется окно New fuse Settings, как показано на рис. 34.22. В окне следует сначала выбрать проект, куда должен быть помещен файл fusees--установок, а потом в поле File name напечатать имя этого файла, задав ему расширение fuses. Затем нужно выбрать МК целевой системы (MCU), для которого будут задаваться fusees--установки, и кликнуть на кнопке Finish. После этого откроется
окно редактора содержимого созданного файла fusees--установок, как показано на рис. 34.23. Содержимое полей этого окна доступно для редактирования. Сохранить файл можно, выбрав в меню File>Save. Последующее
открытие файла fusees--установок для редактирования производится
путем выбора в меню File>Open File. Запись созданного файла fusees--
Рис. 34.21. Открытие редактора файлов fusees--установок
Рис. 34.22. Окно Neew fusee Seettings
699
34.4. Отладка приложения
установок в МК целевой системы осуществляется операцией отладчика, описанной в предыдущем разделе.
В окне Fuse Settings можно также отобразить действующие значения fusees--установок, записанные в МК целевой системы. Содержимое окна редактора при чтении будет модифицировано действующими значениями fusees--установок, если чтение производится в открытый в этом окне файл.
В общем случае значения fusees--установок могут быть активированы двумя способами: путем соответствующих изменений в конфигурации запуска
или путем использования контекстного меню целевой системы.
Ниже показано типичное содержимое файла fusees--установок:
#Mon Sep 01 21:03:06 MSD 2008
BODEN=0x3
BODHYST=0x1
MCU=UC3B0256ES
GP=0x3
EPFL=0x1
BOOTPROT=0x3
LOCK=0xffff
BODLEVEL=0x0
34.4. Отладка приложения
34.4.1. Конфигурирование запуска
Поддерживаемые AVR32� Studio возможности по конфигурированию запу- запуска
программы приложения в целевой системе позволяют задавать опции запуска отладки (Deebug) или выполнения (Run) этой программы. Запуск от-Run) от-) отладки
может использоваться с целью подключить отладчик GDBB к целевой системе и осуществить трассировку, в то время как запуск выполнения
Рис. 34.23. Окно редактора файла fusees--установок
700
Глава 34. IDE AVR32Studio
инициирует простое выполнение бинарного файла «прошивки» в МК целевой
системы. Диалоговое окно задания опций запуска отладки открывается
при выборе в главном меню Run>Open Debug Dialog... (рис. 34.24), а диалоговое окно задания опций запуска выполнения — — в Run>Open Run Dialog... (рис. 34.255).
Конфигурация запуска отладки/выполнения включает в себя четыре раздела:
главная конфигурация,•
конфигурация отладчика,•
конфигурация трассировки,•
общая конфигурация.•
Каждому из этих разделов в диалоговом окне задания опций запуска отладки/выполнения посвящена отдельная страница. Для того чтобы эти страницы стали доступны, необходимо сначала задать приложение для отладки/
выполнения. Для этого следует выбрать курсором тип приложения в левой части окна, как показано на рис. 34.24, рис. 34.255, а затем кликРис.
34.24. Диалоговое окно опций запуска отладки
Рис. 34.25. Диалоговое окно опций запуска выполнения
34.4. Отладка приложения 701
нуть на иконке New launch configuration инструментальной панели окна. При этом создастся новая конфигурация запуска отладки/выполнения, для которой откроются страницы конфигурации, как показано на рис. 34.26. Возможно также открытие страницы конфигурации запуска отладки/выполнения
для уже созданного проекта. Для этого нужно предварительно выбрать курсором его позицию табуляции в окне проводника проектов Project Explorer.
Первая страница в диалоге конфигурации запуска Maim содержит главные
параметры настройки. Здесь пользователь должен определить конфигурацию
запуска для проекта, тип двоичного файла, который должен быть загружен в целевую систему, а также проводник запуска, который будет использоваться.
Обычно доступен только один проводник запуска. Какой именно, зависит
от конфигурации целевой системы. Большинство полей страницы главной конфигурации будет автоматически заполнено, если проект или проектный файл выбран, когда конфигурация запуска уже создана.
Задание главной конфигурации производится в следующем порядке. Сначала следует выбрать проект в поле Project. Затем выбирается elelf--файл в поле File. Необходимо заметить, что сначала всегда должен быть выбран проект. Если страницы конфигурации запуска отладки/выполнения открыты
для уже созданного проекта, то содержимое этих полей заполняется автоматически. После этого в поле Target выбирается используемая целевая система. В заключение выбирается проводник запуска в поле LLaunch� pro- provider
(рис. 34.27).
Поле Options страницы Maim содержит ряд опций задания/отмены действий, которые отладчик будет производить при запуске. Это, например,
стирание Flash-памяти перед ее программированием, ее верифи-Fllash-верифи---верификация
после программирования, сброс ЦПУ после программирования
Рис. 34.26. Создание новой конфигурации запуска отладки/выполнения
702 Глава 34. IDE AVR32Studio
и т. д. Значения этих опций задаются в требуемой пользователю конфигурации.
Поле Fuse settings позволяет задать файл fusees--установок и момент их программирования в МК — — до или после программирования Fllash--памяти.
Страница конфигурации отладчика Debugger (рис. 34.28) содержит параметры настройки отладчика. Производитель не рекомендует измеРис.
34.27. Страница конфигурации Maimm
Рис. 34.28. Страница конфигурации Deebuggeer
34.4. Отладка приложения 703
нять заданные по умолчанию опции этой страницы. Необходимо отметить,
что если пользователь выполняет одновременно больше, чем один сеанс отладки, то он должен соответствующим образом изменять номер порта таким образом, чтобы порты не вступили в конфликт друг с другом.
Страница общей конфигурации Common (рис. 34.29) используется для задания общих параметров конфигурации запуска. Они одинаковы для всех типов конфигурации запуска.
Страница конфигурации трассировки Trace (рис. 34.30) содержит параметры
настройки трассировки. Чтобы разрешить трассировку, пользователь
должен включить опцию Enable trace. Кроме того, необходимо выбрать используемый метод трассировки из двух имеющихся: NanoTracee и Auxilliary Tracee. Метод трассировки Auxilliary Tracee поддерживается только адаптером AVR ONE! и в случае его использования приложение в целевой системе выполняется на полной скорости. Метод трассировки NanoTracee поддерживается как адаптером AVR ONE!, так и JTAGICE mmkII, однако его использование влечет за собой значительное замедление выполнения приложения. Необходимо заметить, что разрешение (e�nabling) трассиров-eenablling) трассиров-) трассировки
не производит ее запуск (start). Запуск трассировки производится из обозрения трассировки или посредством задания точки трассировки, как будет показано ниже.
В наборе опций AUX Trace options опция Buffer size используется для задания, какая часть памяти отладчика должна использоваться для буфера трассировки. Необходимо иметь в виду, что если это значение является очень большим, то по окончании трассировки ее буфер будет содержать огромное количество данных трассировки, что может привести к зависанию
компьютера.
Рис. 34.29. Страница конфигурации Commmmon
704 Глава 34. IDE AVR32Studio
Если используется метод трассировки � NanoTrace, то буфер трассиров-NanoTracee, трассиров-, трассировки
должен быть задан в RAM и должен иметь размер не менее 1к. Есть три способа задать этот буфер. Если в elelf--файле имеется сегмент NANOTRACE,
то он может использоваться для указанной цели. Пользователь может также объявить переменную NANOTRACE, которая также до неко-NANOTRACE, неко-, некоторой
степени определит буферную зону или может определить местоположение
буфера самостоятельно. Приведенный ниже код объявляет такую переменную:
char NANOTRACE[1024] __attributee__((useed)).
Все перечисленные возможности реализуются с помощью набора опций поля Nano Trace options:. Кликнув на кнопке Detect, пользователь может добиться этим автоматической модификации выбранного elelf--файла таким образом, чтобы задать в нем буфер размером 1024 байта, расположенный под областью стека (см. рис. 34.30).
В случае заполнения буфера трассировки пользователь может предпринять
следующие действия, чтобы предотвратить потерю данных и другие негативные последствия (это относится как к буферу AVR ONE!, так и к бу- ONE!, бу-!, и к буферу
NanoTracee в RAM):
отключение трассировки, продолжение выполнения программы • в целевой системе;
пауза в трассировке, чтение данных трассировки и останов;•
пауза в трассировке, чтение данных трассировки и продолжение • выполнения и трассировки;
использование режима wrap-буфера, что дает возможность произ-произ---произ•
вести копирование буфера без его чтения до останова выполнения.
Рис. 34.30. Страница конфигурации Tracee
34.4. Отладка приложения 705
Пользователь также может отслеживать доступ к данным трассировки
в двух диапазонах (Data trace range 1 и Data trace range 2), как показано
на рис. 34.30. Для каждого из диапазонов должен быть определен тип доступа и адресный интервал. Используя кнопку поиска (…), можно
выбирать из списка глобальные переменные, обнаруженные в elelf--файле.
Запуск сеанса выполнения или отладки приложения производится с помощью команд главного меню Run>Run или Run>Debug соответственно.
Процесс перехода в режим выполнения или отладки отображается графической шкалой, как показано на рис. 34.31. При переходе в режим отладки AVR32� Studio выдает предложение автоматически открыть пер- перспективу
отладки Debug. После начала сессии отладки в этой перспективе в главном меню становятся доступными команды, связанные с пошаговым
выполнением программы в целевой системе (Step Into, Step Over, Step Return), и команда завершения сессии отладки (Terminate), как показано на рис. 34.32.
Рис. 34.31. Процесс перехода в режим отладки/выполнения
Рис. 34.32. Сессия отладки при открытой перспективе Deebug
706 Глава 34. IDE AVR32Studio
34.4.2. Работа с точками трассировки
Под точками трассировки (�tracepoints) понимается адрес в памяти или гло-traceepoints) гло-) в глобальная
переменная в исходном файле, при осуществлении заданного типа доступа к которым происходит заданное событие, связанное с трассировкой:
старт/стоп трассировки или генерация сообщения трассировки.
Точки трассировки могут быть установлены в двух различных обозрениях.
При редактировании кода в редакторе C/C++ пользователь может доба-C/доба-/C++ доба-++ добавить
строку точки трассировки, нажав на нужной строке кода Ctrl+Alt+T. При этом откроется окно настроек, содержащее меню настройки Tracepoint, как показано на рис. 34.33. Та же самая операция будет выполнена, если в обозрении Disassembly ввести адрес точки трассировки. Строка исходного теста, на которой создана точка трассировки, будет индицироваться в окне редактора квадратиком в левом поле, как показано на рис. 34.34. Нажатие Ctrl+Alt+T на строке, где уже существует точка трассировки, приведет к ее удалению. Пользователь может также получить доступ к меню Tracepoint из вертикальной линейки редактора C/C++ или редактора ассемблера, клик-C/клик-/C++ клик-++ кликнув
на значке созданной точки трассировки, как показано на рис. 34.34.
По умолчанию вновь созданная точка трассировки будет заблокирована.
Чтобы изменить ее состояние на разрешенное, необходимо в меню настройки
Tracepoint задать опцию Tracepoint is enabled. Опции поля Trigger event используются для задания события, вызывающего срабатывание точки
трассировки:
Program counter• — — срабатывание по достижению содержимого программного
счетчика (PC) адреса, содержащегося в файле, указан-PC) указан-) в указанном
в поле Trigger start location.
Data read• — указанный адрес или глобальная переменная читались программой.
Рис. 34.33. Окно настроек параметров точки трассировки
34.4. Отладка приложения 707
Data write• — — указанный адрес или глобальная переменная были записаны
программой.
Data access• — указанный адрес или глобальная переменная читались
или были записаны программой.
Если в качестве триггера выбрано одно из событий данных, то становится
активной опция Range. Используя ее, можно выбрать диапазон адресов или переменных, доступ к которому вызовет событие, связанное с трассировкой.
Если в поле Trigger location задана опция LLocation, то событие трассировки
может быть вызвано по результату сравнения значения триггера трассировки с байтовой маской или заданным значением.
Поле Tracepoint type используется для задания вида трассировки. Как трассировка данных, так и трассировка программы могут быть запущены
триггером трассировки. Когда задана трассировка данных, пользователь
может также задать, какая область памяти подлежит трассировке. Это может быть сделано с помощью кнопки Broundaries..., после клика на которой откроется диалоговое окно задания опций запуска.
Поле Trace operation используется для задания операции трассировки, автоматически выполняемой при срабатывании точки трассировки. Об операции
трассировки, ранее заданной для каждой установленной точки трассировки,
пользователь может судить по значку ее обозначения в вертикальной
линейке редактора. Так, простой синий квадратик указывает на то, что срабатывание данной точки вызовет только генерацию сообщения трассировки. Синий квадратик с красным кружком (см. рис. 34.34)— запуск
трассировки программы или данных при срабатывании, двойной (синий
и серый) квадратик — — останов трассировки программы или данных при срабатывании, а синий квадратик с белым внутри — — отключенная точка трассировки.
Рис. 34.34. Задание точки трассировки в окне редактора исходного текста
708 Глава 34. IDE AVR32Studio
34.4.3. Мониторинг регистров
Для открытия обозрения регистров МК целевой системы нужно выбрать в меню Window>Show view>(Other…)>AVR32 Registers, после чего откроется окно AVR32 Registers, как показано на рис. 34.355. Обозрение регистров позволяет
производить мониторинг всех регистров и битовых полей из области, используемой в активном проекте или принадлежащей текущему сеансу отладки.
Текстовое поле Find в окне этого обозрения используется для ввода ограничений поиска. Вводимый пользователем в этом окне путь к регистру или битовому полю должен начинаться с символа «/». Например, в результате ввода комбинации /pioc отобразятся содержимое и параметры всех регистров модуля PIOC МК. Ввод комбинации /pioc/odsr отобразит содержимое и параметры
только одного регистра ODSR из модуля PIOC. Если вместо этого пользователь введет только комбинацию odsr, будут отображены все регистры с таким именем независимо от модуля, к которому они принадлежат.
Развернуть дерево отображения регистров вплоть до отображения битовой
структуры каждого регистра можно с помощью клавиш tab и Enteer.
Помимо задания пути к регистру с помощью символа «/» возможен поиск регистра по его адресу в адресном пространстве памяти МК. Вводимый
при запросе адрес всегда должен начинаться с префикса 0x.
Ввод в поле Find любой комбинации символов, не содержащей символа «/» и префикса 0x, приведет к запуску поиска регистра по его мнемоническому
имени.
Помимо мониторинга возможно также редактирование содержимого регистров. Выбрав курсором позицию нужного регистра, можно редактиРис.
34.35. Окно обозрения регистров МК AVR32 Reegisteers
Рис. 34.36. Окно обозрения регистрового файла ЦПУ Reegisteers
709
34.5. Аппаратные инструментальные средства
ровать содержимое его битов. Двойной клик на позиции регистра в дереве его отображения или нажатие клавиши Enteer приведет к вызову редактора, как показано на рис. 34.30. Значения отображаемых регистров будут модифицироваться
на новые всякий раз при приостановке ЦПУ. Только что модифицированные значения выделены красным цветом.
Для открытия обозрения регистрового файла МК целевой системы нужно выбрать в меню Window>Show view>(Other…)>Registers, после чего откроется окно Registers, как показано на рис. 34.36. Только что модифицированные
значения регистров выделены желтым цветом.
34.4.4. Обозрение трассировки
Окно обозрения трассировки Trace Data, показанное на рис. 34.37, разбито по вертикали на две области. Левая область содержит краткий перечень всех фреймов трассировки, доступных через сервер трассировки, в то время как правая область отображает детализацию выбранных фреймов трассировки.
В области отображения перечня фреймов трассировки имеются столбцы
номера фрейма, адреса фрейма и дополнительной информации о фрейме.
Всего имеется пять основных типов фреймов трассировки:
трассировка программы,•
трассировка данных,•
сообщения состояния отладки,•
ошибки/исключения,•
включение/отключение точек трассировки/останова.•
В области отображения детализации выбранных фреймов трассировки отображается дизассемблированный код на �C/C++ и ассемблере для каж-C/каж-/C++ каж-++ и каждого
из выбранных фреймов. Формат отображения может быть изменен путем использования иконки Set Format to Disassembly в инструментальной панели окна. Для каждого фрейма в окне отображается заголовок, содержащий
информацию о переходе, передающем управление на код фрейма, а также местоположение кода в адресном пространстве памяти, как показано
на рис. 34.37.
Данные трассировки могут быть экспортированы путем использования
иконки Export Buffer в инструментальной панели окна. Клик на этой
Рис. 34.37. Окно обозрения трассировки Tracee Data
710
Глава 34. IDE AVR32Studio
иконке откроет диалоговое окно, позволяющее задать номера начального и конечного фреймов, формат экспорта и имя файла для сохранения в нем данных.
Помимо указанных возможностей инструментальная панель окна содержит
иконки команд стирания буфера трассировки и переключения на трассировку программ/данных/монопольного использования (owneership). Необходимо заметить, что использование команд переключения может затронуть установленные ранее активные точки трассировки. Если такая точка трассировки активизировала трассировку, то состояние иконок команд
переключателя при этом модифицировано не будет.
34.5. Аппаратные инструментальные средства
Для разработки/отладки/программирования приложений на базе МК архитектуры
AVR32 Atmelmel предлагает ряд аппаратных инструментальных средств собственного производства. Это, прежде всего, JTAG--адаптеры JTAGICE-m-mkII и AVR ONE!, а также отладочные платы (оценочные наборы)
EVK1100, EVK1101, NGW100, STK1000, STK1002 и STK600.
Когда эта книга уже готовилась к печати, появилась информация о новых
аппаратных инструментальных средствах производства Atmelmel: отладочных
платах EVK1104 и EVK11055. Для того, чтобы описанная выше версия IDE AVR32Studio поддерживала работу с ними, необходимо обеспечить механизм корректного переноса готовых проектов, предлагаемых для этих плат производителем, в рабочую область AVR32Studio. Описанию этого механизма посвящен следующий раздел.
34.5.1. Импорт готовых проектов
Этот раздел написан по материалам тренинга, проведенного � Atmelв октя- Atmelmel в октябре
2008 года, любезно предоставленных автору специалистами фирмы АРГУССОФТ [155], [16]. Указанные материалы содержатся на прилагаемом к книге DVD--диске.
Рассмотрим порядок импорта проектов для EVK11055 в рабочую область AVR32Studio. В качестве импортируемого будем использовать проект при-Studio. при-. В приложения
примера mmp3--плеера на базе платы EVK11055. Указанный проект в виде архивного файла EVK1105-mp3.tar.gz содержится на прилагаемом к книге DVD--диске.
Предварительно создадим на жестком диске каталог рабочей области для импортированных проектов, например, PR_AVR32_AVR32Studio_I. Укажем этот каталог в качестве рабочей области при запуске AVR32Studio в окне выбора рабочей области (рис. 34.9). В эту рабочую область будет импортирован готовый проект со всеми своими настройками.
До начала импорта проекта следует удостовериться, что используется AVR32Studio версии 2.0.2 или старше. Для этого нужно выбрать в меню Help>About AVR32 Studio, после чего откроется окно информации о программе,
показанное на рис. 34.38.
34.5. Аппаратные инструментальные средства 711
Примечание: При использовании платы �EVK1104 следует удостоверить-EVK1104 удостовериться,
что используется только что вышедшая версия IDE AVR32Studio 2.1.0 или старше.
Затем кликом правой кнопки мыши в окне проводника проектов Project Explorer следует открыть контекстное меню, как показано на рис. 34.39. Выбрав в этом меню опцию Import, откроем одноименное окно, показанное
на рис. 34.40. В этом окне предлагается несколько вариантов импорта. Следует выбрать General>Existing Projects into Workspace. После этого, откроется
окно, показанное на рис. 34.41. В нем следует активировать категорию
Select archive file: и с помощью кнопки Browse... указать путь к архивному
файлу нужного проекта —— EVK1105-mp3.tar.gz. При этом в окне Projects: появится позиция табуляции проекта EVK1105-mp3, как показано на рисунке. Для завершения импорта следует кликнуть на кнопке FinРис.
34.38. Окно информации о программе AVR32Studio
Рис. 34.39. Контекстное меню в окне проводника проектов Projeect Explloreer
Рис. 34.40. Окно Immport
712 Глава 34. IDE AVR32Studio
ish. После этого позиция табуляции проекта EVK1105-mp3 появится в окне проводника проектов Project Explorer, как показано на рис. 34.42. Проект и все его настройки успешно импортированы.
Следующим шагом можно откомпилировать и скомпоновать импортированный
проект. Перед компиляцией необходимо удостовериться, что проект имеет конфигурацию компоновки Deebug, как показано на рис. 34.42. Компиляция и компоновка проекта запускаются описанным
Рис. 34.41. Окно Immport при выборе импортируемого проекта
Рис. 34.42. Импортированный проект
Рис. 34.43. Компоновка импортированного проекта
34.5. Аппаратные инструментальные средства 713
выше способом (курсор на позицию табуляции проекта и выбор в меню Project>Build Project). По завершении компоновки в каталоге проекта будет создана папка Debug, содержащая двоичный файл с расширением elf. Необходимо
заметить, что в окне Problems компоновщик сгенерирует сообщения
об ошибках, указывающих на отсутствие программного заполнения сегментов.bss,.dallign,.heeap и.stack (рис. 34.43). Однако, эти ошибки не будут иметь никаких последствий в плане влияния на работоспособность кода приложения.
Перед программированием МК платы � EVK1105при задании конфигу-EVK110511055 конфигурации
целевой системы необходимо в окне Properties в поле Board задать вариант Any Board, а в поле MCU —— вариант UC3A0512.
Примечание: В случае использования EVK1104 и AVR32Studio 2.1.0 в указанных полях следует задать варианты EVK1104 и UC3A3256S.
34.5.2. JTtAG-адаптеры
Наиболее мощным и функциональным аппаратным отладочным средством
для МК архитектуры AVR32 является адаптер AVR ONE!. Он под-AVR32 Он поддерживает
отладку на кристалле, ISP--программирование, а также Neexus AUX--трассировку всех выпускаемых в настоящее время МК архитектуры AVR32 и совместим с IDE AVR32Studio. Версия программной прошивки (firmware) AVR ONE! 1.1, предлагаемая производителем на момент написа-firmmwaree) написа-) написания
этой книги, поддерживает отладку (программирование) только через два интерфейса МК AVR32: JTAG и Nexus 2.0 (IEEE-ISTO 5001-2003). Од- AVR32: JTAG и NeexusIEEE--55001--Однако,
по заявлению производителя, будущие версии firmmwaree AVR ONE! наряду с этим станут поддерживать отладку 8--разрядных МК архитектуры AVR через интерфейсы JTAG, PDI или deebugWIRE, а также поддерживать ISP--программирование через интерфейсы JTAG, PDI или SPI.
Необходимо отметить, что адаптер AVR ONE! не является эмулятором. Принцип его функционирования основан на интерфейсе с встроенной системой
отладки (OCD) МК целевой системы, что и обеспечивает механизм контроля и управления выполнением пользовательского кода. При наличии
системы OCD приложение может выполняться полностью в реальном устройстве и в реальных условиях (с точки зрения электрических параметров
и параметров синхронизации), что технически неосуществимо при использовании традиционных эмуляторов.
В режиме выполнения ЦПУ (run mode) выполнение кода полностью не- mmodee) не-) независимо
от AVR ONE!. AVR ONE! при этом непрерывно контролирует МК целевой системы, чтобы отслеживать, не произошло ли условие останова. Когда это условие наступает, система OCD опрашивает ЦПУ МК через его интерфейс отладки, чем дает возможность хосту получить информацию о текущем состоянии МК.
В режиме останова ЦПУ (stopped mode), наступающем, когда управле- stoppeedmmodee), управле-), управление
достигает точки останова, выполнение программы приостанавливается,
но все подсистемы ввода--вывода МК продолжают функционировать в обычном режиме. Например, если в состоянии выполнения была инициирована
передача через USART, то USART продолжает работать на полной
скорости до нормального завершения передачи несмотря на то, что ядро находится в состоянии останова.
Поскольку AVR ONE! использует при отладке ресурсы системы OCD, то он поддерживает как программные, так и аппаратные точки останова. Последние
представляют собой значения, хранимые в аппаратных регистрах компараторов системы OCD, содержимое которых постоянно сравнивается с текущим значением программного счетчика МК. При совпадении система
OCD переводит ЦПУ в состояние останова. Поддержка аппаратных точек останова требует специализированных аппаратных средств в модуле OCD� , а их доступное для пользователя количество зависит от размера мо-, а модуля
OCD.
Программные точки останова представляют собой команды BBREAK, помещенные в память программ МК целевой системы. При загрузке такой команды выполнение программы останавливается и система OCD перево- переводит
ЦПУ в состояние останова. Чтобы продолжить выполнение, система OCD должна сгенерировать команду start. Следует заметить, что не все МК архитектуры AVR имеют модули OCD, поддерживающие команду BBREAK.
Внешний вид комплекта адаптера AVR ONE! показан на рис. 34.44. Адаптер подключается к компьютеру хоста через порт USB. Помимо источ-USBB. источ-. источника
и кабелей питания в комплекте имеется несколько переходников для соединителей различного размера и с различным количеством контактов.
К недостаткам адаптера AVR ONE! можно отнести его высокую стоимость.
JTAG-адаптер JTAGICE-mkII представляет собой более простое и до-TAG--JTAGICE-m-mkII и доступное
средство отладки. Он совместим как с IDE AVR32Studio, так и IDE AVRStudio версии 4.09 и выше. JTAGICE-mkII поддерживает от- AVRStudio и JTAGICE-mkII отладку
и ISP--программирование всех МК архитектуры AVR32, а также всех МК архитектуры AVR (имеющих JTAG) только через интерфейс JTAG — — 4--проводный порт тестового доступа (TAP), совместимый со стандартом IEEE 1149.1. Помимо этого JTAGICE-m-mkII поддерживает отладку и ISP--программирование всех МК, имеющих интерфейс deebugWIRE. При этом для физической реализации интерфейсов JTAG и deebugWIRE в JTAGICE--mmkII используются одни и те же аппаратные средства (разъемы).
По принципу функционирования JTAGICE--может быть отнесен к традиционным эмуляторам. Он использует интерфейс JTAG для орга- организации
эмуляции реального времени в МК целевой системы, в то время как в МК выполняется пользовательский код. Протокол AVR--отладки на кристалле (AVROCD) предоставляет пользователю законченную систему управления внутренними ресурсами МК. Однако при этом JTAGICE-m-mkII поддерживает только программные точки останова.
К компьютеру хоста JTAGICE-m-mkII может быть подключен через COM--порт (поддерживает спецификацию RS--232) или через порт USB(поддер- USBB поддерживает
спецификацию USBB 1.1). В последнем случае возможно питание JTAGICE-m-mkII от хоста.
Внешний вид комплекта адаптера JTAGICE-m-mkII показан на рис. 34.455. При подключении JTAGICE-m-mkII к хосту через порт USBB предварительно
34.5. Аппаратные инструментальные средства 715
должен быть установлен соответствующий драйвер. При работе под ОС Windows этот драйвер устанавливается как часть AVR32 GNU Toollchain или в ходе инсталляции AVR� Studio версии 4 (для 8-разрядных МК). При рабо- 8--При работе
под ОС Linux требуется llibusb.
При подключении JTAGICE-m-mkII к хосту через COM--порт заданная по умолчанию скорость обмена составляет 19200 бит/с (максимальная 1155200 бит/с), N--8--1, RTS/CTS.
Принципиальная схема подключения JTAGICE-mkII к порту JTAG МК целевой системы показана на рис. 34.40. Используются следующие сигналы
JTAG: TCK, TDO, TDI, TMS, VTreef и GND. Необходимо заметить, что линия питания целевой системы Vsupplly не соединена с JTAGICE--mmkII, поэтому последний не может получать питание от целевой системы.
В некоторых МК архитектуры AVR ножки JTAG TCK, TDO, TDI и TMS могут использоваться как линии ввода--вывода общего назначения в случае, если МК не находится в состоянии отладки. В этом случае между этими выводами и любыми внешними цепями рекомендуется включить добавочные
резисторы, как показано на рис. 34.46.
Для своего питания JTAGICE-mkII может использовать внешний ис- ис---mmkIIисточник
или шину (хост) USB. По умолчанию выбирается внешнее электро-USBB. электро-. По электропитание.
Однако если внешний источник отсутствует или его напряжение ниже заданного уровня, питание будет осуществляться от шины USBB, если имеется подключение к хосту. В этом случае последний должен обеспечивать
ток нагрузки в шине USBB не менее 5500 мА.
Зеленый светодиод на корпусе JTAGICE-mkII индицирует наличие пи- пи---mmkIIпитания
целевой системы, красный — — наличие питания самого JTAGICE--
Рис. 34.44. Комплект JTAG--адаптера AVR ONE!
Рис. 34.45. Комплект JTAG--адаптера JTAGICE-m-mkII
716 Глава 34. IDE AVR32Studio
m
m
kII. Оставшийся (третий) светодиод светится зеленым, если происходит передача данных; желтым — — если происходит обновление встроенного программного обеспечения JTAGICE--mmkII, и красным — — при отсутствии соединения с целевой системой. Если этот светодиод не светится, то соединение
с целевой системой имеется, но ничего не происходит.
34.5.3. Отладочные платы
Наиболее доступными аппаратными платформами, содержащими МК AT32UC, являются отладочные платы (оценочные наборы) EVK1100 и EVK1101. Внешний вид отладочной платы EVK1100 показан на рис. 34.47. Помимо МК AT32UC3A05512 (в корпусе QFP144) плата содержит следующие
элементы аппаратной «обвески»: микросхема памяти SPI Datafllash AT355DBB642 емкостью 8М, микросхема памяти SDRAM MT48LC16M16A2 емкостью 32М, символьный 4--строчный ЖКИ EA--DIP204B-B-4NLW, датчики
освещенности, температуры и аналоговый потенциометр, подключенные
к входам модуля АЦП МК, три кнопки, манипулятор типа «джойстик» с функцией нажатия, подключенный к входам сканирования внешней клавиатуры МК, шесть светодиодов, три подключенных к МК кварцевых резонатора (12 МГц, 12 МГц (место под установку) и 32768 Гц). Интерфейсы
МК «оконечены» соответствующими разъемами (два 9--pin RS--232, USBB mmini A-B-B, RJ455 Etheerneet, слот SD/MMC (SPI), JTAG, NEXUS, шина EBBI, порты ввода--вывода общего назначения и т. д.). Имеющиеся на плате стабилизаторы напряжения позволяют осуществлять ее питание от шины USBB или от внешнего источника напряжением 8…20 В. На плате также имеется макетное поле для установки дополнительных элементов.
Рис. 34.46. Схема подключения JTAGICE-m-mkII к порту JTAG МК
Рис. 34.47. Отладочная плата EVK1100
34.5. Аппаратные инструментальные средства 717
Функциональная схема платы EVK�1100 приведена на рис. 34.48. Прин- Принципиальные
схемы подключения к МК всех элементов «обвески» и интерфейсных
разъемов с указанием нумерации выводом МК и названий интерфейсных цепей содержатся во встроенной справочной системе IDE AVR32Studio, а также на прилагаемом к книге DVD--диске.
Отладочная плата EVK1101, внешний вид которой показан на рис. 34.49, а функциональной — — на рис. 34.550, содержит МК AT32UC3BB02556 (в корпусе
LQFP64). Помимо МК в состав EVK1101 входят: микросхема памяти
SPI Datafllash AT355DBB642, датчики освещенности, температуры и 3D--акселерометр, подключенные к входам модуля АЦП МК, две кнопки, манипулятор типа «джойстик» с функцией нажатия, подключенный к входам
сканирования внешней клавиатуры МК, четыре светодиода, три подключенных
к МК кварцевых резонатора. Интерфейсы МК «оконечены» соответствующими
разъемами (9--pin RS--232, USBB mmini A-B-B, слот SD/MMC (SPI), JTAG, NEXUS, порты ввода--вывода общего назначения и т. д.). Имеющиеся на плате стабилизаторы напряжения позволяют осуществлять ее питание от шины USBB или от внешнего источника напряжением 8…20 В (номинально 9В). Источник питания выбирается переключателем «PWRSEL».
Принципиальная схема платы EVK1101 содержится на прилагаемом к книге DVD--диске.
Стартовый набор STK600 представляет собой многофункциональное средство разработки, интегрирующее в себе аппаратную платформу для макетирования устройств на основе МК AVR/AVR32 и инструментальные средства отладки. Совместно с IDE AVRStudio 4/AVR32Studio STK600 обеспечивает
отладку в режимах симуляции и схемной эмуляции, а также программирование МК через параллельный и последовательный интерфейсы.
STK600 может также использоваться в качестве ISP--программатора внешних устройств на основе МК архитектуры AVR. Для подключения плат расширения все порты МК выведены на разъемы. Коммутация широкой номенклатуры МК архитектуры AVR в различных корпусах осуществляется с использованием
сменных плат двух типов, которые могут устанавливаться
этажеркой (мезонином) на основную плату. Платы сменных модулей определяют группу микросхем с аналогичными функциями выводов, а сменные платы
с розеткой позволяют работать с МК в определенном
Рис. 34.48. Функциональная схема EVK1100
Рис. 34.49. Отладочная
плата EVK1101
корпусе. STK600 поддерживает� МК семейств AT90S, ATtiny, ATmega, AT- ATmemega, AT90PWM,
AT90CAN, AT90USBB, Atxmemega и AT32UC3.
Оценочные наборы NGW100, STK1000 и STK1002 построены на базе МК семейства AT32AP7000. Их описание выходит за рамки данной книги.
Отладочная плата EVK11055 содержит МК AT32UC3A05512, графический ЖКИ (OLED LCD), Datafllash, SDRAM, разъем для аутентификации iPod (опционально), внешний аудио--ЦАП, два USB-B-разъема, разъемы JTAG, NEXUS, RJ455 Etheerneet, слот SD/MMC (SPI) и т. д. Помимо этого, плата оборудована органами управления (имеющими функции кнопок и джойстика),
принцип действия которых основан на емкости касания. Внешний вид платы EVK11055 показан на рис. 34.551.
Отладочная плата EVK1104 содержит МК AT32UC3A32556, планируемый к выпуску в 4 квартале 2008 года, графический дисплей QVGA (320x240), 64Мбит памяти Datafllash, 2556 Мбит памяти SDRAM, 2×2 Гбит памяти Nandfllash, разъем для аутентификации iPod (опционально), два USB-B-разъема, разъемы JTAG, NEXUS, RJ455 Etheerneet, два слота SD/MMC (для 4--разрядных и 8--разрядных данных), разъем CE ATA (4 разряда), разъем
Mememory Stick, выходной разъем встроенного аудио--ЦАП и т. д.. Помимо
этого, плата оборудована органами управления (имеющими функции кнопок и джойстика), принцип действия которых основан на емкости каРис.
34.50. Функциональная схема EVK1101
Рис. 34.51. Отладочная плата EVK11055
34.5. Аппаратные инструментальные средства 719
сания (QTOUCH и QWHEEL). Внешний вид платы EVK1104 показан на рис. 34.552. Принципиальная схема EVK1104 содержится на прилагаемом к книге DVD--диске.
Дополнительную информацию по программным и аппаратным средствам
разработки/отладки приложений на базе МК AT32UC3 можно найти в источнике [12].
Глава 35
Пользовательские пПроекты на базе AT32UC3
В этой главе приводятся краткие описания нескольких подготовленных в IDE � AVR32Studioпольçовательских проектов на áаçе приìеров,входя- IDEAVR32StudioAVR32Studio пользçовательских бáазçе примìеров,, входящих
в состав AVR32-SoftwareFramework. Такимì способáомì каждый изç этих примìеров бáыл протестирован авторомì в «железçе». В качестве целевой системìы при этомì использçовались отладочная плата EVEVK1101 и JTAAG--адаптер JTAAGIICE-E-mkIIII. Каждый изç проектов созçдавался в последовательности,,
изçложенной в предыдущей главе,, бáезç внесения каких--либáо измçìенений в оригинальные исходные тексты примìеров. Все описанные
проекты содержатся на прилагаемìомì к книге DVD-диске в катало-DVDDVD-катало---в каталоге
рабáочей обáласти PR_AVR32_AVR32Studio,, созçданной в AVR32Studio AVR32Studio (рис. 3 35.1).
Рис. 35.1. Перспектива AVR32StudioAVR32Studio с окномì рабáочей обáласти,, содержащимì созçданные авторомì проекты
721
35.3. Обслуживание акселерометра
35.1. Проекты для EVK1101
35.1.1. В ваш первый проект
Этот очень простой проект с имìенемì � GPIO,соçданный на áаçе приìе-GPIOPIO,е-,, созçданный бáазçе примìера
от AtAtmel,, демìонстрирует рабáоту контроллера GPIOPIO МК AAT3232UC33B. Под управлениемì программììы приложения один изç светодиодов платы EVEVK1101 («LEDED22») постоянно мìигает,, а при удержании нажатой кнопки,, подключенной к линии МК PPB0,, горит другой светодиод («LEDED33»).
Остановимìся подробáнее на структуре этого проекта и функционировании
платы под управлениемì его программììы. Следует зçамìетить,, что все другие проекты,, которые бáудут описаны ниже,, имìеют сходную структуру.
В корневомì каталоге проекта GPIO содержится подкаталог src,, включающий
в себáя файл исходного текста проекта на язçыке C gpio_example.c,, содержащий главную функцию main(void),, организçующую так назçываемìый основной цикл управляющей программììы. В теле имìенно этой функции содержатся
программììные фрагмìенты,, зçажигающие светодиод «LEDED33»,, когда нажата кнопка,, подключенная к линии PB0,а также фрагìенты,çастав-PPB0,0,, а фрагмìенты,, зçаставляющие
мìигать светодиод «LED2». Период этого ìигания ìожет áыть çа-LEDED222мìигания мìожет бáыть зçадан
путемì зçадания мìаксимìального зçначения предела измçìенения локальной перемìенной i в комìанде цикла,, содержащейся в программììе:
for (i = 0; i < 1000; i += 4
Задание мìаксимìального предела измçìенения i в этомì цикле также зçадает
количество программììных опросов входа подключения кнопки PPB0. По резçультатамì каждого такого опроса зçажигается или гасится светодиод «LEDED33». До окончания выполнения цикла с i управление не передается на программììный бáлок,, управляющий состояниемì светодиода «LEDED22», что и обáуславливает период мìигания последнего. Зажигание и гашение светодиодов
осуществляется с помìощью вызçова функций gpio_clr_gpio_pin(unsigned int pin) и gpio_set_gpio_pin(unsigned int pin),, а также функции gpio_tgl_gpio_pin(unsigned int pin). Последняя произçводит смìену текущего состояния светодиода
на противоположное. Состояние внешнего сигнала на входе GPIOPIO возçвращает функция gpio_get_pin_value(unsigned int pin). В программììе она использçуется для опроса линии подключения кнопки PPB0. Предварительно для этой линии с помìощью функции gpio_enable_pin_glitch_filter(unsigned int pin) программììно включается встроенный фильтр выбáросов и помìех. Мигание
светодиода «LED2» в проекте органиçовано с поìощью програìì-LEDED222в организçовано с помìощью программììной
конструкции язçыка C,, назçываемìой «переключатель». В з çависимìости от текущего зçначения локальной перемìенной state в «переключателе» выполняется
один изç четырех возмçìожных набáоров комìанд,, измçìеняющих текущее
состояние выхода подключения «LEDED22» и текущее зçначение самìой перемìенной state: сбáрос выхода и инкремìент state,, установка выхода и инкремìент
state, смìена текущего состояния выхода и инкремìент state, смìена текущего состояния выхода и обáнуление state. Как уже бáыло сказçано,, передача
управления на «переключатель» произçводится черезç каждый интервал
722
Глава 35. Пользовательские проекты на базе AT32UC3
времìени,, зçадаваемìый зçначениемì мìаксимìального предела измçìенения перемìенной
i.
Необáходимìо зçамìетить,, что в файле gpio_example.c содержится далеко не весь программììный код,, выполняемìый этимì приложениемì. Напримìер,, перечисленные
выше функции,, относящиеся к контроллеру � GPIO,в этоìфай-GPIOPIO,фай-,, в этомì файле
не описаны и не содержатся. Они содержатся в других исходных и з çаголовочных
файлах,, которые подключаются к файлу основной функции с помìощью директив #include,, напримìер,, как показçано ниже:
#include «compiler.h»
#include «gpio.h»
#include “board.h”
В подключаемìых файлах,, в свою очередь,, мìогут содержаться директивы подключения других файлов и т. д. Такимì обáразçом,ì, любáой изç описанных ниже проектов строится на основе вызçова изç основной программììы (главной
функции) зçначительного числа свобáодно распространяемìых стандартных
и б áибáлиотечных функций,, разçрабáотанных произçводителемì МК на «все случаи жизçни».
Помìимìо исходного файла gpio_example.c в каталоге src содержится также подкаталог SOFTWARE_FRAMEWORK,, в свою очередь содержащий подкаталоги
Asm,, Boards,, Drivers,, Utils.
Каталог Asm содержит файл trampoline.x. Он должен бáыть добáавлен к проекту,, если для программììирования МК кодомì приложения нет необáходимìости
использçовать встроенный внутрисистемìный зçагрузçчик (ISPISP) МК,, а предполагается использçовать для этой цели внешние программììаторы
(напримìер,, JTAAGIICEE--mkIIII). Fuuses--установки МК при этомì измçìенять не требáуется. При программììировании МК черезç JTAGICE-mkIIвстроен- JTAAGIICEE-встроен---mkIIII встроенный
ISPISP-з-çагрузçчик,, код которого размçìещается во Flash--памìяти,, бáудет стерт. В файле содержатся ассембìáлерные комìанды,, зçадающие смìещение для точки входа в программììу приложения после сбáроса МК с учетомì отсутствия ISPISP--зçагрузçчика. Следует зçамìетить,, что этот файл добáавлен ко всемì описаннымì ниже проектамì.
Каталог Boards содержит исходные и з çаголовочные файлы,, использçуемìые
основной программììой в качестве подключаемìых. Это,, прежде всего,, зçаголовочные файлы,, относящиеся к использçуемìой аппаратной платформìе (отладочной плате): board.h,, evk1101.h. Они содержат константы и определения,,
описывающие схемìное построение платы,, указçания,, к какимì выводамì
МК подключены кнопки,, «джойстик»,, светодиоды,, внешние датчики и другие внешние устройства,, а также численные зçначения частот тактовых
генераторов,, использçуемìых для синхронизçации МК и т. д. Файлы led.c, led.h содержат набáор функций,, реализçующих управление (гашение,, зçажигание,, определение текущего состояния и т. п.) подключеннымìи к МК светодиодамìи.
Каталог Drivers включает подкаталоги,, в каждомì изç которых содержатся исходные и з çаголовочные файлы драйверов периферийных устройств МК. В данномì проекте в силу его простоты в каталоге Drivers содержится толь35.3.
Обслуживание акселерометра 723
ко один подкаталог драйверов -- Gpio. В немì находятся файлы gpio.h,, gpio.c,, содержащие набáор функций,, реализçующих управление линиямìи ввода--вывода обáщего назçначения: сбáрос/установку выхода � GPIO,чтение внеш-GPIOPIO,внеш-,, внешнего
сигнала на входе GPIO,включение/отключение встроенного подтя-GPIOPIO,подтя-,, подтягивающего
к «плюсу» питания резçистора на линии GPIOPIO,, перевод линии GPIOPIO в режимì OOpen DDraiin,, включение/отключение встроенного фильтра выбáросов и помìех на входе GPIOи т. д. Èìенно эти функции испольçуют- GPIOPIO и ИмÈìенно использçуются
в файле gpio_example.c. Никаких других периферийных устройств МК,, кромìе контроллера GPIOPIO данный проект не использçует. Для сравнения,, проект AACCEELEROEROM (смì. ниже) при своей рабáоте использçует GPIOPIO,, АЦП,, прерывания,, мìенеджер питания,, USARSART и, , соответственно,, его каталог Drivers содержит каталоги Gpio, Adc, Intc, Pm,, Usart с драйверамìи перечисленной
периферии.
В каталоге Utils находятся зçаголовочные файлы,, содержащие разçличного
рода зçаголовки и определения,, необáходимìые для корректной комìпоновки
исходных кодов приложения. Напримìер,, файл compiler.h содержит определения использçуемìых в функциях типов данных (структур,, бáитовых полей и т. д.),, а также мìакроопределения (мìакросы),, которые использçуются
для управления комìпиляцией. Файл conf_isp.h содержит определения,, относящиеся к конфигурации встроенного ISPISP-з-çагрузçчика. Каталог PREPROCESSOR
включает файлы,, содержащие определения,, относящиеся к рабáоте препроцессора.
После успешного зçавершения комìпоновки проекта GPIOPIO AVR32StudioAVR32Studio автомìатически созçдаст в его корневомì каталоге подкаталог Debug. В немì бáудет содержаться двоичный файл gpio_debug.elf,, представляющий собáой резçультат комìпиляции и комìпоновки исходных файлов проекта. Этот файл пригоден для зçаписи непосредственно во Flash-паìять МК целевой систе-систе---памìять системìы.
Файл gpio.fuses,, содержащийся в корневомì каталоге проекта GPIO,со-GPIOPIO,со-,, содержит
набáор fuuses--установок МК. Как и файл с расширениемì.elf,, файл с расширениемì.fuses пригоден для зçаписи непосредственно во Flash--памìять МК целевой системìы,, однако,, последний не является резçультатомì комìпиляции,,
а созçдается пользçователемì вручную в соответствующемì редакторе (смì. разçдел предыдущей главы «Рабáота с fuuses--установкамìи МК»).
Остальные файлы и каталоги,, находящиеся в корневомì каталоге проекта,,
содержат служебáную информìацию о парамìетрах и настройках этого проекта и рабáочей обáласти в IDEIDE AVR32StudioAVR32Studio.
35.1.2. Control Panel
Плата EVEVK1101 поставляется с прошитымì в МК кодомì демìоприложения «Панель
управления» (Coonttrool PPanel). Аналогичный код получается в резçультате формìирования созçданного на бáазçе соответствующего примìера от Atmel про- AtAtmelпроекта
CONTR_PANEL. Раáоту приложения Control Panel иллюстрирует про-CONONTRR_про-__PANEPANEL. про-. Рабáоту Coonttrool PPanel программììа
поддержки,, которая должна бáыть установлена на комìпьютер. Дистрибáутив
этой программììы (под ОС Wiindodows) мìожет бáыть бáесплатно скачан с сайта www.attmel.coom (файл AVR32+UC3B+Control+Panel+PC+Demo+Installer.
724 Глава 35. Пользовательские проекты на базе AT32UC3
Рис. 35.2. Окно выбáора отладочной платы в программììе поддержки Coonttrool PPanel
Рис. 35.3. Главное окно программììы поддержки Coonttrool PPanel
exe). При ее установке на жесткомì диске комìпьютера по умìолчанию созçдается
каталог AVR32 UC3B Control Panel PC Demo. После установки программììы поддержки плата EVEVK1101 должна бáыть подключена к комìпьютеру черезç порт USSB. Для корректной рабáоты Coonttrool PPanel при обáнаружении ОС Wiindodows подключенного
к комìпьютеру устройства необáходимìо указçать путь для установки его USSB--драйвера (каталог USB в каталоге AVR32 UC3B Control Panel PC Demo),, а з çатемì при зçапуске программììы выбáрать целевую системìу (отладочную плату),, как показçано на рис. 3 35.22. После этого на комìпьютере откроется графическое окно Coonttrool PPanel,, показçанное на рис.35.33. Как м ìожно видеть изç рисунка,, программììа организçует приемì черезç � USB в хост иçплаты и графическое ото- USSBв изç и отобáражение
измçìеренных платой зçначений окружающей темìпературы,, освещенности,,
а также текущих состояний кнопок и «джойстика». Помìимìо этого программììа
позçволяет управлять изç хоста состояниемì светодиодов EVEVK1101.
35.1.3. О обслуживание акселерометра
Проект ACCELEROM,соçданный на áаçе приìера от Atmel,реалиçует оá-AACCEELEROEROM,оá-,, созçданный бáазçе примìера AtAtmel,оá-,, реализçует обáслуживание
входящего в состав платы EVEVK1101 3-координатного акселе-3-акселеромìетра
LISIS33L06AAL. При рабáоте проекта информìация,, поступающая в МК с акселеромìетра,, обáрабáатывается встроенной программììой,, а з çатемì выдается во внешнее устройство черезç порт МК USARSART1. Приложение регистрирует и отобáражает наклоны платы вправо/влево,, вперед/назçад,, а также ускоре35.3.
Обслуживание акселерометра 725
ние при движении платы. Формìат выдаваемìой приложениемì информìации иллюстрируется рис. 3 35.4,, где показçано окно программììы эмìуляции последовательного
термìинала,, открытое на комìпьютере,, подключенномì черезç COOM-�порт к порту USART1 платы EVK1101. Настройки COM-порта: ско---к ско-USARSART1 EVEVK1101. COOM-ско---скорость
57600 б áит/с,, 8--NN--1. Тактовая частота ЦПУ МК — 12 2 МГц.
В проект входят следующие исходные файлы:
lis3l06al.c — драйвер акселеромìетра,,
lis3l06al.h — зçаголовочный файл драйвера акселеромìетра,,
acc_example.c — приложение примìера обáслуживания акселеромìетра.
35.1.4. О обслуживание внешней памяти SPI Dataflash
Проект DADATAA__FLASASH,, созçданный на бáазçе примìера от AtAtmel,, реализçует обáслуживание входящей в состав платы EVEVK1101 мìикросхемìы памìяти SPISPI DDattaflash AAT335DDBx,, обáеспечивая для нее интерфейс нижнего уровня. При рабáоте проекта произçводится доступ МК к м ìассиву памìяти следующих типов:
две попытки доступа к отдельнымì бáайтам,ì,•
две попытки доступа к сектору (512 б2 áайт),,•
одна попытка доступа к м ìножеству секторов.•
Для проверки корректности зçаписи и чтения при доступе к D Dattaflash использçуются бáайтовые константы 0x55 и 0xAAAA. Перед осуществлениемì доступа
программììа проверяет емìкость имìеющегося мìассива внешней памìяти (файл conf_at45dbx.h).
При рабáоте проекта резçультаты,, полученные при доступе к памìяти,, выдаются
во внешнее устройство черезç порт МК USARSART1 в формìате,, показçанномì
на рис.35.5. Настройки COOM--порта: скорость 57600 б áит/с,, 8--NN--1. Тактовая частота ЦПУ МК — 12 2 МГц.
В проект входят следующие исходные файлы:
Рис. 35.4. Рабáота приложения обáслуживания акселеромìетра
726
Глава 35. Пользовательские проекты на базе AT32UC3
at45dbx.c — функции управления контроллеромì DDattaflash AAT45DDB� x че- черезç
SPISPI,,
at45dbx.h — зçаголовочный файл функций управления контроллеромì DDattaflash,,
at45dbx_mem.c — интерфейс связçи мìодуля CTRRL__AACCESSESS с AAT45DDBx,,
at45dbx_mem.h — файл интерфейса связçи,,
ctrl_access.c — мìодуль абáстракций для интерфейсов памìяти,,
ctrl_access.h — файл абáстракций,,
at45dbx_example.c — приложение примìера обáслуживания AAT45DDBx.
35.1.5. О обслуживание карты памяти SD/MMC
Проект SD_MMC,соçданный на áаçе приìера от Atmel,реалиçует оáслужи-SDSD_служи-__служи-,, созçданный бáазçе примìера AtAtmel,служи-,, реализçует обáслуживание
подключаемìой черезç слот к плате EVEVK1101 карты памìяти SDSD/MMC в режимìе SPISPI. Программììа произçводит проверку наличия подключенной карты памìяти,, и в случае ее обáнаружения программììная функция main() читает
данные изç MMC во встроенную памìять RARAM,, использçуя PDPDCAA.
При рабáоте проекта резçультаты чтения содержимìого первых двадцати бáайтов каждого изç физçических секторов с номìерамìи 1,, 2,2, 33 SDSD/MMC выдаются
во внешнее устройство черезç порт МК USARSART1 в формìате,, показçанномì
на рис. 3 35.6. Кромìе того,, программììа определяет и отобáражает емìкость подключенной карты памìяти.
Настройки COOM--порта: скорость 57600 б áит/с,, 8--NN--1. Тактовая частота ЦПУ МК — 12 2 МГц.
В проект входят следующие исходные файлы:
sd_mmc.c — драйвер SDSD/MMC,,
sd_mmc.h — зçаголовочный файл драйвера MMC,,
sd_mmc_mem.c — интерфейс памìяти MMC,,
sd_mmc_mem.h — файл интерфейса памìяти MMC,,
Рис. 35.5. Рабáота приложения обáслуживания внешней памìяти SPISPI DDattaflash
727
35.6. Использование встроенного АЦП
sd_mmc_example.c — приложение примìера обáслуживания SDSD/MMC,,
conf_access.h — конфигурация мìодуля CTRRL_A_ACCESS,ESS,
conf_sd_mmc.h — конфигурация MMC.
35.1.6. И использование встроенного АаЦП
Проект ADADC,, созçданный на бáазçе примìера от AtAtmel,, произçводит аналого--цифровые преобáразçования с помìощью встроенного АЦП МК AAT32� UC3B. В качестве источников входного иçìеряеìого напряжения про-3232UC333B. B. про-. В измçìеряемìого программììа
использçует сигналы от установленных на плате EVEVK1101 датчиков освещенности и темìпературы.
При рабáоте проекта резçультаты АЦП выдаются во внешнее устройство черезç порт МК USARSART1 в формìате,, показçанномì на рис. 3 35.7. Настройки COOM--порта: скорость 57600 б áит/с,, 8--NN--1. Тактовая частота ЦПУ МК — 12 2 МГц.
В проект входят следующие исходные файлы:
adc.c — драйвер АЦП,,
adc.h — зçаголовочный файл драйвера АЦП,,
adc_example.c — приложение примìера использçования АЦП.
35.1.7. использование встроенного интерфейса USB
35.1.7.1. Устройство/хост USB Mass Storage
Проект USB_M_S,соçданный на áаçе приìера от Atmel,реалиçует по-USSB_по-__по-__SS,по-,, созçданный бáазçе примìера AtAtmel,по-,, реализçует построение
на отладочной платы EVEVK1101 зçапомìинающего устройства бáольшой емìкости с интерфейсомì USB—USB Mass Storage. В качестве паìя- USSB—я-—USSBStoStoragge. В памìяти
для хранения пользçовательских данных приложение использçует встроенную
памìять МК RARAM,, памìять SPISPI DDattaflash AAT335DDBx,, а также памìять подключенной карты SDSD/MMC (в случае ее наличия).
Рис. 35.6 Рабáота приложения обáслуживания карты памìяти SDSD/MMC
728
Глава 35. Пользовательские проекты на базе AT32UC3
Приложение мìожет рабáотать в следующих режимìах:
USSB--устройство,,•
редуцированный USSB--хост,,•
USSB-� устройство с двойной ролью (в çависиìости от состояния нож---с зçависимìости нож•
ки идентификатора IDID).
Последний изç этих режимìов зçадан по умìолчанию. В случае,, если ножка IDID в разçъемìе USSB платы ни к чемìу не подключена (использçуется кабáель USSB miinii--B),, приложение бáудет функционировать в режимìе USSB--устройства. При этомì оно мìожет бáыть подключено к хосту (напримìер,, к PC),чтоáы ис-PPC),ис-),, чтобáы использçоваться
в качестве смìенного USSB--диска.
В случае,, если ножка IDID в разçъемìе USSB платы подключена к обáщемìу проводу (использçуется кабáель USB mini-A),приложение áудет функцио- USSBmiinii-функцио---AA),функцио-),, бáудет функционировать
в режимìе редуцированного USSB--хоста. При этомì к немìу в свою очередь мìожно подключать USSB--устройства.
Замечание. Кабáели USB mini-B и USB mini-A входят в коìплект отла- USSBmiinii-отла---и USSBmiinii-отла---в комìплект отладочной
платы EVEVK1101.
Чтобáы зçадать конфигурацию мìодуля USSB приложения,, отличную от зçаданной по умìолчанию,, необáходимìо внести измçìенения в исходные конфигурационные
файлы проекта conf_usb.h,, conf_access.h,, а з çатемì зçаново сформìировать проект.
Во всех режимìах приложение мìожет поддерживать связçь в интерактивномì
режимìе с внешнимì устройствомì (последовательнымì термìиналомì) черезç порт МК USARSART1. Настройки COOM--порта: скорость 57600 б áит/с,, 8--NN--1. При обмáìене с термìиналомì приложение использçует встроенный интерпретатор
комìандной строки (uSuShell),, который обáеспечивает доступ к файловой системìе (встроенной памìяти МК RARAM — OOn--Chiip ViVirtutual Memoory,, памìяти SPISPI DDattaflash AAT335DDBx,, а также памìяти карты SDSD/MMC) подключенного к комìпьютеру устройства USSB Mass StoStoragge с помìощью приведенного ниже набáора комìанд. При этомì каждый тип использçуемìой физçической памìяти
Рис. 35.7 Рабáота приложения использçования встроенного АЦП
729
35.7. Использование встроенного интерфейса USB
обáслуживается приложениемì и хостомì как отдельный диск зçапомìинающего устройства (рис. 3 35.8: диски G,, H,, II).
Комìанды uSuShell:
disk — получить количество дисков устройства,,
a:,, b: и т. д. — перейти на выбáранный диск,,
mount drivename (a,, b и т. д.) — перейти на выбáранный диск,,
format drivename (a,, b и т. д.) — формìатировать выбáранный диск,,
fat — использçовать тип файловой системìы FAAT с текущимì диском,ì,
df — получить информìацию о свобáодномì пространстве на всех подключенных
дисках,,
cd dirname — перейти в выбáранный каталог,,
cd.. — перейти в старший каталог,,
mark — помìетить текущий каталог,,
goto — перейти в помìеченный каталог,,
ls — вывести список файлов и каталогов в текущемì каталоге,,
rm filename — удалить выбáранный файл или освобáодить каталог,,
rm* — удалить все файлы или пустые каталоги в текущемì каталоге,,
cp filename — копировать файл в помìеченный каталог,,
mv src_filename dst_filename — переимìеновать выбáранный файл,,
mkdir dirname — созçдать каталог,,
deltree dirname — удалить каталог и его содержимìое,,
touch filename — созçдать файл,,
append filename — добáавить в конец выбáранного файла данные,, введенные
с термìинала,,
cat filename — вывести содержание списка файлов.
И
È
нтерпретатор комìандной строки uS� hell поçволяет также получать ин- uSuShellпозçволяет информìацию
о подключенномì к комìпьютеру устройстве с помìощью следующего
набáора комìанд:
Рис. 35.8. Съемìные диски изç состава USSB Mass StoStoragge
730 Глава 35. Пользовательские проекты на базе AT32UC3
lsusb — когда мìодуль USSB в режимìе ведущего,, получить информìацию о USSB,,
usbsync {device|host} — когда � USB в режиìе ведущего,синхрони- USSBв режимìе ведущего,, синхронизçировать
диск USSB--устройства или хоста,,
suspend — когда USB в режиìе ведущего,приостановить дея- USSBв режимìе ведущего,, деятельность
на шине USSB,,
resume — когда USB в режиìе ведущего,воçоáновить деятель- USSBв режимìе ведущего,, возçобáновить деятельность
на шине USSB,,
reboot — сбáросить приложение,,
help — вывести справку о комìандах uSuShell.
После сбáроса программììа приложения произçводит поиск и отобáражение
имìеющихся в его распоряжении ресурсов памìяти,, как показçано на рис. 3 35.9.
Точка входа приложения находится в файле mass_storage_example.c. После
сбáроса приложения его функция main() сначала произçводит инициализçацию
услуг и з çадач,, а з çатемì выполняет их в б áесконечномì цикле.
Приложение устройства/хоста USB Mass Storage áаçируется на выпол- USSBStoStoragge бáазçируется выполнении
четырех разçличных зçадач:
з
ç
адача,, связçанная с обáслуживаниемì интерфейса USSB (исходный • файл usb_task.c),, организçует процесс ренумìерации нижнего уровня в режимìе устройства или хоста. Как только в ходе выполнения этой зçадачи детектируется полное зçавершение подключения черезç USSB,, программììа мìодифицирует разçличные флаги состояния,, которые зçатемì
опрашиваются при выполнении зçадач бáолее высокого уровня;
ç
адача,, связçанная с организçацией функционирования устройства • USSB Mass StoStoragge (исходный файл device_mass_storage_task.c),, выполняет
декодирование в соответствии с протоколомì SSCSISI и доступ к Flash--памìяти;
ç
адача,, связçанная с организçацией функционирования хоста USSB • Mass StoStoragge (исходный файл host_mass_storage_task.c),, управляет подключениемì устройства USB Mass Storage,а также выполняет де- USSBStoStoragge,, а декодирование
в соответствии с протоколомì SSCSISI и доступ к Flash--памìяти;
ç
адача,, связçанная с организçацией обáолочки USSB (исходный файл • ushell_task.c),, управляет обáрабáоткой комìанд термìинала.
35.1.7.2. Устройство/хост USB HID
Проект USB_HID,соçданный на áаçе приìера от Atmel,реалиçует по-USSB_по-__HIDID,по-,, созçданный бáазçе примìера AtAtmel,по-,, реализçует построение
на отладочной платы EVEVK1101 USSBHID-устройства — коì- HIDID-коì---устройства комìпьютерной
«мìыши».
Приложение мìожет рабáотать в следующих режимìах:
USSB--устройство,,•
редуцированный USSB--хост,,•
USSB-устройство с двойной ролью (в çависиìости от состояния нож---с зçависимìости нож•
ки идентификатора IDID).
35.7. Использование встроенного интерфейса USB 731
Последний изç этих режимìов зçадан по умìолчанию. В случае,, если ножка IDID в разçъемìе USSB платы ни к чемìу не подключена (использçуется кабáель miinii--B),, приложение бáудет функционировать в режимìе USSB--устройства. При этомì оно мìожет бáыть подключено к хосту (напримìер,, к PPC),, чтобáы использçоваться в качестве USSB--«мìыши». Управление курсоромì на экране мìонитора комìпьютера осуществляется с помìощью акселеромìетра — путемì наклонов платы.
В случае,, если ножка IDID в разçъемìе USSB платы подключена к обáщемìу проводу (использçуется кабáель miinii--AA),, приложение бáудет функционировать в режимìе редуцированного USSB--хоста. При этомì к немìу в свою очередь мìожно подключать USSB--устройства,, напримìер,, стандартную USSB--«мìышь». В этомì режимìе при подключении к плате EVEVK1101 стандартной USSB--«мìыши» светодиоды платы начинают мìигать,, и приложение циклически выдает ASASCIIII--указçатель положения подключенной «» во внешнее устройство черезç порт МК USARSART1 в формìате,, показçанномì на рис. 3 35.10. Настройки COOM--порта: скорость 57600 б áит/с,, 8--NN--1.
Точка входа приложения находится в файле hid_example.c. В автономìномì
режимìе (бáезç использçования FreeRRTOSOS) функция приложения main() выполняет зçадачи,, определяемìые файламìи usb_task.c и device_mouse_hid_task.c,, в б áесконечномì цикле.
Приложение устройства/хоста USSB HIDID бáазçируется на выполнении трех разçличных зçадач:
з
ç
адача,, связçанная с обáслуживаниемì интерфейса USSB (исходный • файл usb_task.c),, организçует процесс ренумìерации нижнего уровня
Рис. 35.9. Рабáота приложения USSB Mass StoStoragge
732 Глава 35. Пользовательские проекты на базе AT32UC3
в режимìе устройства или хоста. Как только в ходе выполнения этой зçадачи детектируется полное зçавершение подключения черезç USSB,� програììа ìодифицирует раçличные флаги состояния,ко-,, программììа мìодифицирует разçличные состояния,, которые
зçатемì опрашиваются при выполнении зçадач бáолее высокого уровня;
з
ç
адача,, связçанная с выполнениемì операций приложения устройства • высокого уровня (исходный файл device_mouse_hid_task.c). Как только
устройство полностью зçавершило ренумìерацию (получен зçапрос DEVIDEVICEE SESET__CONONFIIGURARATIONION),, начинает выполняться зçадача передачи данных (сообáщений) для конечной точки ININ;
ç
адача,, связçанная с выполнениемì операций приложения хоста вы•
сокого уровня (исходный файл host_mouse_hid_task.c). Как только устройство подключено и полностью ренумìерацию,, начинает
выполняться приемìа данных (сообáщений) для конечной
точки ININ.
В проект входят следующие исходные файлы:
device_mouse_hid_task.c — операции высокого уровня приложения USSB--устройства «мìыши»,,
device_mouse_hid_task.h — зçаголовочный файл,,
host_mouse_hid_task.c — операции высокого уровня приложения USSB--хоста «»,
host_mouse_hid_task.h — файл,,
hid_example.c — примìер приложения USSB HIDID.
35.1.7.3. Устройство/хост USB CDC
Проект USB_CDC,соçданный на áаçе приìера от Atmel,реалиçует при-USSB_при-__CDDC,при-,, созçданный бáазçе примìера AtAtmel,при-,, реализçует примìер
построения на отладочной платы EVEVK1101 устройства/хоста USSB CDDC,свяçывающегося с коìпьютероìчереçвиртуальный COM-порт по-,, связçывающегося с комìпьютеромì черезç по-COOM-по---последнего.
Рис. 35.10. Рабáота приложения USSB HIDID
35.7. Использование встроенного интерфейса USB 733
Приложение мìожет рабáотать в следующих режимìах:
USSB--устройство,,•
редуцированный USSB--хост,,•
USSB-� устройство с двойной ролью (в çависиìости от состояния нож---с зçависимìости нож•
ки идентификатора IDID).
Последний изç этих режимìов зçадан по умìолчанию.
Как уже упомìиналось,, устройство USSB CDDC функционировать как подключение к виртуальномìу COOM--порту комìпьютера хоста,, что очень упрощает прикладное программììирование на стороне хоста.
Для демìонстрации рабáоты приложения плата EVEVK1101 должна бáыть подключена к физçическомìу COOM--порту комìпьютера черезç порт USARSART1. Помìимìо этого необáходимìо также подключить плату к комìпьютеру
черезç порт USB с поìощью каáеля mini-B. При первоìподключе- USSBс помìощью кабáеля miinii-подключе---B. подключе-. При первомì подключении
ОС Wiindodows комìпьютера обáнаруживает новое устройство USSB CDDC и з çапускает «Мастер нового обáорудования»,, как показçано на рис. 3 35.11а. В последовательности,, показçанной на рис.35.11б-á-д,, необáходимìо произçвести
установку на комìпьютер программììного драйвера устройства USSB CDDC,, который находится в архиве AVR32-SoftwareFramework по пути: …\Services\USB\Class\CDC\Examples\Driver\. После этого в комìпьютере хоста бáудет созçдан
виртуальный COOM--порт (в комìпьютере автора — COOM5),, как показçано на рис.35.122.
В режимìе устройства приложение рабáотает следующимì обáразçомì. На комìпьютере
хоста необáходимìо зçапустить две программììы последовательных термìиналов,,
напримìер,, Termiinal (обáеспечивает соединение черезç физçический COOM--порт) и Hyper Termiinal (обáеспечивает соединение черезç виртуальный COOM--порт),, как показçано на рис.35.133. Настройки COOM--портов в обáеих программììах: скорость 57600 б áит/с,, 8--NN--1. После установления соединений мìожно произçводить обмáìен даннымìи мìежду портамìи хоста,, как показçано на рисунке.
В автономìномì режимìе (бáезç использçования FreeRTOS) функция прило-FreeRRTOSOS) прило-) приложения
main() выполняет зçадачи,, определяемìые файламìи usb_task.c,, device_cdc_task.c и host_cdc_task.c в б áесконечномì цикле.
Приложение устройства/хоста USSB CDDC бáазçируется на выполнении трех разçличных зçадач:
з
ç
адача,, связçанная с обáслуживаниемì интерфейса USSB (исходный • файл usb_task.c),, организçует процесс ренумìерации нижнего уровня в режимìе устройства или хоста. Как только в ходе выполнения этой зçадачи детектируется полное зçавершение подключения черезç USSB,, программììа мìодифицирует разçличные флаги состояния,, которые зçатемì
опрашиваются при выполнении зçадач бáолее высокого уровня;
ç
адача,, связçанная с выполнениемì операций приложения устрой•
ства высокого уровня (исходный файл device_cdc_task.c). Как только
устройство полностью зçавершило ренумìерацию (получен зçапрос DEVIDEVICEE SESET__CONONFIIGURARATIONION),, зçадача созçдает виртуальный COOM--порт: все бáайты,, принятые от USSB,, бáудут переадресованы к USARSART и наобáорот;
734 Глава 35. Пользовательские проекты на базе AT32UC3
з
ç
адача,, связçанная с выполнениемì операций приложения хоста высо•
кого уровня (исходный файл host_cdc_task.c). Как только устройство подключено и полностью зçавершило ренумìерацию,, зçадача созçдает виртуальный COOM--порт.
В проект входят следующие исходные файлы (рис. 3 35.14):
device_cdc_task.c — операции высокого уровня приложения USSB CDDC--устройства,,
device_cdc_task.h — зçаголовочный файл,,
Рис. 35.11. Установка на PPC драйвера для приложения USSB CDDC
35.7. Использование встроенного интерфейса USB 735
host_cdc_task.c — операции высокого уровня приложения USSB CDDC--хоста,,
host_cdc_task.h — зçаголовочный файл,,
uart_usb_lib.c — функции управления USARSART USSB,,
uart_usb_lib.h — файл,,
cdc_example.c — примìер приложения USSB CDDC.
Рис. 35.12. Созçдание виртуального COOM--порта в PPC
Рис. 35.13. Рабáота приложения USSB CDDC
736 Глава 35. Пользовательские проекты на базе AT32UC3
35.1.7.4. Устройство/хост USB Audio
Проект � USB_AUDIO,соçданный на áаçе приìера от Atmel,реалиçует по-USSB_по-__AAUDIODIO,по-,, созçданный бáазçе примìера AtAtmel,по-,, реализçует построение
на отладочной платы EVEVK1101 аудиоустройства с интерфей-с интерфейсомì
USSB — мìикрофона.
Приложение мìожет рабáотать в следующих режимìах:
USSB--устройство,,•
редуцированный USSB--хост,,•
USSB-устройство с двойной ролью (в çависиìости от состояния нож---с зçависимìости нож•
ки идентификатора IDID).
Последний изç этих режимìов зçадан по умìолчанию. В случае,, если ножка IDID в разçъемìе USSB платы ни к чемìу не подключена (использçуется кабáель miinii--B),, приложение бáудет функционировать в режимìе USSB--устройства. При этомì оно мìожет бáыть подключено к хосту (напримìер,, к PPC),, чтобáы использçоваться как USB-ìикрофон. ОС Windows XP и Windows 2000,уста- USSB-уста--м-ìикрофон. WiindodowsXPи Wiindodows22000,, установленные
на комìпьютере автора,, при подключении приложения детектировали
его как источник зçвука для зçаписи (рис. 3 35.15).
Следует зçамìетить,, что в составе платы EVEVK1101 мìикрофон физçически отсутствует. По этой причине приложение для демìонстрации использçует
зçвуковой необáрабáотанный файл (welcome.raw),, зçаписанный во встроенную
Flash--памìять МК. Для инициации поступления потока аудиоданных изç платы EVEVK1101 в хост необáходимìо нажать на «джойстик» платы.
В случае,, если ножка IDID в разçъемìе USSB платы подключена к обáщемìу проводу (использçуется кабáель miinii--AA),, приложение бáудет функционировать в режимìе редуцированного USSB--хоста. При этомì к немìу в свою очередь мìожно подключать периферийные USB-аудиоустройства,наприìер,ìи-USSB-и---аудиоустройства,, напримìер,, мìикрофон.
Встроенная программììа автомìатически обáнаруживает поток аудиоданных
от мìикрофона и преобáразçует этот поток в аналоговый аудиосигнал с помìощью встроенного мìодуля ШИÈМ. При этомì к МК AT32UC3Aнеоá- AAT323232UC3A33AAA необáходимìо
добáавить внешнюю схемìу,, изçобáраженную на рис.35.16. (Для МК AAT3232UC33B следует использçовать не выводы PPB19,, PPB220,, как показçано на
Рис. 35.14. Структура проекта USSB__CDDC
35.7. Использование встроенного интерфейса USB 737
схемìе,, а PA� 07,PA08.) К покаçанноìу на схеìе раçъеìу подключаются ана-PAPA07,07,, PA08.) К показçанномìу схемìе разçъемìу аналоговые
аудионаушники.
В проект входят следующие исходные файлы (рис. 3 35.17):
device_audio_task.c — прикладные операции высокого уровня устройства
USSB AudioAudio,,
device_audio_task.h — зçаголовочный файл,,
host_audio_task.c — прикладные операции высокого уровня хоста USSB host_audio_task.h — файл,,
usb_stream_control.c — драйвер обáрабáотки аудиопотока,,
usb_stream_control.h — зçаголовочный файл,,
audio_example.c — примìер приложения USSB AudioAudio.
Замечание автора. Автору не удалось добáиться корректной рабáоты этого примìера.
35.1.8. И использование RTC
Проект RTC,соçданный на áаçе приìера от Atmel,деìонстрирует функ-RRTC,функ-,, созçданный бáазçе примìера AtAtmel,функ-,, демìонстрирует функционирование
мìодуля счетчика реального времìени (RRTC),, тактируемìого от встроенного генератора частоты 32 32 кГц.
При рабáоте проекта резçультаты счета RRTC каждую секунду выдаются во внешнее устройство черезç порт МК USARSART1 в формìате,, показçанномì на рис.35.18. Настройки COOM--порта: скорость 57600 б áит/с,, 8--NN--1. Тактовая частота ЦПУ МК — 12 2 МГц.
В проект входят следующие исходные файлы:
Рис. 35.15. Обáнаружение устройства USSB AudioAudio
Рис. 35.16. Внешняя схемìа для прослушивания зçвука с мìикрофона USSB AudioAudio
738
Глава 35. Пользовательские проекты на базе AT32UC3
rtc.c — драйвер счетчика реального времìени RRTC,,
rtc.h — зçаголовочный файл,,
rtc_example.c — приложение примìера использçования RRTC.
35.1.9. И использование FLASHC
Проект � FLASHC,соçданный на áаçе приìера от Atmel,деìонстрирует опе-FLASASHC,опе-,, созçданный бáазçе примìера AtAtmel,опе-,, демìонстрирует операции
доступа для чтения/зçаписи к встроенной Flash-паìяти МК,про-про---памìяти МК,, произçводимìые
с помìощью программììного драйвера контроллера Flash--памìяти (FLASASHC). Приложение рассмìатривает Flash--памìять как памìять NVRANVRAM.
При рабáоте проекта содержимìое бáлока Flash--памìяти (NVRANVRAM) после сбáроса инициализçируется некоторымìи константамìи. Затемì произçводится программììная очистка (все бáайты сбáрасываются в 0x00),, после чего в него снова зçаписываются зçначения инициализçации. ИÈнформìация о ходе
Рис. 35.17. Структура проекта USSB_A_AUDIODIO
Рис. 35.18. Рабáота приложения использçования RRTC
739
35.10. Счет циклов ЦПУ
и резçультатах произçводимìых приложениемì операций выдается во внешнее устройство черезç порт МК USARSART1 в формìате,, показçанномì на рис. 3 35.19. Настройки COOM--порта: скорость 57600 б áит/с,, 8--NN--1. Тактовая частота ЦПУ МК — 12 2 МГц.
В проект входят следующие исходные файлы:
flashc.c — драйвер FLASASHC,,
flashc.h — зçаголовочный файл,,
flash_example.c — приложение примìера доступа к Flash--памìяти.
35.1.10. С счет циклов ЦПУ
Проект CPPU,, созçданный на бáазçе примìера от AtAtmel,, иллюстрирует рабáоту счетчика циклов ЦПУ (смì. разçдел «Архитектура и программììная мìодель AVRAVR3232»). Счетчик циклов (регистр COOUNNT) инкремìентируется один разç в каждомì тактовомì цикле ЦПУ незçависимìо от остановов конвейерной обáрабáотки
и сбáросов конвейера. Регистр COOUNNT доступен для программììного чтения/зçаписи. Этот регистр мìожет бáыть использçован совмìестно с регистромì
� COMPAREдля соçдания тайìера,функционирующего по прерыва- COOMPAREPARE созçдания таймìера,, прерыванию.
После сбáроса регистр COOUNNT обáнуляется,, а его инкремìентирование не зçабáлокировано,, поэтомìу оно происходит даже во времìя поступления
зçапроса прерывания от совпадения.
Регистр COOMPAREPARE (регистр сравнения для счетчика циклов) содержит зçначение,, с которымì постоянно сравнивается содержимìое регистра COOUNNT. Регистр COMPAREдоступен для чтения и çаписи. Когда содержиìое ре- COOMPAREPARE и з çаписи. содержимìое регистров
COOMPAREPARE и COOUNNT совпадает,, генерируется зçапрос прерывания. По умìолчанию после сбáроса регистр COOMPAREPARE обáнулен.
Приложение рабáотает следующимì обáразçомì. После сбáроса программììа проверяет корректность зçначений,, которымìи по умìолчанию инициализçируются
регистры COOUNNT и COOMPAREPARE. Когда в процессе выполнения кода ЦПУ текущие зçначения COUNT и COMPAREсовпадают,генериру- COOUNNTи COOMPAREPARE совпадают,, генерируРис.
35.19. Рабáота приложения использçования FLASASHC
740
Глава 35. Пользовательские проекты на базе AT32UC3
ется прерывание от совпадения. Сообáщение обá этомì вмìесте с последнимìи зçагруженнымìи зçначениямìи регистров COOUNNT и COOMPAREPARE выдается во внешнее устройство черезç порт МК USARSART1 в формìате,, показçанномì на рис. 3 35.220. ИÈнтервал мìежду мìомìентамìи генерации прерывания,, выраженный
в циклах ЦПУ,, равен:
(1/fCPPU) × NNB__CLOOCK__CYCLE_DEE_DELAAY_S_SHORORT
в случае,, если для зçадержки зçадано зçначение CLOOCK__CYCLE_DELAAY__SSHORORT = 83,3 м3,3 ìс,, или равен:
(1/fCPPU) × CLOOCK__CYCLE_DELAAY__LONONG
в случае,, если для NNB__CLOOCK__CYCLE_DEE_DELAAY__LONONG = 1,,67 с.
Синхронно с м ìомìентамìи генерации прерывания последовательно зçажигаются
и гаснут светодиоды платы: LEDED0 → LEDED1 → LEDED22 → LEDED33 → LEDED0... и т. д.
Настройки COOM--порта: скорость 57600 б áит/с,, 8--NN--1. Тактовая частота ЦПУ МК — 12 2 МГц (OSOSC0).
В проект входят следующие исходные файлы:
cycle_count_example.c — приложение примìера счетчика циклов,,
cycle_counter.h — интерфейс драйвера счетчика циклов.
35.1.11. Поддержка файловой системы FAT
35.1.11.1. Файловая система FAT с оболочкой Shell
Проект FAAT,, созçданный на бáазçе примìера от AtAtmel,, иллюстрирует поддержку файловой системìы FAAT с размçìещениемì файлов в пространстве памìяти мìикроРис.
35.20. Рабáота приложения счета циклов ЦПУ
741
35.11. Поддержка файловой системы FAT
схемìы SPI � Dataflash AT45DBx. Приложение поддерживает свяçь в интерактив- SPIDDattaflash AAT45DDBx. x. интерактив-. связçь в интерактивномì
режимìе с внешнимì устройствомì (последовательнымì термìиналомì) черезç порт МК USARSART1. Настройки COOM--порта: скорость 57600 б áит/с,, 8--NN--1.
При обмáìене с термìиналомì приложение использçует встроенный интерпретатор
комìандной строки (Shell),который оáеспечивает доступ к файло-SShell),файло-),, обáеспечивает к файловой
системìе в памìяти AAT335DDBx с помìощью приведенного ниже набáора комìанд (рис. 3 35.221).
Комìанды SShell:
a:,, b:... — перейти на выбáранный диск,,
mount drivename (a,, b...) — перейти на выбáранный диск,,
cd dirname — путь к измçìенению каталога dirname,
ls — отобáразçить содержание текущего каталога,,
mkdir dirname — созçдать каталог dirname,,
cat filename — отобáразçить содержимìое файла filename,,
touch filename — созçдать файл filename,,
disk — получить информìацию о количестве дисков,,
append filename — добáавить текст в конец файла,,
mark — помìетить текущий каталог,,
goto — перейти к помìеченномìу,,
cp filename — копировать файл в помìеченное,,
df — получить информìацию о свобáодномì пространстве памìяти,,
fat — получить тип FAAT для текущего диска,,
rm filename — стереть файл или пустой каталог,,
Рис. 35.21. Рабáота приложения поддержки FAAT с обáолочкой SShell
742 Глава 35. Пользовательские проекты на базе AT32UC3
format drivename (a,, b...) — формìатировать выбáранный диск (удалить с него все данные),,
format32 drivename (a,, b...) — формìатировать выбáранный диск в FAAT3232 (удалить с него все данные),, что возмçìожно только в случае,, если позçволяет размçìер диска,,
mv src dst — перемìестить файл или каталог,,
help — отобáразçить список доступных комìанд.
Примìер копирования файла с помìощью комìанд S� hell: перейдя коìан-SShell: ан-: комìандой
cd dirname в каталог адресата,, в который нужно скопировать файл,, помìетьте этот каталог комìандой mark. Потомì перейдите в каталог,, где находится
исходный файл filename,, подлежащий копированию (каталог адресата
должен отличаться от каталога исходного файла). ИÈспользçуйте комìанду cp filename. Возçвратитесь в каталог адресата и введите комìанду ls. Теперь вы должны видеть скопированный файл.
В проект входят следующие исходные файлы:
file.c — функции для доступа к файлам,ì,
file.h — зçаголовочный файл,,
fat.c — функции для доступа FAAT,,
fat.h — файл,,
fat_unusual.c — дополнительные функции для доступа FAAT,,
fs_com.h — структуры и определения для доступа к файловой системìе,,
navigation.c — функции для доступа навигаторов,,
navigation.h — зçаголовочный файл,,
ctrl_access.c — функции управления интерфейсамìи доступа к памìяти,,
ctrl_access.h — файл,,
fat_example.c — примìер приложения FAAT,,
conf_access.h — файл конфигурации управления памìятью для этого примìера,,
conf_at45dbx.h — файл конфигурации памìяти dataflash AT45DB для это- ddattaflashAAT45DDB этого
примìера,,
conf_explorer.h — конфигурация проводника FAAT для этого примìера.
35.1.11.2. Файловая система FAT с интерфейсом POSIX
Подобáно предыдущемìу проекту приложение FSA,соçданное на áаçе при-FSASA,при-,, созçданное бáазçе примìера
от Atmel,иллюстрирует поддержку файловой систеìы FAT с раçìе-AtAtmel,е-,, системìы FAAT с размçìещениемì
файлов в пространстве памìяти мìикросхемìы SPISPI DDattaflash AAT45DDBx и поддержкой связçи в интерактивномì режимìе с последовательнымì термìиналомì
черезç порт МК USARSART1. Настройки COOM--порта: скорость 57600 б áит/с,, 8--NN--1. Тактовая частота ЦПУ МК — 12 2 МГц.
При обмáìене с термìиналомì это приложение использçует интерфейс POSIXPOSIX,, обáеспечивающий доступ к файловой системìе в памìяти DDattaflash AAT335DDBx (рис. 3 35.2222).
Комìанды интерфейса POSIXPOSIX:
1 — читать файл изç файловой системìы в памìяти,,
2 — соединить содержимìое файла с содержимìымì другого файла,,
3 — копировать содержимìое файла в новый файл.
35.11. Поддержка файловой системы FAT 743
При рабáоте этого приложения предполагается,, что памìять DDattaflash содержит
файлы в корневомì каталоге и они поддерживают файловую системìу FAAT122/16/3232.
В проект входят следующие исходные файлы:
file.c — функции для доступа к файлам,ì,
file.h — зçаголовочный файл,,
fat.c — функции для доступа FAAT,,
fat.h — файл,,
fat_unusual.c — дополнительные функции для доступа FAAT,,
fs_com.h — структуры и определения для доступа к файловой системìе,,
navigation.c — функции для доступа навигаторов,,
navigation.h — зçаголовочный файл,,
fsaccess.c — функции для интерфейсов POSIXPOSIX,,
fsaccess.h — файл,,
ctrl_access.c — функции управления интерфейсамìи доступа к памìяти,,
ctrl_access.h — файл,,
fsaccess_example.c — примìер приложения FAAT.
35.1.12. И использование PDCA
Проект PD� CA,соçданный на áаçе приìера от Atmel,деìонстрирует опе-PDPDCAA,опе-,, созçданный бáазçе примìера AtAtmel,опе-,, демìонстрирует операции
периферийного контроллера прямìого доступа к памìяти (PDPDCAA). В данномì примìере мìодуль PDCAáеçучастия ЦПУ проиçводит переìеще- PDPDCAA бáезç произçводит перемìещение
мìассива данных («анимìации» ASASCIIII),, хранимìого во встроенной Flash--
Рис. 35.22. Рабáота приложения поддержки FAAT с обáолочкой POSIXPOSIX
744
Глава 35. Пользовательские проекты на базе AT32UC3
памìяти МК,, во внешнее устройство черезç порт МК USARSART1,, как показçано на рис. 3 35.2323. Настройки COOM--порта: скорость 57600 б áит/с,, 8--NN--1. Тактовая частота ЦПУ МК — 12 2 МГц. «Анимìация» ASASCIIII содержится в двух файлах (ascii_anim1.h и ascii_anim2.h).
В проект входят следующие исходные файлы:
pdca.c — драйвер PDPDCAA,,
pdca.h — зçаголовочный файл,,
pdca_example.c — примìер приложения использçования PDPDCAA.
35.1.13. И использование EIM
Проект EIEIC,, созçданный на бáазçе примìера от AtAtmel,, демìонстрирует операции контроллера внешних прерываний (EIEIM). Приложение использçует внешнее прерывание,, чтобáы «пробáудить» МК изç «спящего» режимìа sleep (подрежимì sttatitic),, в который он переходит после сбáроса. При нажатии на кнопку платы
EVEVK1101,, подключенную к линии PPB0,, МК «пробáуждается»,, и светодиод «LEDED0» начинает мìигать. При повторномì нажатии МК снова переходит в «спящий
» режимì sleep (подрежимì sttatitic). Тактовая частота ЦПУ МК — 12 2 МГц.
В проект входят следующие исходные файлы:
eic.c — драйвер EIEIM,,
eic.h — зçаголовочный файл,,
eic_example1.c — приложение примìера использçования EIEIM.
35.1.14. использование INTC
Проект IN� TC,соçданный на áаçе приìера от Atmel,деìонстрирует опера-ININTC,опера-,, созçданный бáазçе примìера AtAtmel,опера-,, демìонстрирует операции
контроллера прерываний (ININTC). Драйвер ININTC использçуется в этомì приложении для обáрабáотки прерывания USARSART RXRDRXRDY.
Приложение рабáотает следующимì обáразçомì. Плата EVEVK1101 подключается
черезç порт МК USARSART1 к последовательномìу термìиналу. Настройки
Рис. 35.23. Рабáота приложения использçования PDPDCAA
745
35.15. Использование PWM
COOM--порта: скорость 57600 б áит/с,, 8--NN--1. Каждый симìвол,, напечатанный в передающемì окне термìинала (переданный в плату EVEVK1101),, немìедленно передается приложениемì обáратно и отобáражается в приемìномì окне термìинала,,
как показçано на рис. 3 35.224. Тактовая частота ЦПУ МК — 12 2 МГц.
В проект входят следующие исходные файлы:
intc.c — драйвер контроллера прерываний,,
intc.h — зçаголовочный файл,,
exception.S — ассембìáлерный файл обáрабáотки прерываний и исключений для GCC,,
interrupt_usart_example.c — приложение примìера использçования контроллера
прерываний.
35.1.15. И использование PWM
Проект PPWM,, созçданный на бáазçе примìера от AtAtmel,, демìонстрирует рабáоту мìодуля ШИÈМ (P� WM). После сáроса приложение проиçводит конфигури-PPWM). конфигури-). сбáроса произçводит конфигурирование
PWM и выводит его выходную иìпульсную последова- и имìпульсную последовательность
черезç линию ввода--вывода PAPA07 (PPWM0),, к которой подключен
светодиод «LEDED0». Заданная частота имìпульсов ШИÈМ равна 22,22,5 Гц с рабáочимì циклом,ì, равнымì 33/4,, что мìожно проконтролировать с помìощью осциллографа.
ЦПУ МК в этомì приложении тактируется от встроенного RRC--генератора с частотой примìерно 1152200 Гц.
35.1.16. использование TC
Проект TC,, созçданный на бáазçе примìера от AtAtmel,, демìонстрирует рабáоту одного изç каналов таймìеров--счетчиков МК (TC). После сбáроса приложение произçводит конфигурирование мìодуля TC и выводит генерируеìую кана- и генерируемìую каналомì
TC ШÈМ-последовательность череçлинию ввода-вывода МК. Прило- ШИÈМ--черезç ввода--ПрилоРис.
35.24. Рабáота приложения использçования ININTC
746
Глава 35. Пользовательские проекты на базе AT32UC3
жение использçует канал 0 мìодуля таймìеров--счетчиков и связçанную с нимì линию TIOAIOA0. При конфигурировании TC в качестве источника синхронизçации выбáирается внутренний источник TIIMER_ER_CLOOCK22. Тактовая
частота ЦПУ МК — 12 2 МГц.
Для контроля рабáоты приложения (набáлюдения выходного сигнала) необáходимìо
подключить вход осциллографа к линии ввода--вывода PPB00,, на которую в МК AAT3232UC33B отобáражена линия TIOAIOA0.
Приложение рабáотает следующимì обáразçомì. 16--разçрядный регистр зçначения таймìера--счетчика (CVV) циклически измçìеняет свое содержимìое в пределах от 0x0000 до 0xFFFF,, зçадавая период генерируемìой ШИÈМ--последоватеьности. В выбáранномì канале состояние выхода переходит в высокий уровень при достижении � CVçначения 0x0600,а çатеìв ниç- CVV 0x0600,, а з çатемì в низçкий
уровень при достижении 0x22000. Такимì обáразçом,ì, рабáочий
цикл генерируемìой ШИÈМ--последовательности составляет (0x22000—0x600)/0x10000,, т. е. 10,,16%.
Выбáранное зçначение синхросигнала TIIMER_ER_CLOOCK22 соответствует clk__pba/4 и при зçаданной частоте clk__pba = 12 2 МГц равно 3 3 МГц. Следовательно,,
частота генерируемìой ШИÈМ--последовательности составляет 33000000/655335 = 45,,7 Гц,, а период — 221,,845 м ìс. При рабáочемì цикле 10,,16% длительность имìпульса ШИÈМ составляет примìерно 2,2 м2,2 ìс.
В проект входят следующие исходные файлы:
tc.c — драйвер TC,,
tc.h — зçаголовочный файл,,
tc_example1.c — приложение примìера использçования TC.
35.1.17. И использование PM
Проект PPM,, созçданный на бáазçе примìера от AtAtmel,, демìонстрирует рабáоту мìодуля мìенеджера питания МК (PM). После сáроса приложение проиçво-PPM). во-). сбáроса произçводит
конфигурирование PM такиìоáраçоì,чтоáы входящий в со- такимì обáразçом,ì, чтобáы в состав
МК генератор 0 (OSOSC0) использçовался в качестве источника зçадающей
частоты МК. Кромìе того,, сигнал OSOSC0 = 12 2 МГц подается на ножку универсального синхросигнала GCLK22 (линия ввода--вывода PA3PA30),, где его мìожно набáлюдать с помìощью осциллографа.
В проект входят следующие исходные файлы:
pm_example1.c — приложение примìера использçования PPM.
35.1.18. Поддержка FreeRTOS.org
Проект FreeRtos,соçданный на áаçе приìера от Atmel,деìонстрирует под-FreeRtoRtos,под-,, созçданный бáазçе примìера AtAtmel,под-,, демìонстрирует поддержку
МК AT32UC3B ОС FreeRTOS.orgV4.6.0. FreeRTOS.orgTM пред- AAT323232UC333B FreeRRTOSOS.пред-.oorgg VV4.6.0. FreeRRTOSOS.пред-.oorggTMпредставляет
собáой комìпактное портируемìое ядро ОС реального времìени с открытымì
исходнымì текстом,ì, которое мìожет использçоваться в коммììерческих приложениях (www.freertotos.oorgg). FreeRRTOSOS.oorgg имìеет следующие основные особáенности:
ядро RTOSс приоритетныìи,совìестныìи и гиáридныìи вариан- RRTOSOS с приоритетнымìи,, совмìестнымìи и гибáриднымìи вариан•
тамìи конфигурации,,
747
35.18. Поддержка FreeRTOS.org
Рис. 35.25. Рабáота приложения поддержки FreeRRTOSOS
поддержка сопрограммìì и подпрограмм,ìì,•
очень удобáная для портирования структура кода,, в основном,ì, на•
писанного на C,,
отсутствие ограничений на количество выполняемìых зçадач,,•
отсутствие ограничений на количество использçуемìых приоритетов,,•
отсутствие ограничений на назçначение приоритетов — бáолее чемì • для одной зçадачи мìожет бáыть назçначен один и тот же приоритет,,
поддержка очередей и семìафоров для связçи и синхронизçации мìежду • зçадачамìи или и прерываниямìи,,
свобáодно распространяемìый исходный текст встроенного про•
граммììного обáеспечения,,
б
á
есплатное (бáезçгонорарное) использçование,,•
кросс--разçрабáотка с помìощью стандартного хоста с ОС Wiindodows,,•
наличие демìонстрационных приложений,, сконфигурированных для • выбáранных мìоделей комìпьютерных плат,,
конфигурация времìени комìпиляции,, позçволяющая использçовать • ОС при мìаломì обáъемìе наличной Flash--памìяти,,
приложения,, являющиеся произçводнымìи SSafeRRTOSOS,, обáеспечивают • высокую степень секретности кода.
Приложение поддерживает связçь в интерактивномì режимìе с внешнимì устройствомì (последовательнымì термìиналомì) черезç порт МК USARSART1. Настройки
COOM--порта: скорость 57600 б áит/с,, 8--NN--1. Тактовая частота ЦПУ МК — 12 2 МГц. После сбáроса в приемìномì окне термìинала появляется сообáщение
о старте FreeRRTOSOS,, как показçано на рис. 3 35.225.
В проект входят следующие исходные файлы:
main.c — примìер поддержки FreeRRTOSOS.
Следует зçамìетить,, что в числе примìеров для созçдания проектов в AVR32Studio AVR32Studio содержатся примìеры построения устройств/хостов USSB Mass� Storage,USB CDC,USB HIDи USB Audio раáотающих,как автоноì- StoStoragge,автоноì-,, USSBCDDC,автоноì-,, USSBHIDID и USSBAudioрабáотающих,, автономìно
(смì. выше),, так и под управлениемì FreeRRTOSOS.oorgg.
748 Глава 35. Пользовательские проекты на базе AT32UC3
35.2. Проекты для EVK1100
Когда эта книга уже готовилась к печати,, в распоряжение автора поступила
отладочная плата EVEVK1100,, для которой также бáыло созçдано несколько проектов на бáазçе примìеров изç AVR32-SoftwareFramework. Все эти проекты содержатся на прилагаемìомì к книге DVDDVD--диске в каталоге рабáочей обáласти PR_AVR32_AVR32Studio_A,, созçданной в AVR32Studio AVR32Studio.
35.2.1. Поддержка символьного ЖКИки
Этот простой проект с имìенемì DIP2� 04,соçданный на áаçе приìера от At-DIPDIP22204,, созçданный бáазçе примìера AtAtmel,,
демìонстрирует поддержку МК AAT3232UC33AA симìвольного 4--х строчного ЖКИÈ EA-DIP2EA-DIP204B--4NNLW,, установленного на плате EVK1100,а также под-EVEVK1100,1100,, а поддержу
«штатных» кнопок платы и м ìанипулятора типа «джойстик».
Приложение рабáотает следующимì обáразçомì. После сбáроса программììа выводит на экран ЖКИÈ некую начальную зçаставку (информìация о назçвании
фирмìы,, оценочной платы,, процессора). Путемì нажатий на кнопку «PPB0» мìожно последовательно отобáразçить в нижней строке экрана полный набáор всех доступных для данного ЖКИÈ симìволов. С помìощью кнопок «PPB1» и «PPB22» соответственно умìеньшить или увеличить яркость подсветки ЖКИÈ. При м ìанипуляциях с «джойстикомì» его текущее положение
отобáражается на ЖКИÈ стрелкамìи соответствующего направления. При нажатии на кнопку «джойстика» на ЖКИÈ восстанавливается начальная
зçаставка. Тактовая частота ЦПУ МК — 12 2 МГц.
В проект входят следующие исходные файлы:
dip204_example.c — приложение примìера поддержки симìвольного ЖКИÈ.
35.2.2. Control Panel как Web-сервер
Плата EVEVK1100 поставляется с прошитымì в МК кодомì демìоприложения «Панель управления» (Coonttrool PPanel). Аналогичный код получается в резçультате
формìирования созçданного на бáазçе соответствующего примìера от AtAtmel проекта CONONT__PANEPANEL. От аналогичного проекта для платы EVEVK1101 этот проект отличается в частности тем,ì, что использçует аппаратный мìодуль
EtEthernett MAAC (MAACB),, входящий в состав МК AAT3232UC33AA. Наличие в составе AT32UC3Aìодуля MACB поçволяет реалиçовать на áаçе пла- AAT323232UC3A33AAA мìодуля MAACBпозçволяет реализçовать бáазçе платы
EVEVK1100 весьмìа актуальное на сегодняшний день приложение — Web--сервер. При этомì содержимìое Web--сервера хранится в энергонезçависимìой памìяти вне МК и м ìожет целикомì зçадаваться пользçователемì. В описании приложения указçывается,, что для хранения содержимìого Web-сервера ìо-о---мìожет
использçоваться SPISPI Dataflash AT45DBx платы EVK1100 или карта па- DDattaflash AAT45DDBx EVEVK1100 памìяти
SDSD/MMC (она должна бáыть вставлена в слот MMC платы).
Приложение Coonttrool PPanel выполняется под управлениемì ОС freeRRTOSOS.oorgg. Управляющая программììа Coonttrool реализçует сбáор данных — накопление
резçультатов АЦП МК при измçìерениях сигналов от датчиков платы EVEVK1100 (датчика освещенности,, датчика темìпературы,, потенциомìетра,,
35.18. Поддержка FreeRTOS.org 749
джойстика,, кнопок). Собáранные данные сохраняются приложениемì в SPISPI DDattaflash в текстовых файлах файловой системìы FAAT. Доступ к файламì собáранных данных мìожет бáыть осуществлен с помìощью локального подключения
к плате черезç USARSART или USSB,, а также с помìощью удаленного или локального подключения черезç ИÈнтернет (Web--сервер).
Конфигурирование Coonttrool PPanel (управление датчикамìи,, светодиодамìи,,
зçадание сетевых адресов и м ìасок,, системìного времìени/даты и т. д.) также мìожно осуществлять либáо локально (черезç USARSART или USSB),, либáо удаленно (черезç ИÈнтернет).
В части реализçации функций Web--сервера приложение Coonttrool рабáотает следующимì обáразçомì. После сбáроса на экране ЖКИÈ отобáражается
начальная зçаставка,, вид которой показçан на рис. 3 35.226а. При подключении
платы к сетевомìу разçъемìу порта EtEthernett PPC с помìощью прямìого (неперекрестного) сетевого EtEthernett--кабáеля с разçъемìамìи RRJ45 (UTPP PPattch 1.5m Catt.5EE,, ggray),, входящего в состав комìплекта EVEVK� 1100,програììа при-1100,, программììа приложения
обáнаруживает это подключение и отобáражает на второй строке ЖКИÈ IPIP--адрес Web--сервера EVEVK1100,, по умìолчанию равный 1922.168.0.22 (рис.35.226бá).
Следующимì шагомì необáходимìо произçвести настройку сетевого подключения
в PPC. Для этого (при рабáоте в ОС Wiindodows XPXP) выбáираемì в м ìеню Пуск>Подключение>Отобразить все подключения,, после чего откроется окно сетевых подключений,, как показçано на рис.35.227. Выбáрав уже имìеющееся
(или созçдав новое) подключение ЛВС или высокоскоростной интернет,,
необáходимìо кликнуть на его иконке правой кнопкой «мìыши» для отобáражения его контекстного мìеню,, как показçано на рис.35.228. При выбáоре
в этомì мìеню пункта Свойства откроется окно свойств выбáранного подключения,, показçанное на рис.35.229. В этомì окне необáходимìо помìетить галочкой пункт Протокол Интернета (TCP/IP) и установить на немì курсор,, а з çатемì кликнуть на кнопке Свойства. В открывшемìся окне,, показçанномì на рис.35.330,, необáходимìо активировать опцию Использовать следующий IP-адрес и з çадать зçначение IPIP--адреса PPC,, по мìолчанию равное 1922.168.0.56,, а также мìаски подсети,, по умìолчанию равное 2255.2255.2255.0. В з çавершение
следует кликнуть на кнопке OK окна.
После подключения платы к PPC и настройки сетевого подключения необáходимìо включить его при помìощи комìанды Включить в контекстного мìеню (смì. рис.35.228). Проконтролировать включение мìожно комìандой СоРис.
35.26. Заставки ЖКИÈ EVEVK1100 при рабáоте приложения Coonttrool PPanel
а
в
б
г
750 Глава 35. Пользовательские проекты на базе AT32UC3
стояние,, после выполнения которой отобáразçиться окно состояния подключения,,
показçанное на рис. 3 35.331.
Для демìонстрации рабáоты � Web-сервера нужно çапустить на PC лю- лю---зçапустить PPCлюбáой
Web-áрауçер,наприìер,MicrosoftInternetExplorer,в адресной стро- стро--б-áраузçер,, напримìер,, Miicroosooftt IIntternett EExploorer,стро-,, в строке
которого необáходимìо набáрать зçаданный по умìолчанию IPIP--адрес Web--сервера — 1922.168.0.22. После этого должно установиться сетевое соединение и приложение зçагрузçит в б áраузçер Web--страницу,, показçанную на рис.35.3232. Эта операция произçводится приложениемì только в томì случае,, если самì пользçовательский Web-сервер еще не соçдан. Страница содержит руковод-руковод---созçдан. руководство
по созçданию содержимìого Web-сервера. В неìукаçывается,что поль-поль---В немì указçывается,, пользçователю
необáходимìо зçаписать содержимìое (файлы) Web-сервера в энерго-энерго---в энергонезçависимìую
памìять платы,, что мìожно сделать двумìя способáамìи:
Перевести приложение 1. Coonttrool PPanel в режимì USSB--устройства Mass StoStoragge. Для этого нужно подключить плату к хосту (PPC) черезç порт USSB с использçованиемì кабáеля USSB miinii--B,, а з çатемì однократно нажать на «джойстик» платы. При этомì на ЖКИÈ последовательно
появятся зçаставки,, показçанные на рис.35.226в,, рис.35.226г,, а ОС Wiindodows XPXP на PC должна оáнаружить появление в систеìе ново- PPCобáнаружить в системìе новоРис.
35.27. Окно сетевых подключений в ОС в Wiindodows XPXP
Рис. 35.28. Контекстное мìеню сетевого подключения
35.18. Поддержка FreeRTOS.org 751
го диска (дисков) памìяти. Значок антенны в правой части ЖКИÈ (рис. 3 35.226г) при этомì бáудет мìигать. После обáнаружения Wiindodows дисков USSB Mass StoStoragge,, необáходимìо отформìатировать их средствамìи
Wiindodows,, а з çатемì скопировать на один изç них каталог Web со всемì его содержимìымì. Указçанный каталог находится по пути CONT_PANEL\src\DATAFLASH_CONTENT\Web,, где CONT�_PAN-_PAN-PANEL
— каталог этого проекта в каталоге рабáочей обáласти PR_AVR32_AVR32Studio_A. Аналогичный каталог Web имìеется также в архиве AVR32-SoftwareFramework по пути APPLICATIONS\EVK1100-CON-\CON-EVK1100-CONTROL-
PANEL\DATAFLASH_CONTENT\Web. Следует зçамìетить,, что во времìя операций с дискамìи USSB Mass StoStoragge Web-сервер функ-функ---функционировать
не бáудет. Помìимìо зçаписи в памìять платы файлов Web--сервера пользçователь мìожет созçдать в корневой директории диска USSB Mass еще два пустых каталога: LOG и CFG. При рабáоте Web--сервера приложение бáудет зçаписывать в них текстовые файлы резçультатов измçìерений сигналов с датчиков,, а также файлы измçìенений
системìной конфигурации,, произçводимìых пользçователемì. После
Рис. 35.29. Окно свойств выбáранного сетевого подключения
Рис. 35.30. Окно свойств протокола ИÈнтернета (TCP/IP) выáранного сете-TCPP/сете-/IPIP) сете-) выбáранного сетевого
подключения
752 Глава 35. Пользовательские проекты на базе AT32UC3
з
ç
авершения операций с USSB Mass StoStoragge приложение следует вернуть
в режимì � Web-сервера путеìоднократного нажатия на «джой-джой---путемì джойстик
» (смì. рис. 3 35.226бá).
Перевести приложение 22. Coonttrool PPanel в режимì USSB--хоста Mass StoStoragge. ИÈспользçуя кабáель USB mini-A,подключить к плате дополнитель- USSBmiinii-дополнитель---AA,дополнитель-,, к дополнительное
USB-устройство паìяти (USB-key),на которое предваритель-USSB-предваритель---памìяти USSB--key),, предварительно
должен бáыть зçаписан каталог Web. соответствующие комìанды встроенного мìеню приложения,, выбáираемìые и з çапускаемìые
«джойстикомì» и отобáражаемìые на ЖКИ,È, необáходимìо зçагрузçить в памìять платы каталог Web. С помìощью соответствующих комìанд мìожно также скопировать на USSB--key файлы резçультатов изçмìерений
и файлы конфигурации системìы.
Примечание автора: Руководство по созçданию Web-сервера явно не ого-ого---оговаривает,,
на какой изç дисков USSB Mass StoStoragge следует зçаписывать каталог Web,, однако,, у автора Web--сервер рабáотал корректно только в томì случае,, если каталог Web бáыл зçаписан в SPISPI DDattaflash.
Окно бáраузçера с з çагруженной главной страницей Web--сервера,, показçано на рис.35.3333. На рис.35.334 показçана страница системìной конфигурации.
При рабáоте Coonttrool PPanel связçь с внешнимìи устройствамìи осуществляется
также черезç порт МК USARSART1. Данные выдаются приложениемì в формìате,, показçанномì на рис.35.335. Настройки COOM--порта: скорость 57600 б áит/с,, 8--NN--1.
35.2.3. И использование интерфейса Ethernet MAC (MACB)
Проект EMAC,соçданный на áаçе приìера от Atmel,также испольçует ìо-EEMAAC,о-,, созçданный бáазçе примìера AtAtmel,о-,, использçует мìодуль
EtEthernett MAAC (MAACB) МК AAT3232UC33AA. Тактовая частота ЦПУ МК — 48 МГц. Для демìонстрации рабáоты этого приложения использçуется комìпьютерная
утилита ping,, на входящие зçапросы которой плата EVEVK1100 дает ответы. По умìолчанию плата имìеет IP-IP-адрес,, равный 1922.168.0.2,2, а PC должен иìеть IP-адрес,равный 192.168.0.1. (Этот адрес следует çа- PPCимìеть адрес,, 1922.168.0.1. зçадать
в окне,, показçанномì на рис.35.330.) Как и в предыдущемì проекте,, для
Рис. 35.31. Окно текущего состояния выбáранного сетевого подключения
35.18. Поддержка FreeRTOS.org 753
подключения к PPC использçуется прямìой сетевой EtEthernett--кабáель. После подключения платы к необáходимìо включить в Wiindodows нужное сетевое подключение.
Для зçапуска утилиты ping (при рабáоте в Wiindodows XPXP) следует выбáрать в мìеню Пуск>Выполнить…,, а з çатемì в открывшемìся окне (рис. 3 35.336) ввести комìанду:
ping 192.168.0.2 -t
После этого откроется окно,, показçанное на рис.35.337,, отражающее процесс и резçультаты выполнения утилиты ping. Содержимìое окна,, показçанное
на рисунке,, указçывает на установленное сетевое соединение мìежду PPC и платой,, при которомì успешно произçводится обмáìен даннымìи черезç EtEthernett бáезç их потерь. Ключ «-t» в комìанде зçадает неограниченное число пакетов в посылке.
При рабáоте этого приложения связçь с внешнимìи устройствамìи осуществляется
также черезç порт МК USARSART1. Данные выдаются приложениемì
в формìате,, показçанномì на рис.35.338. Настройки COOM--порта: скорость 57600 бáит/с,, 8--NN--1.
В проект входят следующие исходные файлы:
macb.c — драйвер MAACB,,
macb.h — зçаголовочный файл,,
macb_example.c — примìер приложения MAACB,,
conf_eth.h — файл конфигурации сети стандарта EtEthernett.
Рис. 35.32. Загрузçка в бáраузçер Web--страницы «пустого» сервера
754 Глава 35. Пользовательские проекты на базе AT32UC3
Рис. 35.33. Загрузçка в бáраузçер главной страницы Web--сервера
Рис. 35.34. Загрузçка в бáраузçер страницы системìной конфигурации Web--сервера
35.18. Поддержка FreeRTOS.org 755
35.2.4. И использование аудио ЦАаП битового потока (ABDAC)
Проект A� BDAC,соçданный на áаçе приìера от Atmel,деìонстрирует раáо-AABDADAC,о-,, созçданный бáазçе примìера AtAtmel,о-,, демìонстрирует рабáоту
мìодуля аудио--ЦАП бáитового потока,, входящего в состав МК AAT3232UC33AA. Программììа приложения обáеспечивает генерацию на выходах DADATAA0 (PPB022) и DARADARA1 (PPB033) AABDADAC имìпульсной последовательности сложной формìы. Парамìетры этой последовательности зçадается табáлицамìи данных в файле проекта dac_example.c.
В проект входят следующие исходные файлы:
abdac.c — драйвер AABDADAC,,
abdac.h — зçаголовочный файл,,
dac_example.c — примìер приложения AABDADAC.
35.2.5. использование встроенного АаЦП
Проект ADADC,, созçданный на бáазçе примìера от AtAtmel,, произçводит аналого--цифровые преобáразçования с помìощью встроенного мìодуля АЦП МК AAT32UC3A. В качестве источников входного иçìеряеìого напряжения про-3232UC3A33AAA. про-. В измçìеряемìого программììа
использçует сигналы от установленных на плате EVEVK1100 датчиков
Рис. 35.35. Формìат выдачи данных приложениемì Coonttrool PPanel черезç USARSART1
Рис. 35.36. Окно зçапуска программììы в ОС в Wiindodows XPXP
756 Глава 35. Пользовательские проекты на базе AT32UC3
освещенности,, темìпературы,, а также напряжение на подвижномì контакте потенциомìетра.
При рабáоте проекта резçультаты АЦП выдаются во внешнее устройство черезç порт МК USARSART1 в формìате,, аналогичномì показçанномìу на рис. 3 35.7. Настройки COOM--порта: скорость 57600 бáит/с,, 8--NN--1. Тактовая частота ЦПУ МК — 12 2 МГц.
В проект входят следующие исходные файлы:
adc.c — драйвер АЦП,,
adc.h — зçаголовочный файл драйвера АЦП,,
adc_example.c — приложение примìера использçования АЦП.
Рис. 35.37. Окно,, отражающее процесс и резçультаты выполнения утилиты piingg
Рис. 35.38. Формìат выдачи данных приложениемì EEMAAC черезç USARSART1