Programowanie mikroprocesorów jednoukładowych

Podobne dokumenty
>>> Techniki rozbudowy systemów wbudowanych >>> Systemy wbudowane. Name: Mariusz Naumowicz Date: 29 maja 2019 [~]$ _ [1/32]

Wykład 5. Architektura ARM

Szkolenia specjalistyczne

Programowanie mikroprocesorów jednoukładowych

Architektura Systemów Komputerowych. Rozwój architektury komputerów klasy PC

RDZEŃ x86 x86 rodzina architektur (modeli programowych) procesorów firmy Intel, należących do kategorii CISC, stosowana w komputerach PC,

Wykład 2. Mikrokontrolery z rdzeniami ARM

Układ sterowania, magistrale i organizacja pamięci. Dariusz Chaberski

UTK ARCHITEKTURA PROCESORÓW 80386/ Budowa procesora Struktura wewnętrzna logiczna procesora 80386

Wykład 6. Mikrokontrolery z rdzeniem ARM

Budowa Mikrokomputera

Wykład 2. Mikrokontrolery z rdzeniami ARM

Programowanie mikroprocesorów jednoukładowych

Sprawdzian test egzaminacyjny GRUPA I

Procesory. Schemat budowy procesora

Kurs programowania mikrokontrolerów ARM z rodziny Cortex-M3

STM32Butterfly2. Zestaw uruchomieniowy dla mikrokontrolerów STM32F107

Programowanie mikroprocesorów jednoukładowych

MIKROKONTROLERY I MIKROPROCESORY

WPROWADZENIE Mikrosterownik mikrokontrolery

ARCHITEKTURA PROCESORA,

Wykład 2. Przegląd mikrokontrolerów 8-bit: -AVR -PIC

Wstęp Podstawowe informacje o mikroprocesorach AT91SAM9...11

PROGRAMOWANIE WSPÓŁCZESNYCH ARCHITEKTUR KOMPUTEROWYCH DR INŻ. KRZYSZTOF ROJEK

Spis treúci. Księgarnia PWN: Krzysztof Wojtuszkiewicz - Urządzenia techniki komputerowej. Cz. 1. Przedmowa Wstęp... 11

ZL28ARM. Zestaw uruchomieniowy dla mikrokontrolerów AT91SAM7XC

Architektura ARM. Materiały do wykładu. Marcin Peczarski. 19 maja Instytut Informatyki Uniwersytet Warszawski

Instytut Teleinformatyki

Stosowanie tego urządzenia zwiększa możliwości stosowanego sprzętu jak i sofware.

Sprawdzian test egzaminacyjny 2 GRUPA I

Procesory osadzone ETD Wprowadzenie W

Wykład 4. Przegląd mikrokontrolerów 16-bit: - PIC24 - dspic - MSP430

PROJEKT I OPTYMALIZACJA STRUKTURY LOGICZNEJ DYDAKTYCZNEGO SYSTEMU MIKROPROCESOROWEGO DLA LABORATORIUM PROJEKTOWANIA ZINTEGROWANEGO

STM32 Butterfly. Zestaw uruchomieniowy dla mikrokontrolerów STM32F107

Szczegółowy opis przedmiotu zamówienia. Część 1 - Laboratoryjny zestaw prototypowy

Organizacja typowego mikroprocesora

Technika Mikroprocesorowa

Architektura systemu komputerowego

LITEcompLPC1114. Zestaw ewaluacyjny z mikrokontrolerem LPC1114 (Cortex-M0) Sponsorzy:

ZL29ARM. Zestaw uruchomieniowy dla mikrokontrolerów STM32F107

URZĄDZENIA WEJŚCIA-WYJŚCIA

Układ wykonawczy, instrukcje i adresowanie. Dariusz Chaberski

Budowa komputera. Magistrala. Procesor Pamięć Układy I/O

1. Wprowadzenie Programowanie mikrokontrolerów Sprzęt i oprogramowanie... 33

Dodatek B. Zasady komunikacji z otoczeniem w typowych systemach komputerowych

Podstawowe zagadnienia

Budowa komputera. Magistrala. Procesor Pamięć Układy I/O

Wykład 7. Architektura mikroprocesorów powtórka

Podsystem graficzny. W skład podsystemu graficznego wchodzą: karta graficzna monitor

Pośredniczy we współpracy pomiędzy procesorem a urządzeniem we/wy. W szczególności do jego zadań należy:

