Лаб_1_AVR_лп.ppt
- Количество слайдов: 9
Полтавський національний технічний університет імені Юрія Кондратюка Лабораторна робота з навчальної дисципліни “Архітектура комп'ютерів” Модуль 9. Мікроконтролери. Тема заняття: Основні можливості AVR Studio 4. Створення та трасування простої програми План заняття 1. Основні можливості AVR Studio 4. 2. Створення та трасування простої програми. Факультет інформаційних та телекомунікаційних технологій і систем Кафедра комп'ютерної інженерії К. т. н. , доцент Тиртишніков О. І.
Мета заняття: Ознайомлення з основними можливостями AVR Studio, порядком створення, компіляції, налагодження програми в режимі симуляції МК. Завдання: Створити проект, ввести нескладну програму (приклад – у навчальному питанні № 2), виконати її компіляцію, симуляцію виконання та покрокове налагодження. 1. Основні можливості AVR Studio 4. Безкоштовний пакет AVR Studio, створений фирмой ATMEL, об'єднує текстовий редактор, асемблер, покроковий налагоджувач та симулятор. Також пакет використовується разом з апаратними засобами налагодження та програмування (емуляторами та програматорами). При програмуванні в середовищі AVR Studio необхідно виконати стандартну послідовність дій: Ш Створення проекту; Ш Створення або завантаження основного файла; Ш Компіляція проекту; Ш Симуляція виконання та, при необхідності, покрокове налагодження програми; Ш Завантаження hex-кода в МК (програмування МК).
1. Основні можливості AVR Studio 4. Створення нового проекту Рис 1. Вибір існуючого (Open) або створення нового (New Project) проекту Рис 2. Створення нового проекту (Atmel AVR Assembler, Project name, Initial file, Location) Рис 3. Вибір налагоджувальної платформи (AVR Simulator) та МК (ATmega 128)
1. Основні можливості AVR Studio 4. Інтерфейс AVR Studio 4 Вікно редактора / Структура Стан вузлів Меню проекту процесора налагоджувача Повідомлення AVR Studio Стан портів та пристроїв введення - виведення
; pr_1 2. Створення та трасування простої програми. device ATmega 128 ; визначення моделі МК. include "m 128 def. inc" ; Підключення файла опису I/O МК ATmega 128. def temp=r 16 ; ім'я temp призначено регістру r 16 init: ; Ініціалізація стека та ПВВ ; Завантаження в покажчик стека SPH: SPL кінцевої адреси ОЗП ldi temp, low(RAMEND) ; молодша половина адреси out spl, temp ldi temp, high(RAMEND) ; старша половина адреси out sph, temp ; Встановлення напрямку передачі даних (виведення) для ПВВ D, B ldi temp, 0 b 1111 Завдання: out ddrd, temp Обчислити значення виразу out ddrb, temp Y=ab+c 2 -d для а=3, b=7, с=9, d=5. start: ; Початок програми ldi r 17, 3 ; Запис a=3 в r 17 Результат у форматі слова ldi r 18, 7 ; Запис b=7 в r 18 вивести в порти B: D mul r 18, r 17 ; a*b, результат в r 1: r 0 mov r 20, r 1 ; Пересилання результату в r 20: r 21 mov r 21, r 0 ldi r 17, 9 ; Запис с=9 в r 17 mul r 17, r 17 ; с*с add r 21, r 0 ; Додавання молодших байтів a*b+c*c adc r 20, r 1 ; Додавання старших байтів a*b+c*c subi r 21, 5 ; Віднімання d=5 out portd, r 21 ; Виведення молодшого байта результату в порт D out portb, r 20 ; Виведення старшого байта результату в порт В jmp start
2. Створення та трасування простої програми ; ***** THIS IS A MACHINE GENERATED FILE - DO NOT EDIT ********** ; ***** Created: 2009 -02 -04 13: 23 ******* Source: ATmega 128. xml ****** ; ************************************* ; * A P P L I C A T I O N N O T E F O R T H E A V R F A M I L Y ; * Фрагмент файла ; * Number : AVR 000 m 128 def. inc ; * File Name : "m 128 def. inc" ; * Title : Register/Bit Definitions for the ATmega 128 …………. . . equ portd=$12 ; * Date : 2009 -02 -04 ; * Version : 2. 31. equ ddrd=$11 ; * Support E-mail : avr@atmel. com. equ spl=$3 d ; * Target MCU : ATmega 128. equ sph=$3 e ; *. equ ramend=$10 ff ; * DESCRIPTION ; * When including this file in the assembly program file, all I/O register ; * names and I/O register bit names appearing in the data book can be used. ; * In addition, the six registers forming the three data pointers X, Y and ; * Z have been assigned names XL - ZH. Highest RAM address for Internal ; * SRAM is also defined ……………………………………………. . ……… ; ***** PORTD ************ ; PORTD - Port D Data Register. equ PORTD 0 =0 ; Port D Data Register bit 0. equ PD 0 =0 ; For compatibility. equ PORTD 1 =1 ; Port D Data Register bit 1. equ PD 1 =1 ; For compatibility. equ PORTD 2 =2 ; Port D Data Register bit 2. equ PD 2 =2 ; For compatibility
2. Створення та трасування простої програми Проект може складатися з декількох файлів, при цьому один призначається основним. Компіляція проекта -командою Build або натисканням кнопки F 7. EQU OC 3 Baddr 00000036 EQU OC 3 Caddr 00000038 EQU OVF 3 addr 0000003 a EQU URXC 1 addr 0000003 c EQU UDRE 1 addr 0000003 e EQU UTXC 1 addr 00000040 EQU TWIaddr 00000042 EQU SPMRaddr 00000044 EQU INT_VECTORS_SIZE 00000046 DEF temp r 16 CSEG init 0000 CSEG start 00000007 Структура проекта Фрагмент map - файла Результат компіляції
2. Створення та трасування простої програми Для покрокового налагоджування – команда DebugStart Debugging. Після її виконання починається трасування, на першу виконувану команди вказує жовта стрілка. Наступний крок – команда Step Into (F 11), для безперервного виконання – Auto Step. Також в меню Debug присутні команди завершення трасування, зупинки, скидання симуляції та інші. Результат симуляції виконання програми (вікно I/O View) та фрагмент вікна стану пристроїв процесора (Registers)
2. Створення та трасування простої програми Формати подання програми у машинних кодах : 020000 FC : 10000 FEF 0 DBF 00 E 10 EBF 0 FEF 01 BB 07 BB 13 E 009 : 100027 E 0219 F 412 D 502 D 19 E 0119 F 500 D 411 DCA : 0 A 002000555052 BB 48 BB 0 C 9407007 A : 00000001 FF HEX - файл Дамп пам'яті може бути отриманий в режимі налагодження: View – Memory. HEX – формат розроблений фірмою Intel є фактичним стандартом для програмування ПЗП різноманітного призначення. Перші два знаки після двокрапки – кількість байтів у рядку. Далі – адреса першого байта та двохрозрядний код призначення рядка (00 – рядок кодів, 02 – в області даних початкова адреса сегмента пам'яті, 01 – останній рядок файла, не містить даних, 03, 04, 05 – містять адресну інформацію). Кожний рядок завершується контрольною сумою. Адреси в HEX файлі – це адреси байтів, тому вони збільшені удвічі порівняно с дійсними адресами 16 розрядних команд.
Лаб_1_AVR_лп.ppt