- •2. Програмне забезпечення
- •2.1. Мови програмування
- •2. 2 Компоненти мови Асемблер
- •3. Створення програми мовою Асемблер
- •3.1. Постановка задачі
- •3.2. Директиви
- •3.4. Алгоритм
- •3.5. Програма обчислення в одній точці
- •3.6. Застосування зсувів і масок
- •3.7. Запис масиву даних до озп і організація циклу
- •3.8. Завантаження масиву даних з озп до рзп
- •3.9. Зупин програми
- •4. Команди нашої програми
- •1) Арифметичні і логічні команди
- •2) Команди переходів (branch instructions)
- •3) Команди передачі даних (data transfer instructions)
- •4) Команди з бітами (bit and bit-test instructions)
- •5) Команди керування мк (mcu control instructions)
- •Лабораторна робота №1 Основи програмного пакету розробника avr Studio
- •3 Підготовка до налагодження проекту.
- •5 Виправлення помилок алгоритму.
- •5 Оформити звіт.
- •6 Завдання на самостійну роботу.
- •Лабораторна робота №2
- •3 Компіляція проекту.
- •4 Налагодження проекту.
- •Лабораторна робота №3
- •Лабораторна робота №4
- •Лабораторна робота №4
- •1 Підготовка проекту в avr Studio 4 для запису програми до пам'яті мікроконтролера.
- •2 Підготовка апаратних засобів стартового набору stk500.
- •3 Підготовка програмного інтерфейсу stk500.
- •4 Програмування мк та дослідження спроектованого виробу на платі стартового набору stk500.
- •5 Завдання на самостійну роботу
- •1 Налаштування основних модулів мікроконтролера.
- •2 Дослідження основних режимів функціонування мікроконтролера.
- •3 Програмування мк та дослідження цпп на платі стартового набору stk500.
- •4 Завдання на самостійну роботу.
3 Підготовка до налагодження проекту.
3.1 Відкрити проект, що підлягає налагодженню, і виконати його транслювання, якщо це не було зроблено раніше.
3
.2
Запустити
процес налагодження
(Debugging)
піктограмою
Start
Debugging
на інструментальній панелі (або
командою Start
Debugging
з
меню Debug
(Відладка),
або гарячими клавішами Ctrl
+ Shift
+ Alt
+ F5)
– на передній план вийде програмний
файл, якщо він не був відкритий. У нижньому
рядку стану головного вікна рухатиметься
смуга, що показує процес завантаження
проекту, по закінченні якого позначиться
жовта позначка зупинки процесу (Auto
Stopped).
Одночасно на лівому полі програмного
файлу проти рядка команди, яка
виконуватиметься першою, встановиться
жовта стрілка покажчика поточної
команди, у головному вікні з'являться
допоміжні вікна та на інструментальній
панелі активізуються інструменти
програмного наладчика, які були
неактивними.
3
.3
Налаштувати
головне вікно
AVR
Studio
4 (див. ілюстрацію нижче) встановленням
мінімуму допоміжних
вікон,
необхідних для налагодження, та
зручним їх розташуванням, користуючись
піктограмами інструментів Toggle
Register
Window,
Toggle
Memory
Window
та Toggle
Watch
Windows
– перемикачі вікон регістрів, пам'яті
та змінних, клацанням яких відповідні
вікна відчиняються і зачиняються (або
з меню View
> Register,
Memory,
Watch,
або гарячими клавішами Alt
+ 0, Alt
+ 4, Alt
+ 1), а також командами з меню View
> Toolbars
> Processor,
Project.
У нашій програмі достатньо обмежитися
чотирма допоміжними вікнами:
Processor/Projekt
(дві вкладки в одному вікні), Register,
Watch
та Memory
в режимі Data
– ОЗП (за необхідності прокруткою
налаштувати на потрібні комірки ОЗП
для спостереження за записом даних).
F Примітки. 1. Вікно програмного файлу доцільно розгорнути і допоміжні вікна розташувати таким чином, аби, користуючись смугою прокрутки, зручно було продивлятися визначення імен регістрів і ідентифікаторів даних та виконувану команду.2. Вікна пам'яті (Memory) з випадного меню налаштовуються на відображення ОЗП (Data), РПЗПЕС (EEPROM), РВВ (I/O), ЗП програм (Program) та РФ (Register). З меню View > Memory, Memory 2, Memory 3 можна встановити три таких вікна пам'яті.
2
.
Вікна пам'яті (Me-mory)
з випадного меню налаштовуються на
відображення ОЗП (Data),
РПЗПЕС (EEPROM), РВВ (I/O),
ЗП програм (Program) та РФ
(Register). З меню View
> Memory, Memory
2, Memory 3 можна встановити
три таких вікна пам'яті.
3. Всі допоміжні вікна заповнюються автоматично, крім вікна Watch, до якого потрібні змінні необхідно вибрати самостійно. Для цього змінну, наприклад xi, слід клацнути в програмному файлі правою кнопкою маніпулятора ("миші") і в контекстному меню, що відкриється, вибрати Add Watch "xi" – змінну буде включено до списку Watch (або спочатку виділити змінну, а відтак перетягнути її мишею до вікна Watch). Вкладками можна створити чотири таких списки змінних.
4. Натисненням правою кнопкою миші на заголовок допоміжного вікна його можна закріпити (Docking) або зробити вільним (Floating).
5.
Якщо взятися лівою кнопкою миші за
заголовок вікна (незалежно від стану
останнього – Docking або
Floating), його можна перетягнути
в довільне місце, причому під час
переміщення з'являються 8 покажчиків
розташування зі стрілками – 4 локальні
і 4 головні (на ілюстрації видно чотири
локальні покажчики 1 всередині вікна
та чотири головні 2
по боках вікна AVR Studio).
Для закріплення допоміжного вікна
достатньо підвести курсор, що утримує
його заголовок, до стрілки одного з 8
покажчиків (місце розташування
забарвлюється блакитним кольором) і
відпустити, при цьому головні покажчики
розташовують це вікно по краях головного
вікна, а локальні – по краях локального
вікна. Якщо курсор, що утримує вікно,
навести на інше допоміжне вікно, всередині
локального покажчика 1 з'явиться
додатковий квадратик із символом
вкладок, що дозволяє об'єднати обидва
вікна у спільне вікно зі вкладками (при
наведенні курсору на цей квадратик).
Для розщеплення об'єднаних вікон досить
взятися за одну із вкладок і перетягнути
відірване вікно в інше місце.
6. Налаштоване розташування вікон запам’ятовується і відтворюється після наступного запуску наладчика в цьому та інших проектах.
4 Методика налагодження проекту в пакеті AVR Studio 4.
4.1
Покрокове
налагодження.
Піктограмою
Step Into – крок
всередину
(або
гарячою клавішею F11,
або командою Step
Into
з меню Debug)
виконати першу команду програми з
номером 0х000000 – жовта стрілка покажчика
поточної команди переміститься до
команди, яка виконуватиметься наступною
(на ілюстрації показано цифрою 1). При
цьому у вікні Processor
спостерігати змінення коду лічильника
команд Program
Counter
(цифра 2) – за регулярного виконання
програми (без переходів) його показ
інкрементується, а лічильник циклів
Cycle
Counter
(цифра 3) вказуватиме, що команду виконано
за 1 цикл, тобто за 1 період тактової
частоти. Параметр Frequency
свідчить, що встановлено частоту 4МГц,
тому час виконання команди становить
0,25 мкс (Stop
Watch,
цифра 4). Крім того, видно, що дана команда
не змінює прапори регістра стану SREG
(прозорий біт відповідає нулю, а
затемнений – одиниці). У вікні робочих
регістрів Register
(цифра 5) і у вікні змінних Watch
(цифра 6) легко спостерігати результат
виконання команди – завантаження
константи до регістра (по виконанні
команди зміни значень підсвічуються
червоним кольором).
У
разі необхідності перевести віртуальний
МК до початкового стану піктограмою
Reset
– скидання (або командою Reset
з меню Debug,
або гарячими клавішами Shift
+ F5)
– всі регістри і лічильники буде
обнулено, але в ОЗП дані збережуться.
Для переведення до початкового стану
ОЗП слід у його вікні клацнути ліву
цифру, натиснути клавішу F
і тримати її допоки всі комірки буде
переведено до стану FF.
Порівнюючи зміни в регістрах і комірках
ОЗП зі змістом чергової команди та
значеннями функції в контрольних точках,
переконатися в правильності виконання
всіх команд, їх послідовності та переходів
відповідно до алгоритму обробки даних,
а в разі виявлення помилки перейти до
виконання п. 5.
4.2
Налагодження
частинами до курсору.
Перевести віртуальний МК до початкового
стану, поставити курсор на будь-яку
команду нижче
жовтої стрілки покажчика і піктограмою
Run
to
Cursor
– виконати до курсору (або гарячими
клавішами Ctrl
+
F10,
або
командою
Run
to
Cursor
з меню Debug)
запустити виконання частини
програми
– одним заходом буде виконано всі
команди до курсору, куди і встановиться
покажчик. Переконавшись у правильності
даних, поставити курсор у кінці основної
програми, наприклад, на першу команду
після неї (nop)
і також одним заходом виконати решту
програми. Далі у покроковому режимі
можна спостерігати нескінченний цикл
по завершенні програми.
4
.3
Налагодження
частинами до точок зупинки. Знов
перевести віртуальний МК і ОЗП до
початкового стану, поставити курсор у
будь-якому рядку програми і піктограмою
Toggle
Breakpoint
– перемикач точки зупинки (або гарячою
клавішею F9,
або командою Toggle
Breakpoint
з меню Debug)
вставити позначку зупинки програми,
яка відобразиться на лівому полі
програмного файлу червоною позначкою.
Так само вставити й інші точки зупинки,
як, наприклад, показано на фрагменті
програмного файлу.
Натисканням
піктограми Run
– виконання (або гарячою клавішею F5,
або командою Run
з меню Debug)
спостерігати реалізацію програми
частинами між точками зупинок і результати
в допоміжних вікнах.
F Примітки. 1. Режим із зупиненням у заздалегідь позначених точках дозволяє спростити налагодження складних програм – лише натисканням піктограми Run або клавіші F5 можна миттєво проходити налагоджені фрагменти програми, а після скидання знов повертатися для відпрацьовування окремих фрагментів у покроковому режимі.
2. З меню View > Toolbars можна встановити допоміжне вікно Breakpoints and Tracepoints (з його випадного меню вибрати Breakpoints або All), в якому відобразяться точки зупинки і їх розташування (номери рядків line), а в графі Hit Count (кількість проходів) позначиться Break Always (зупинятися завжди), тобто буде дозволено ділянку програми проходити один раз. Якщо двічі клацнути рядок з точкою зупинки, викликається діалогове вікно редагування, в якому можна встановити потрібну кількість проходів (hits) ділянки програми, при цьому всередині червоних позначок з'явиться літера і.
3. Цей режим можна встановити також програмно заповненням бланку з меню Debug > New Breakpoint > Program Breakpoint > Add Program Breakpoint.
4. Для зупинки під час проходження програми через комірку ОЗП, наприклад, 0x60 слід клацнути її правою кнопкою миші і в контекстному меню, що відкриється, вибрати Add Data Breakpoint "SRAM@0x60" – змінну буде включено до списку "Breakpoints and Tracepoints" (див. п. 2 приміток).
5
.
Для видалення
точки зупинки
достатньо
поставити в її рядку
курсор і ще раз клацнути ту ж саму
піктограму Toggle Breakpoint,
а для видалення всіх точок –
натиснути піктограму
Remove all
Program Breakpoints
(або однойменну команду з меню Debug).
4
.4
Налагодження
всієї програми в автоматичному режимі.
Видалити всі точки зупинок (див. примітку
5 до п. 4.3),
знов
перевести віртуальний МК і ОЗП до
початкового стану (див. п. 4.1) та піктограмою
Auto Step –
автоматичний
крок
(або гарячими клавішами Alt
+ F5, або
командою
Auto Step з
меню Debug)
запустити виконання всієї програми в
автоматичному режимі, а піктограмою
Break – перерва
(або гарячими клавішами Ctrl
+ F5, або
командою
Break з
меню Debug)
зупинити процес, коли після виконання
програма потрапить до нескінченного
циклу, та оцінити результати.
F Примітки. 1. Автоматичний режим дозволяє перевірити програму в цілому після її налагодження або переконатися в працездатності раніше відпрацьованої програми, а також спостерігати функціонування віртуального МК у складі спроектованого пристрою.
2
.
Під час налагодження програм, що містять
підпрограми, піктограмами (або однойменними
командами з меню Debug) Step
Over (крок через) і Step Out
(крок із) можна проминути відпрацьовану
підпрограму або вийти з неї.
4.5
Переглянути
файл Disassembler
(приступний
лише в режимі налагодження), відчинивши
його піктограмою Toggle
Disassembler
Window
– перемикач вікна з результатами
транслювання (або з меню View
> Disassembler,
або гарячими клавішами Alt
+ 1), в якому між пронумерованими темними
рядками основної частини програмного
файлу світлішим тоном подано номери і
коди команд, їх мнемокоди з фактичними
операндами та розшифровка абревіатури
мнемокодів. У цьому файлі легко порівняти
програму розробника з автоматично
генерованими командами і, у разі потреби,
замінити свої команди для надання тексту
програми більшої наочності та коректності.