ZL30ARM. Zestaw uruchomieniowy dla mikrokontrolerów STM32F103

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

OS 4.0. Revolution goes-on. Nowy system dla instrumentów: VIVO S7, S3, S1, SX7, VIVO P7, P3, VIVO H7, H3, H1, COMBO J7

mgr inż. Tadeusz Andrzejewski JTAG Joint Test Action Group

Błąd pamięci karty graficznej lub Uszkodzona lub źle podpięta karta graficzna

Procesory w FPGA H D L. dr inż. Paweł Tomaszewicz Instytut Telekomunikacji Politechnika Warszawska

Architektura komputerów

Wstęp Architektura... 13

ZL27ARM. Zestaw uruchomieniowy dla mikrokontrolerów STM32F103

LABORATORIUM UKŁADÓW PROGRAMOWALNYCH. PROCESORY OSADZONE kod kursu: ETD 7211 SEMESTR ZIMOWY 2017

Architektura mikroprocesorów z rdzeniem ColdFire

ADuCino 360. Zestaw uruchomieniowy dla mikrokontrolerów ADuCM360/361

Który z podzespołów komputera przy wyłączonym zasilaniu przechowuje program rozpoczynający ładowanie systemu operacyjnego? A. CPU B. RAM C. ROM D.

SYSTEMY OPERACYJNE WYKŁAD 1 INTEGRACJA ZE SPRZĘTEM

Informatyka - studium realizacji dźwięku -

dokument DOK wersja 1.0

Architektura mikroprocesorów z rdzeniem ColdFire

Bibliografia: pl.wikipedia.org Historia i rodzaje procesorów w firmy Intel

Mikroprocesory rodziny INTEL 80x86

Architektura mikroprocesorów TEO 2009/2010

2. Budowa układów procesorowych rodziny TMS320C

Zarządzanie zasobami pamięci

Architektura systemów komputerowych. dr Artur Bartoszewski

Zaliczenie Termin zaliczenia: Sala IE 415 Termin poprawkowy: > (informacja na stronie:

LEKCJA TEMAT: Współczesne procesory.

Opis efektów kształcenia dla modułu zajęć

Architektura systemu komputerowego. Działanie systemu komputerowego. Przerwania. Obsługa przerwań (Interrupt Handling)

Kurs Zaawansowany S7. Spis treści. Dzień 1

MikloBit ul. Cyprysowa 7/ Jaworzno. JTAG + ISP dla AVR. rev

Wybrane zagadnienia elektroniki współczesnej

Q E M U.

Budowa systemów komputerowych

IIPW_SML3_680 (Z80) przewodnik do ćwiczeń laboratoryjnych

Sprzęt komputerowy 2. Autor prezentacji: 1 prof. dr hab. Maria Hilczer

2. Code Composer Studio v4 zintegrowane środowisko projektowe... 41

ICD Wprowadzenie. Wprowadzenie. Czym jest In-Circuit Debugger? 2. O poradniku 3. Gdzie szukać dodatkowych informacji? 4

Systemy uruchomieniowe

Architektura systemów komputerowych

ZL25ARM. Płyta bazowa dla modułów diparm z mikrokontrolerami STR912. [rdzeń ARM966E-S]

Bibliografia: pl.wikipedia.org Historia i rodzaje procesorów w firmy Intel

Z parametrów procesora zamieszczonego na zdjęciu powyżej wynika, że jest on taktowany z częstotliwością a) 1,86 GHz b) 540 MHz c) 533 MHz d) 1 GHz

Programowanie niskopoziomowe. dr inż. Paweł Pełczyński

Metody optymalizacji soft-procesorów NIOS

Prezentacja systemu RTLinux

Programowanie w asemblerze ARM wprowadzenie

1.2. Architektura rdzenia ARM Cortex-M3...16

ISBN Copyright by Wydawnictwo BTC Warszawa Redaktor techniczny: Delfina Korabiewska Redaktor merytoryczny: mgr Anna Kubacka

Struktura i funkcjonowanie komputera pamięć komputerowa, hierarchia pamięci pamięć podręczna. System operacyjny. Zarządzanie procesami

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera

Transkrypt:

Programowanie mikroprocesorów jednoukładowych Architektura procesorów ARM Mariusz Naumowicz Programowanie mikroprocesorów jednoukładowych 23 listopada 2016 1 / 30

