Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Симуляція і ладнання програм в середовищі AVR Studio






Для запуску AVR Studio необхідно зробити подвійне натискання (подвійний " клик") на піктограму програми на робочому столі або вибрати Запустити > Усі програми > Atmel AVR Tools > AvrStudio4 чи запустити відповідний файл на диску C: \ (c: \ Program Files \ Atmel \ AVR Tools \ AvrStudio4 \ AVRStudio.exe) Після чого на екрані з'явиться вікно, зображене на рисунку 1.4.

 

Рисунок 1.4 – Вікно привітання AVR Studio

 

Можна створити новий проект вибравши в меню Project пункт New Project або натиснувши відповідну кнопку діалогового вікна, зображеного на рисунку 1.4. Оскільки ми вже маємо файл LR1.cof, створений в Programmer's Notepad, скористаємось ним. Натискаємо Open та вибираємо відповідний файл. В результаті буде запропоновано вибрати тип симулятора та мікроконтролер (рисунок 1.5). В нашому випадку вибираємо AVR Simulator та мікроконтролер ATMEGA 169.

Рисунок 1.5 – Вибір симулятора і типу мікрокрнтролера

Далі розглянемо основні елементи середовища AVR Studio. Основне його вікно виглядає так:

Рисунок 1.6 – Вікно AVR Studio з завантаженим об’єктним файлом

У вікні початкового коду рядок, який буде виконано першим виділяється жовтою стрілкою. Варто врахувати, що початковий код взятий із файлу.cof або.hex, а відтак редакції у AVR Studio не підлягає. Зміни в текст програми треба вносити в середовищі Programmer's notepad, потім заново виконати компіляцію, і створення об’єктного файлу, потім переключитися у AVR Studio. Якщо у AVR Studio відкритий той же файл, то зміни в ньому будуть автоматично розпізнані і з’явиться пропозиція обновити вміст вікна початкового коду. Цю операцію можна виконати вручну за допомогою кнопки Reload Object File на панелі інструментів .

Вікно Register дає доступ до 32-ох робочих регістрів. Для прикладу можна відредагувати вміст будь-якого регістра, як до так і в процесі виконання програми. Для цього необхідно вибрати потрібний елемент у вікні Register (двічі натиснути на потрібному значенні регістра) і ввести потрібне значення у вікно Edit (рисунок 1.7.).

Рисунок 1.7 – Редагування значень в робочому регістрі R03

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

Особливий практичний інтерес являє собою вікно Processor, зображене на рисунку 1.8.

Рисунок 1.8 – Зовнішній вигляд вікна Processor

Представлені тут елементи дозволяють змінювати вміст програмного лічильника Program Counter (PC), вказівника стеку Stack Pointer (SP), регістрів подвійної довжини X Pointer, Y Register, Z Register, лічильника циклів Cycle Counter (тільки за допомогою кнопки Reset), показники таймера відліку часу Stop Watch, регістрів стану SREG (Status Register) та робочих регістрів R00–R31. Для виставлення таймера підрахунку часу на 0 необхідно натиснути правою клавішею миші на вікні Processor і вибрати пункт Reset Cycle counter (цей таймер застосовують для визначення часу виконання частин програми мікроконтролером).

За допомогою вікна I/O View (рисунок 1.9) користувач може контролювати роботу пристроїв введення-виведення. Під час редагування видимі елементи виділяються червоним кольором. Усі налаштування зберігаються між проектними сесіями.

Рисунок 1.9 – Елементи контролю за роботою пристроїв введення-виведення

Наприклад, за допомогою елемента PORTD можна переглянути створену раніше програму в дії (рисунки 1.9, 1.10). для цього достатньо запустити її на виконання командою Auto Step меню Debug. Команда Auto Step відрізняється від команди Run тим, що в ході виконання програми після кожного кроку оновлюються вікна AVR Studio. Для того щоб перервати виконання програми необхідно виконати команду Break меню Debug.

Рисунок 1.10 – Програма LR.1 відключає всі світлодіоди, підключені до виводів порту D

Оскільки симулятор виконує програму в віртуальному середовищі, вона працює значно повільніше ніж в реальному мікроконтролері. Наприклад, для реальної програми, що завантажується в мікроконтролер, затримки для функції _delay_loop_2 мають бути в 1000 раз більше.

Розглянемо вікна Memory (рисунок 1.11). Вікно Memory дозволяє користувачу при необхідності контролювати або змінювати область пам’яті мікроконтролера, наприклад, пам'ять даних, пам'ять програм, пам'ять EEPROM, пам'ять введення-виведення. Можна одночасно відкривати декілька вікон Memory, використовуючи відповідні команди меню View.

