Technika mikroprocesorowa
szeregowo lub równolegle, przy czym za każdym razem należy przeprogramować cala pamięć.
Dostępne sa następujące sposoby programowania pamięci Flash:
Programowanie równolegle, które ze względu na znaczna liczbę wykorzystanych linii przeważnie wymaga wyjęcia mikrokontrolera z układu i umieszczenia go w podstawce programatora.
Programowanie szeregowe po magistrali ISP wykorzystuje 4 dedykowane linie wyjściowe mikrokontrolera i jest przeprowadzone bez wyjmowania mikrokontrolera z układu.
Programowanie szeregowe JTAG wykorzystuje wewnętrznie wbudowany interfejs JTAG, który pozwala wyprowadzić na zewnętrzne lacze krawędziowe mikrokontrolera sygnały z wybranych komórek pamięci oraz portów I/O. Interfejs JTAG jest wygodnym narzędziem do debuggowania programu wykonywalnego, ponieważ daje wgląd w komórki pamięci na każdym etapie wykonywania programu.
Programowania pamięci Flash można również dokonać z wykorzystaniem wbudowanego programu lądującego zwanego bootloader ’em rezydującego w pamięci Flash. Program lądujący bootloader może korzystać z dowolnego interfejsu w celu pobrania pliku programu wykonywalnego, najczęściej jest to interfejs szeregowy UART lub interfejs JTAG. W procesorze AT90S8515 program lądujący bootloader musi (przed wykorzystaniem) zostać zapisany w pamięci Flash przez użytkownika w sektorze o najwyższych adresach i rozmiarze ustalonym za pomocą bitów fuse.
Dane ulotne (kasowane po zaniku napięcia zasilania) sa przechowywane w pamięci SRAM o bardzo krótkim czasie dostępu (zarówno w cyklu zapisu, jak i odczytu). Pamięć SRAM jest adresowana w trybie 16-bitowym, zatem procesor może zaadresować przestrzeń o rozmiarze 216 = 65536 = $FFFF komórek pamięci.
Organizacja pamięci RAM przedstawia sie następująco:
- W dolnej części pamięci RAM znajdują sie 32 8-bitowe rejestry robocze ogólnego przeznaczenia z bezpośrednim dostępem do ALU o czasie dostępu równym jednemu cyklowi zegarowemu. Daje to możliwość wykonywania operacji matematycznych w każdym z powyższych rejestrów. Rejestry robocze mogą byc adresowane bezpośrednio (przez podanie nazwy) lub jako lokacje przestrzeni adresowej z obszaru od $0000 do $001F. 6 sposród wymienionych 8-mio bitowych rejestrów roboczych zostało sparowanych w 3 16-sto bitowe wskaźniki do przestrzeni adresowej noszące nazwy X, Y oraz Z. Jeden z powyższych wskaźników (Z) śluzy do pobierania danych z tablic umieszczonych w kodzie źródłowym programu.
- Nad obszarem rejestrów roboczych umieszczono 64 bajtowa przestrzeń rejestrów I/O obsługujących moduły peryferyjne mikrokontrolera tj.: rejestry kontrolne, timerów i liczników, portów, przerwań itp. Rejestry I/O mogą zostać zaadresowane bezpośrednio (przez podanie nazwy) lub jako lokacje przestrzeni adresowej z obszaru od $0020 do $005F.
- Nad obszarem rejestrów I/O, pod adresami $0060 do $025F znajduje sie wewnętrzna pamięć SRAM przeznaczona do przechowywania danych o pojemności 512 słów 8-mio bitowych.
5