Podział procesorów Tryby User mode System mode Supervisor mode Abort mode Undefined mode IRQ mode FIQ mode Hyp mod Monitor mode Vector Table Memory Management Stosowane technologie Płyta prototypowa Plan I Mariusz Naumowicz Programowanie mikroprocesorów jednoukładowych 23 listopada 2016 2 / 30

Rdzenie x y z Opis Przykład 7 ARM7 core version ARM7 9 ARM9 core version ARM9 10 ARM10 core version ARM10 11 ARM11 core version ARM11 1 Cache, write buffer and MMU ARM710 2 Cache, write buffer and MMU, Process ID support ARM920 3 Physically mapped cache and MMU ARM1136 4 Cache, write buffer and MPU ARM940 5 Cache, write buffer and MPU, error correcting memory ARM1156 6 No cache, write buffer ARM966 7 AXI bus, physically mapped cache and MMU ARM1176 0 Stadard cache size ARM920 2 Reduced cache size ARM1022 6 Tightly Coupled Memory ARM1156 8 As for ARM966 ARM968 Mariusz Naumowicz Programowanie mikroprocesorów jednoukładowych 23 listopada 2016 3 / 30

Atrybuty Atrybut D E Opis Wsparcie debuggowania przez JTAG, automatyczny atrybut dla ARMv5 i wyższych Wsparcie DSP, automatyczny atrybut dla ARMv6 i wyższych F Sprzętowe wsparcie dla instrukcji zmiennoprzecinkowych dzięki koprocesorowi VFP. I Wsparcie sprzętowe dla breakpoint i watchpoint, automatyczny atrybut dla ARMv5 i wyżs J Wsparcie dla Jazelle Java acceleration technology M Wsparcie dla długich instrukcji mnożenia, automatyczny atrybut dla ARMv5 i wyższych T Wsparcie dla zestawu instrukcji Thumb, automatyczny atrybut dla ARMv5 i wyższych -S procesor używa resyntezowalną elektronikę. Mariusz Naumowicz Programowanie mikroprocesorów jednoukładowych 23 listopada 2016 4 / 30

Rejestry procesora ARM User Supervisor Abort Undefined IRQ FIQ R0 R0 R0 R0 R0 R0 R1 R1 R1 R1 R1 R1 R2 R2 R2 R2 R2 R2 R3 R3 R3 R3 R3 R3 R4 R4 R4 R4 R4 R4 R5 R5 R5 R5 R5 R5 R6 R6 R6 R6 R6 R6 R7 R7 R7 R7 R7 R7 R8 R8 R8 R8 R8 R8 FIQ R9 R9 R9 R9 R9 R9 FIQ R10 R10 R10 R10 R10 R10 FIQ R11 R11 R11 R11 R11 R11 FIQ R12 R12 R12 R12 R12 R12 FIQ R13 R13 SCV R13 abt R13 und R13 IRQ R13 FIQ R14 R14 SCV R14 abt R14 und R14 IRQ R14 FIQ R15 R15 R15 R15 R15 R15 Mariusz Naumowicz Programowanie mikroprocesorów jednoukładowych 23 listopada 2016 5 / 30

Tryby User Mode System Mode Supervisor Mode Abort Mode Undefined Mode IRQ Mode FIQ Mode Hyp Mode Monitor Mode Mariusz Naumowicz Programowanie mikroprocesorów jednoukładowych 23 listopada 2016 6 / 30

User mode Zazwyczaj uruchamia programy. W tym trybie pamięć jest chroniona (pod warukiem, że procesor posiada jednostkę MMU lub MPU). Większość programów i aplikacji całkowicie działa w tym trybie. Jeżeli program musi używać innego trybu musi wykorzystać SVC. Zewnętrze zdarznia takie jak np. przerwania mogą także zmieniać tryb. Mariusz Naumowicz Programowanie mikroprocesorów jednoukładowych 23 listopada 2016 7 / 30

System mode Tryb ten może być uruchomiony jedynie przez wywołanie specyficznej instrukcji, która ustawi odpowiedni bit w rejestrze CSPR. Tryb ten wykorzystuje rejestry trybu User mode i używa ich do uruchomienia zadań, które wymagają uprzywilejowanego dostępu do pamięci i koporcesorów bez ograniczeń wywołujących wyjątki. Często wykorzystywany ejst do obłsugi zagnieżdżonych wyjątków oraz wywołań SVC. Mariusz Naumowicz Programowanie mikroprocesorów jednoukładowych 23 listopada 2016 8 / 30

