Serwis Edukacyjny w I-LO w Tarnowie ![]() Materiały dla uczniów liceum |
Wyjście Spis treści Wstecz Dalej Autor artykułu: mgr Jerzy Wałaszek |
©2025 mgr Jerzy Wałaszek |
https://www.microchip.com/about-us/legal-information/copyright-usage-guidelines
Pamięć FLASH wytrzymuje co najmniej 10.000 cykli zapisu/kasowania. Rejestr licznika rozkazów (PC) w ATtiny20 ma długość 10 bitów, co pozwala mu adresować 1024 komórek pamięci, począwszy od 0x000. W rozdziale "Programowanie pamięci" znajduje się szczegółowy opis ładowania zawartości pamięci FLASH poprzez interfejs szeregowy.
Tablice stałych można umieszczać w obrębie całej przestrzeni adresowej pamięci programu. Ponieważ dostęp do tej pamięci nie jest bezpośredni, została odwzorowana w pamięci danych. Odwzorowanie pamięci programu rozpoczyna się od adresu bajtowego 0x4000 w pamięci danych. Chociaż programy są wykonywane poczynając od adresu 0x000 w pamięci programu, to musi być ona adresowana od 0x4000, gdy dostęp do niej odbywa się poprzez pamięć danych.
Wewnętrzne operacje zapisu do pamięci programu FLASH zostały zablokowane i dlatego pamięć programu wygląda jak pamięć tylko do odczytu. Pamięć FLASH może wciąż być zapisana zewnętrznie, lecz wewnętrzne próby zapisu do pamięci programu nie odniosą żadnego skutku.
Mapa pamięci danych
Pierwsze 64 adresy są zarezerwowane dla pamięci we/wy, natomiast następne 128 adresów odnosi się do wewnętrznej pamięci danych SRAM (od 0x0040 do 0x00BF).
Bity blokowania pamięci nieulotnej oraz cała pamięć FLASH są odwzorowane w przestrzeni pamięci danych. Dla programów komórki te są widoczne jako tylko do odczytu.
Cztery różne tryby adresowania pamięci danych to: bezpośredni (ang. direct), pośredni (ang. indirect), pośredni z wczesnym zmniejszaniem adresu (ang. indirect with pre-decrement) oraz pośredni z późnym zwiększaniem adresu (ang. indirect with post-increment). W zestawie rejestrów rejestry od R26 do R31 pełnią dodatkową rolę rejestrów indeksowych do adresowania pośredniego.
Instrukcje IN i
OUT mają dostęp do wszystkich 64
adresów pamięci we/wy. Adresowanie bezpośrednie przy użyciu
instrukcji LDS i
STS osiąga 128 komórek o adresach
pomiędzy 0x0040 i 0x00BF.
Adresowanie pośrednie obejmuje zasięgiem całą przestrzeń pamięci
danych. Gdy jest używane adresowanie pośrednie z automatyczną
predekrementacją i postinkrementacją, zwiększane lub zmniejszane
są rejestry adresowe X, Y lub Z.
Dostęp do pamięci SRAM wykonywany jest w dwóch taktach zegarowych clkCPU, co pokazuje poniższy rysunek:
Wszystkie składniki we/wy mikrokontrolerów ATtiny20 są umieszczone w przestrzeni we/wy. Wszystkie komórki we/wy mogą być użyte w rozkazach LD i ST, co pozwala na przesył danych pomiędzy 16 rejestrami ogólnego przeznaczenia a przestrzenią we/wy. Poszczególne bity rejestry we/wy w zakresie adresów 0x00 - 0x1F są bezpośrednio dostępne za pomocą instrukcji SBI i CBI. W rejestrach tych wartość pojedynczych bitów można sprawdzać używając instrukcji SBIS i SBIC. Zobacz do rozdziałów "Instrukcje AVR" oraz "Zestaw instrukcji". Gdy używane są specyficzne instrukcje we/wy IN i OUT, muszą z nimi być używane adresy 0x00 - 0x3F.
Dla kompatybilności z przyszłymi mikrokontrolerami zarezerwowane bity należy zapisywać zerem, jeśli jest do nich dostęp. Zarezerwowane obszary pamięci we/wy nie powinny nigdy być zapisywane.
Niektóre znaczniki stanu są zerowane przez zapis do nich logicznej jedynki. Zwróć uwagę, iż instrukcje CBI i SBI będą zmieniały tylko określony bit i z tego powodu mogą być stosowane dla rejestrów zawierających takie znaczniki stanu. Instrukcje CBI i SBI pracują na rejestrach w zakresie adresów jedynie od 0x00 do 0x1F.
Rejestry sterujące modułami peryferyjnymi mikrokontrolera są wyjaśnione w dalszych rozdziałach.
![]() |
Zespół Przedmiotowy Chemii-Fizyki-Informatyki w I Liceum Ogólnokształcącym im. Kazimierza Brodzińskiego w Tarnowie ul. Piłsudskiego 4 ©2025 mgr Jerzy Wałaszek |
Materiały tylko do użytku dydaktycznego. Ich kopiowanie i powielanie jest dozwolone pod warunkiem podania źródła oraz niepobierania za to pieniędzy.
Pytania proszę przesyłać na adres email:
Serwis wykorzystuje pliki cookies. Jeśli nie chcesz ich otrzymywać, zablokuj je w swojej przeglądarce.
Informacje dodatkowe.