Рисунок 1.11 – Вікна Memory середовища AVR Studio

Тип області пам’яті вибирається у лівому верхньому кутку вікна Memory. На рисунку 1.11 в вікні Memory вибрана пам'ять програм, а в вікні Memory2 –пам'ять даних. За допомогою кнопки 8\16, а також команд текстового меню 1 Byte, 2 Byte можна розбивати дамп пам’яті на одно або двобайтові фрагменти. За допомогою кнопки abc. Користувач може відобразити або прибрати додаткову колонку з ASCII-значеннями області пам'яті, що відображається. Поле Address служить для відображення і вводу адреси комірки пам’яті, яка відображається в даний момент в верхній частині вікна. Кількість колонок зі значеннями комірок пам'яті вибирається за допомогою випадаючого списку Cols: (якщо вибраний елемент Auto, то кількість колонок вибирається автоматично в залежності від ширини вікна Memory).

Вміст комірок пам'яті в вікні Memory можна легко змінювати шляхом прямого введення даних. Також нові значення комірок можна вводити в спеціальному діалоговому вікні, яке з'являється після подвійного натискання лівої кнопки миші на відповідній комірці. В такому випадку зміни відбуваються не миттєво, а тільки після натискання кнопки OK в вікні Edit. Значення адреси відображаються в шістнадцятковій системі числення, причому адреси восьмирозрядних комірок пам’яті виділені сірим кольором, а шістнадцятирозрядних – блакитним.

Вікно Watch (рисунок 1.12) служить для відображення типів, значень і адрес змінних в програмі на С. Вікно Watch можна відкрити за допомогою відповідної команди меню View. Воно складається з чотирьох колонок, в першій вказане ім’я об’єкта за яким ведеться спостереження, в другій тип об’єкта, в третій поточне значення об’єкта, а в четвертій адреса об’єктів. Користувач може додавати нові об’єкти в вікно Watch за допомогою команди Add Item контекстного меню в вікні Watch (відкривається правою кнопкою миші), за допомогою подвійного клацання на вільному полі першої колонки або за допомогою команди Add to Watch контекстного меню вікна вихідного коду. Видалити об’єкти можна командою Remove selectеd Item (видалити виділений об'єкт) або Remove all Items (видалити всі об’єкти спостереження), що вибираються із меню після натискання правої клавіші миші в вікні Watch.

Рисунок 1.12 – Вікно Watch середовища AVR Studio

Розглянемо детальніше процес ладнання програми. Під ладнанням розуміють покрокове виконання програми з контролем вмісту регістрів мікроконтролера (перевірка на низькому рівні) та змінних (перевірка на програмному рівні). Ладнання програм в AVR Studio відбувається з допомогою команд меню Debug і кнопок відповідної панелі інструментів.

Перед розглядом зазначених команд необхідно з'ясувати поняття " Точки переривання". Точка переривання (breakpoint)– це рядок початкового коду, на якому робота програми призупиняється (позначається коричневим кружком зліва від рядка). Таких точок може бути встановлено стільки, скільки є ефективних рядків у програмі. Для їх встановлення служить команда Toggle Breakpoint (кнопка ), а для видалення Remove Breakpoints (кнопка ) в меню Debug, для послідовного переходу від однієї точки до іншої використовується команда Next Breakpoint.

В режимі ладнання використовуються наступні команди:

Run, Auto Step – перехід в режим ладнання відбувається, якщо зустрічається точка переривання;

Step Into – виконує поточну команду із заходом у підпрограму (всі вікна оновлюються);

Step Over – виконує поточну команду без заходу у підпрограму (всі вікна оновлюються);

Step Out – запускає програму і виконує доти поки не зустрінеться кінець поточної підпрограми; якщо курсор знаходиться в рядках основної програми, то ладнання відбувається доти, поки користувач не обірве її командою break або не зустрінеться точка переривання;

Run To Cursor – запускає програму і виконує доти поки не буде досягнута позиція курсору у вікні початкового коду; якщо зустрічається точка останова програма не зупиняється; якщо позиція курсору недосяжна, то програма виконується доти, поки користувач не обірве її командою break. Після виконання команди всі вікна оновлюються.

Для вибору імітації роботи конкретного мікроконтролера, а також його робочої частоти використовується вікно Simulator Options (рисунок 1.13), яке відкривається командою AVR Simulator Options меню Debug.

Рисунок 1.13 – Діалогове вікно Simulator Options

Допустимі параметри мікроконтролера відображаються в текстовому полі, розташованому в правій частині вікна Simulator Options.






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.