Supervisor mode Supervisor mode jest uprzywilejowanym trybie który jest uruchmiany wtedy gdy CPU jest resetowany oraz kiedy zostaje wykonana instrukcja SVC. Jądra systemów są uruchamiane w tym trybie w celu konfiguracji urządzeń wymagających urzpwilejowanych stanów, przed uruchomieniem aplkacji, które nie wymagają uprzywilejowanych stanów. Niektóre programy typu bare metal zazwyczaj całkowicie korzystają z tego trybu. Mariusz Naumowicz Programowanie mikroprocesorów jednoukładowych 23 listopada 2016 9 / 30

Abort mode Abort mode jest uprzywilejowanym trybem wywoływany jest wtedy gdy występią wyjątki Prefetch ABort lub Data Abort. Oznacza to, że procesor nie miał dostępu do jakiś zasobów pamięciowych z jakiegoś powodu. Mariusz Naumowicz Programowanie mikroprocesorów jednoukładowych 23 listopada 2016 10 / 30

Undefined mode Undefined mode jest uprzywilejowanym trybie, który występuje gdy nastąpi wyjątek Undefined Instruction. Normalnie występuje gdy rdzeń ARMa poszuje instrukcji w złym miejscu (uszkodzoy PC) lub jest pamięć jest uszkodzona. Zdarza się także gdy ARM nie wspiera specyficznej intrukji, dla przykładu gdy wykonuje intrukjcę VFP na rdzeniu nie bosługjących instrukcji VFP. Niezidentyfikowana instrukcja jest wyłapywana i uruchamiana programowo, poprzez emulację VFP. Undefined mode może również wystąpić przy błędzie koprocesora - koprocesor jest obecny ale nieuruchomiony. Mariusz Naumowicz Programowanie mikroprocesorów jednoukładowych 23 listopada 2016 11 / 30

IRQ mode IRQ mode jest uprzywilejowanym trybem uruchamianym podczas akceptacji przerwania IRQ przez procesor. Mariusz Naumowicz Programowanie mikroprocesorów jednoukładowych 23 listopada 2016 12 / 30

FIQ mode FIQ mode jest uprzywilejowanym trybem uruchamianym podczas uruchamiania obsługi przerwania FIQ. W trybie tym rejestry r8 do r12 są zchowywane, oznacza to, że są dostępne do użytku bez wcześniejszego zapisywania ich zawartości. Przy powroci to poprzedniego trybu, zawartość rejestrów jest przywracany do ich orginalnego stanu. Posiadanie prywatnych rejestrów pozwala na oszczędzenie czasu podczas przełączania kontekstu. Mariusz Naumowicz Programowanie mikroprocesorów jednoukładowych 23 listopada 2016 13 / 30

Hyp mod Hyp mode został wprowadzony w ARMv7-A dla prcesorów Cortex-A15 (oraz późniejszych) wprowadzając sprzętową wspracie wirtualizacji. Mariusz Naumowicz Programowanie mikroprocesorów jednoukładowych 23 listopada 2016 14 / 30

Monitor mode Monitor mode jest specjalnym trybem używanym do debuggowania, but with the advantage of not stopping the core entirely. The major advantage is the possibility for other modes to be called in monitor mode, the core can be interrogated by the debugger but still respond to critical interrupt routines. Mariusz Naumowicz Programowanie mikroprocesorów jednoukładowych 23 listopada 2016 15 / 30

Vector Table I Tabela ta jest częścią pamięci zarezerwowaną dla procesora szukającego informacji podczas wejścia w specyficzny tryb pracy. Klasyczny model jest używany w wersjach przed Cortexami oraz obecnych Cortex-A/R. W miejscu o adresie 0 zawiera kilka adresów do podprogramów uruchamiających dany tryb. Typowa tablica wektorów wygląda następująco: 1 00000000 LDR PC, =Reset 2 00000004 LDR PC, =Undef 3 00000008 LDR PC, =SVC 4 0000000C LDR PC, =P r e f A b o r t 5 00000010 LDR PC, =DataAbort 6 00000014 NOP 7 00000018 LDR PC, =IRQ 8 0000001C LDR PC, =FIQ W procesorach Cortex-M wygląda to trochę inaczej. Wektor zawiera adresy a nie instrukcje. Pierwsze wpisy w tablicy wektorów w Cortex-M mogą wyglądać następująco: Mariusz Naumowicz Programowanie mikroprocesorów jednoukładowych 23 listopada 2016 16 / 30

