Techniki mikroprocesorowe i systemy wbudowane Wykład 1 Procesory rodziny AVR ATmega. Wstęp Wojciech Kordecki wojciech.kordecki@pwsz-legnica.eu Państwowa Wyższa Szkoła Zawodowa im. Witelona w Legnicy Wydział Nauk Technicznych i Ekonomicznych Zakład Informatyki Semestr zimowy 2018/19 1 / 23
Literatura dla procesorów AVR R.Baranowski, Mikrokontrolery AVR Atmega w praktyce, Wydawnictwo BTC, Warszawa 2005. J. Doliński, Mikrokontrolery AVR w praktyce, Wydawnictwo BTC, Warszawa 2004. T. Francuz, Język C dla mikrokontrolerów AVR, wyd. 2, Helion 2015. A. Pawluczuk, Sztuka programowania mikrokontrolerów AVR. Podstawy. Wydawnictwo BTC, Warszawa 2006. A. Pawluczuk, Sztuka programowania mikrokontrolerów AVR. Przykłady. Wydawnictwo BTC, Warszawa 2007. 2 / 23
AVR Studio Wstęp Do asemblacji programów można używać programu AVR Studio, dostępnego na stronie producenta firmy Atmel. 3 / 23
AVR Studio Wstęp Do asemblacji programów można używać programu AVR Studio, dostępnego na stronie producenta firmy Atmel. Układ (będzie o nim dalej) z procesorem Atmel AVR jest programowany w języku (podobnym do) C. 3 / 23
Procesory AVR firmy Atmel Procesory rodziny AVR są ośmiobitowe, tzn. operują w zasadzie na danych ośmiobitowych. Produkowane są przez firmę Atmel. Mają liczne wersje rozszerzone i zubożone. Dokumentacje procesorów 8-bitowych na stronie firmy Atmel. 4 / 23
Procesory jednoukładowe Procesory AVR są jednoukładowe, tzn. w jednym układzie znajdują się: wewnętrzne pamięci danych wewnętrzna pamięć programu rejestry, układ czasowo-licznikowy, linie wejścia-wyjścia, port szeregowy lub USB, układ przerwań. 5 / 23
Pamięć danych ulotna Adres 0000h Rejestry robocze R0 R31 o adresach od 0000h do 001Fh rejestry wejścia/wyjścia o adresach od 0020h do 005Fh Wewnętrzna pamięć RAM od 0060h lub 0100h Zewnętrzna pamięć RAM Adres FFFFh Ostatnie sześć rejestrów jest łączonych po dwa kolejne jako rejestry X, Y, Z służą do adresowania optymalizacja dla języka C. 6 / 23
Pamięć FLASH i EEPROM Pamięć programu jest pamięcią typu FLASH nieulotną. Dostęp do pamięci FLASH w operacjach zapisu nie jest możliwy z poziomu programu procesora. Możliwe jest załadowanie pamięci przez bootloader przez łącze szeregowe lub USB. USB np. w modelach AT90USB. Pamięć danych EEPROM stała (nieulotna), zapis z poziomu programu. 7 / 23
Rejestry wejścia/wyjścia Jest sześć portów A F. Z portami x, x {A,..., F } są związane trzy rejestry 8 / 23
Rejestry wejścia/wyjścia Jest sześć portów A F. Z portami x, x {A,..., F } są związane trzy rejestry PORTx rejestr wyjściowy 8 / 23
Rejestry wejścia/wyjścia Jest sześć portów A F. Z portami x, x {A,..., F } są związane trzy rejestry PORTx rejestr wyjściowy DDRx rejestr kierunku danych 8 / 23
Rejestry wejścia/wyjścia Jest sześć portów A F. Z portami x, x {A,..., F } są związane trzy rejestry PORTx rejestr wyjściowy DDRx rejestr kierunku danych PINx rejestr wejściowy 8 / 23
Dlaczego asembler? Powody zajmowania się asemblerem procesorów 8-bitowych. Zrozumienie funkcji rejestrów i roli rozkazów procesora. Optymalizacja programów pracujących w czasie rzeczywistym. Im mniejszy procesor, tym zagadnienie optymalizacji jest ważniejsze. Często jest najważniejsze. Nie najważniejsze, ale też dość ważne: zarobki programistów. 9 / 23
Dyrektywy Wstęp Dyrektywy sterują pracą asemblera i definiują dodatkowe elementy programu stałe napisy, makra itp. Dyrektywy są poprzedzone kropką. CSEG dalsze zapisy dotyczą pamieci programu DEVICE określa model procesora ORG określa adres w pamięci, od którego generowany jest program 10 / 23
Skok względny rjmp skok względny o 2k wprzód lub wstecz, gdzie k jest liczbą 12-bitową. Zwykle długość skoku jest obliczana na podstawie etykiety. rjmp etykieta //... etykieta: // tu jakieś dalsze rozkazy 11 / 23
Wpisanie do rejestru ldx wpisanie do rejestru, gdzie x jest napisem pustym lub jest jedną z liter: d, i, s. Można wpisywać do rejestrów R16 R31. Tutaj ldi wpisanie do rejestru stałej. ldi R16, 0x0f // wpisanie do R16 liczby 15=0b00001111 12 / 23
Kopiowanie rejestru mov skopiowanie rejestru do rejestru. ldi R22, 5 // wpisanie liczby 5 do R22 mov R2, R22 // skopiowanie R22 do R2 13 / 23
Stos (1) Wstęp Stos rośnie w kierunku adresów niższych w pamięci RAM. Dno stosu ustalane przez wpisanie adresu szesnastobitowego do rejestrów SPH i SPL. Może to być najwyższy istniejący adres pamięci danych: push położenie na stos pop zdjęcie ze stosu 14 / 23
Stos (2) Wstęp Kładziemy rejestr na stos i zdejmujemy ze stosu w odwrotnej kolejności push R1 push R2 //... pop R2 pop R1 15 / 23
Wywołanie procedury rcall wywołanie procedury (funkcji). Adres procedury określa się zazwyczaj przy pomocy etykiety. Przed skokiem do procedury, na stosie odłożony jest 16-bitowy adres powrotu. Procedura powinna się kończyć rozkazem ret, który zdejmuje ze stosu adres powrotu. 16 / 23
Pominięcia Wstęp sbis pominięcie następnej instrukcji, jeśli bit w rejestrze we/wy jest ustawiony sbic pominięcie następnej instrukcji, jeśli bit jest wyzerowany sbis PINE, 2 rjmp etykieta // jest pominięty, gdy bit 2 // w porcie E jest ustawiony cbis PINE, 3 rjmp etykieta // jest pominięty, gdy bit // w porcie E jest wyzerowany 17 / 23
Rozkazy logiczne or alternatywa zawartości rejestrów ori alternatywa zawartości rejestru i stałej and koniunkcja zawartości rejestrów andi koniunkcja zawartości rejestru i stałej 18 / 23
Zwiększanie i zmniejszanie inc zwiększenie rejestru Rx o 1 mod 0x100-256 dec zmniejszenie rejestru Rx o 1 mod 0x100-256 inc R15 // R15:=R15+1 dec R15 // R15:=R15-1 19 / 23
System Wstęp Krótki opis układu Projekty strona domowa Płyta składa się z 8-bitowego mikrokontrolera Atmel AVR z uzupełniającymi elementami w celu ułatwienia programowania oraz włączenia innych układów. (... ). Oficjalne płyty wykorzystują układy z serii megaavr, a konkretnie ATmega8, ATmega168, ATmega328, oraz ATmega1280 i ATmega 2560. Źródło: Wikipedia: Internetowy Kurs 20 / 23
Uno Wstęp Krótki opis układu Projekty 21 / 23
Literatura Wstęp Krótki opis układu Projekty J. Boxall.. 65 praktycznych projektów. Helion, Gliwice 2014. Fragment M. Evans, J. Noble, J. Hochenbaum. w akcji. Poznaj możliwości. Helion, Gliwice 2014. Fragment K.Karvinen, T.Karvinen. Czujniki dla początkujących. Helion, Gliwice 2015. Fragment S. Monk. dla początkujących. Podstawy i szkice. Helion, Gliwice 2014. Fragment S. Monk. dla początkujących. Kolejny krok. Helion, Gliwice 2015. Fragment M. Riley. Inteligentny dom. Automatyzacja mieszkania za pomocą platformy, systemu Android i zwykłego komputera. Helion, Gliwice 2013. Fragment 22 / 23
PWSZ w Legnicy Krótki opis układu Projekty Laboratorium mgr inż. Jan Duda 23 / 23
PWSZ w Legnicy Krótki opis układu Projekty Laboratorium mgr inż. Jan Duda Zasoby Mamy wraz z urządzeniami pomocniczymi. 23 / 23