Vector Table II 1 Vectors DCD i n i t i a l _ s p ; Top o f Stack 2 DCD Reset_Handler ; Reset Handler 3 DCD NMI_Handler ; NMI Handler 4 DCD HardFault_Handler ; Hard F a u l t Handler 5 DCD MemManage_Handler ; MPU F a u l t Handler 6 DCD BusFault_Handler ; Bus F a u l t Handler 7 DCD UsageFault_Handler ; Usage F a u l t Handler To oznaczna, że Cortex-M może wykorzystywać całą przestrzeń pamięci, a nie tylko pamięć ograniczoną do wykonywania komend skoku. Mariusz Naumowicz Programowanie mikroprocesorów jednoukładowych 23 listopada 2016 17 / 30

Memory Management I Zarządzanie pamięcią jest wykonywana przy pomocy Memory Management Unit (MMU), która umożliwia kontrolowania mapowania pamięci pomiędzy adresami wirtualnymi, a adresami fizyczymi, pozwalającymi na przezroczysty dostęp do różnych części pamięci. Adres generowany przez procesor ARM nazywany jest adresem wirtualnym. The MMU wtedy adresuje ten adres na adres fizyczny dając procesorowi dostęp do pamięci. Pamięci może być mapowana "płasko", czyli adres wirtualny jest wtedy równy adresowi fizycznemu. Mariusz Naumowicz Programowanie mikroprocesorów jednoukładowych 23 listopada 2016 18 / 30

JTAG Debug (D) The Joint Test Action Group (JTAG) była grupą formującą się w 1985, której głównym celem było opracowanie metody testowania układów po wyprodukowaniu. Od tego czasu wielopowłokowe obowdy durkowane stawały się normą, a testowanie było ekstramalnie skomplikowane ponieważ większość ścieżka była niedostępna do pomiarów. JTAG był spełnioną obietnicą do testowania obwodów i wykrywania wadliwych połączeń. W 1990, Intel wypuścił na rynek procesor 80486, ze zintegrowanym wsparciem JTAG, został on szybko zaadoptowany do innych rozwiązań. Jednakże JTAG irginalnie był zaprojektowany do testowania kart komputerowych, w późniejszym czasie rozpoczęły się pracę nad innym zastosowaniem, szczegónie debuggowaniem. Mariusz Naumowicz Programowanie mikroprocesorów jednoukładowych 23 listopada 2016 19 / 30

Enhanced DSP (E) I Z czasem jak ARM stawały się coraz popularniejsze w cyforwych urządzeniach multimedialnych, konieczne stało się przyspiszenie intrukcji procesora ARM przez dodanie instrukcji DSP, równie konieczne jak instrukcji SIMD. Cyfrowe przetwarzanie sygnału (DSP) jest metematyczną manipulacją informacji modyfikującą bądź polepszającą ja w jakiś sposób. Celem DSP jest zazwyczaj pomiar, filtrowanie, i/lub kompresja/dekomprecja rzeczywistych sygnałów świata analogowego. Dla przykładu, DPS jest używane w odtwarzaczach muzyki, nie tylko konwertując skompresowane dane cyfrowy w muzykę analogową, ale także konwertuje analogowy dzwięk do formatu cyfrowego w studiach muzycznych. Typowymi aplikacjami są kompresja audio cyfrowe przetwarzanie obrazu, przetwarzanie mowy oraz ogólna komunikacja cyfrowa. Użycie instrukcji SIMD pozwala na osiągnięcie 75 procentowego wzrostu wydajności. Mariusz Naumowicz Programowanie mikroprocesorów jednoukładowych 23 listopada 2016 20 / 30

Vector Floating Point (F) Vector Floating Point został wprowadzomy w celu wspierania i przetwarzania sprzętowego liczb zmienno przecinkowych połowicznej, pojedycznej i podwójenj precyzji. Nazwa jednostki wzięła się z tego, że była ona przeznaczona do operacji wektorowych w systemach autonomicznych związanych z ruchem i kontrolą. Pierwszą wersją była wersja VFPv1, szybko zastąpiona przez VFPv2 w rdzeniach ARMv5TE, ARMv5TEJ, i ARMv6. VFPv3 jest opcjonalnie dostępna w ARMv7-A i ARMv7-R, używana nietylko w instrukcjach ARM ale także w Thumb i ThumbEE. Syntezowalna wersja jest dostępne pod nazwą VFP9-S, jako koprocesor w rodznie ARM9E. Mariusz Naumowicz Programowanie mikroprocesorów jednoukładowych 23 listopada 2016 21 / 30

EmbeddedICE (I) EmbeddedICE jest potężnym środowiskiem przeznaczonym do debbugowania, rdzenie wspierające technologię EmbeddedICE zawierają makrokomórkę wewnątrz rdzenia. Makrokomórka EmbeddedICE zawiera dwie jednostki watchpoint czasu rzeczywistego real-time, które zatrzymują wykonywania instrukcji przez rdzeń. Jednostki watchpoint mogą być programowane w taki sposó, aby przerwać działania zgodnie z jakimś warunkiem, kiedy wartość odpowiada wartości szyny adresowej lub czyny danych, bądź innych sygnałów. Mariusz Naumowicz Programowanie mikroprocesorów jednoukładowych 23 listopada 2016 22 / 30

Jazelle (J) Jazelle DBX (Direct Bytecode execution) technologia umożliwiająca uruchamianie kodu Java przez procesor ARM. Pierwsza implementacja tej technologi została wprowadzona w architekturze ARMv5TEJ, wraz z pierwszym procesorem ARM 926EJ-S. Mariusz Naumowicz Programowanie mikroprocesorów jednoukładowych 23 listopada 2016 23 / 30

Long Multiply (M) Warianty M rdzenia ARM posiadają rozubodwane sprzętowe mnożenie. Wprowdza to trzy udoskonalnie względem poprzednika: Użycie 8-bitowego algorytmu Booth a, oznaczjącego przyspieszenie wykonywania mnożenia szybciej w maksymlanie 5 cyklach Zastosowanie metody szybszego zakończenia, oznaczjące szybsze zkaończenie mnożenia dzięki zastosowaniu specyficznych warunków 64-bitowe mnożenie dwóch liczb 32-bitowych stało się możliwe dzięki zapisowi rezultatów w parze rejestrów. Technologia stała się standardem rdzeni ARM dla wersji ARMv4 i wyższych, a w ARM9 wprowdzono szybszy 2 cykłowy układ mnożący. Mariusz Naumowicz Programowanie mikroprocesorów jednoukładowych 23 listopada 2016 24 / 30

Płyta prototypowa SAM3U-EK Mariusz Naumowicz Programowanie mikroprocesorów jednoukładowych 23 listopada 2016 25 / 30

Komponenty i interfejsy I układ SAM3U4E 12 MHz rezonator 32.768 KHz rezonator opcjonalne złącze SMB PSRAM NAND Flash Bateria zegara kolorowy, dotykowy wyświetlacz TFT 2.8 cala port UART port USART złacza we/wy audio obsługa interfejsu SD/MMC Mariusz Naumowicz Programowanie mikroprocesorów jednoukładowych 23 listopada 2016 26 / 30

akcelerometr 3-D sensor temperatury przyciski Reset oraz Wake-Up programowalne przyciski Lewo oraz Prawo port High Speed USB port JTAG regulacja zasialania na płycie Dwie programowalne diody LED Dioda LED zasilania złącza BNC do sygnałów dla ADC potencjometr podłączony do ADC złącze ZigBee 3x32 bit złącze PIO (PIOA, PIOB, PIOC) Komponenty i interfejsy II Mariusz Naumowicz Programowanie mikroprocesorów jednoukładowych 23 listopada 2016 27 / 30

Procesor ARM Cortex-M3 revision 2.0 running at up to 96 MHz Memory Protection Unit (MPU) zestaw instrukcji Thumb-2 256 KB Flash, 128 bitowa szyna 48 KB wbudanej pamięci SRAM 16 KB ROM z wbudowanymi procedurami bootowania (UART, USB) Mariusz Naumowicz Programowanie mikroprocesorów jednoukładowych 23 listopada 2016 28 / 30

GameBoy Advanced ARM7tdmi 16.78 MHz 240x160 15bit kolorowy LCD 6 kanałowy dźwięk 10 przycisków 14 przerwań sprzętowych Mariusz Naumowicz Programowanie mikroprocesorów jednoukładowych 23 listopada 2016 29 / 30

References C. Simmonds. Mastering Embedded Linux Programming. Packt Publishing, 2015. Mariusz Naumowicz Programowanie mikroprocesorów jednoukładowych 23 listopada 2016 30 / 30