Programowanie mikroprocesorów jednoukładowych

Podobne dokumenty
Programowanie mikroprocesorów jednoukładowych

Programowanie mikroprocesorów jednoukładowych

Programowanie mikroprocesorów jednoukładowych

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

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

Rok akademicki: 2015/2016 Kod: IIN s Punkty ECTS: 4. Poziom studiów: Studia I stopnia Forma i tryb studiów: Stacjonarne

S Y L A B U S P R Z E D M I O T U

Aparatura Elektroniczna (EAE) Stopień studiów i forma: I stopień, stacjonarna Rodzaj przedmiotu: obowiązkowy - 2

Programowanie na poziomie sprzętu. Tryb chroniony cz. 1

Spis treœci. Co to jest mikrokontroler? Kody i liczby stosowane w systemach komputerowych. Podstawowe elementy logiczne

Wprowadzenie do informatyki i użytkowania komputerów. Kodowanie informacji System komputerowy

Instytut Teleinformatyki

Architektura komputerów

Szkolenia specjalistyczne

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

Mikroprocesor Operacje wejścia / wyjścia

Mikroinformatyka. Mechanizmy ochrony pamięci

Wykład 7. Zarządzanie pamięcią

Szkoła programisty PLC : sterowniki przemysłowe / Gilewski Tomasz. Gliwice, cop Spis treści

Księgarnia PWN: Włodzimierz Stanisławski, Damian Raczyński - Programowanie systemowe mikroprocesorów rodziny x86

Działanie i charakterystyka sterownika GE FANUC VersaMaxNano

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

Mikroinformatyka. Tryb wirtualny

1.2 Schemat blokowy oraz opis sygnałów wejściowych i wyjściowych

Organizacja typowego mikroprocesora

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

Dodatek B. Zasady komunikacji z otoczeniem w typowych systemach komputerowych

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

SPIS TREŚCI: KARTY GRAFICZNE... 15

Architektura i administracja systemów operacyjnych

Rok akademicki: 2016/2017 Kod: JIS s Punkty ECTS: 6. Poziom studiów: Studia I stopnia Forma i tryb studiów: -

Programowanie Układów Logicznych kod kursu: ETD6203 W dr inż. Daniel Kopiec. Pamięć w układach programowalnych

Komunikacja między sterownikami przez protokół ADS

KARTA PRZEDMIOTU. Architektura Komputerów C4

Ćwiczenia z S Komunikacja S z miernikiem parametrów sieci PAC 3200 za pośrednictwem protokołu Modbus/TCP.

3 Literatura. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.06 Rok akad. 2011/ / 22

Programowanie mikroprocesorów jednoukładowych

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

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

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1

Współpraca procesora ColdFire z pamięcią

dziennik Instrukcja obsługi

Instrukcja do ćwiczeń nr 4 typy i rodzaje zmiennych w języku C dla AVR, oraz ich deklarowanie, oraz podstawowe operatory

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

Instytut Teleinformatyki

Wykład 2. Mikrokontrolery z rdzeniami ARM

Technologia informacyjna. Urządzenia techniki komputerowej

ARCHITEKTURA PROCESORA,

Sprzętowe wspomaganie pamięci wirtualnej

Technika mikroprocesorowa I Studia niestacjonarne rok II Wykład 2

Wydział Mechaniczny. Instrukcja do zajęć laboratoryjnych

Java - tablice, konstruktory, dziedziczenie i hermetyzacja

Architektura Systemów Komputerowych. Bezpośredni dostęp do pamięci Realizacja zależności czasowych

Architektura mikroprocesorów TEO 2009/2010

Budowa systemów komputerowych

Sygnały DRQ i DACK jednego kanału zostały użyte do połączenia kaskadowego obydwu sterowników.

Architektura systemów komputerowych Laboratorium 7 Symulator SMS32 Stos, Tablice, Procedury

1.1. Wymogi bezpieczeństwa Pomoc techniczna TIA Portal V13 instalacja i konfiguracja pakietu...18

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

Architektura systemu komputerowego

Rejestr HKEY_LOCAL_MACHINE

Informator techniczny

Komputer IBM PC niezależnie od modelu składa się z: Jednostki centralnej czyli właściwego komputera Monitora Klawiatury

Zarządzanie zasobami pamięci

Technika mikroprocesorowa. Systemy operacyjne czasu rzeczywistego

1. Aplikacja LOGO! App do LOGO! 8 i LOGO! 7

Podstawy programowania sterowników SIMATIC S w języku LAD / Tomasz Gilewski. Legionowo, cop Spis treści

MIKROKONTROLERY I MIKROPROCESORY

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

Wykład Mikroprocesory i kontrolery

Działanie systemu operacyjnego

Podstawowe zagadnienia informatyki

Wstęp do programowania 2

Podstawy algorytmiki i programowania - wykład 4 C-struktury

Zadania systemu operacyjnego. Operacje na plikach i folderach.

1 Moduł Modbus ASCII/RTU 3

Strona główna. Strona tytułowa. Programowanie. Spis treści. Sobera Jolanta Strona 1 z 26. Powrót. Full Screen. Zamknij.

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

Dla człowieka naturalnym sposobem liczenia jest korzystanie z systemu dziesiętnego, dla komputera natomiast korzystanie z zapisu dwójkowego

Dodawanie kamer w rejestratorach z PoE

Zaawansowane techniki programowania C#

Mikroinformatyka. Wielozadaniowość

Struktura systemów komputerowych

Różne właściwości. Różne właściwości. Różne właściwości. C++ - klasy. C++ - klasy C++ - KLASY

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

KARTA PRZEDMIOTU. 2. Kod przedmiotu: MK_ Nazwa przedmiotu: SYSTEMY MIKROPROCESOROWE I WBUDOWANE

Architektura komputera. Cezary Bolek. Uniwersytet Łódzki. Wydział Zarządzania. Katedra Informatyki. System komputerowy

Materiały do zajęć VII

Programowanie w C++ Wykład 5. Katarzyna Grzelak. 26 marca kwietnia K.Grzelak (Wykład 1) Programowanie w C++ 1 / 40

Zarządzanie pamięcią w systemie operacyjnym

Programowanie Niskopoziomowe

Dane, informacja, programy. Kodowanie danych, kompresja stratna i bezstratna

Zaawansowane programowanie w języku C++ Zarządzanie pamięcią w C++

Język C zajęcia nr 11. Funkcje

Asix. Konfiguracja serwera MS SQL dla potrzeb systemu Asix. Pomoc techniczna NIEZAWODNE ROZWIĄZANIA SYSTEMÓW AUTOMATYKI

Technika mikroprocesorowa I Wykład 2

Programowanie w języku C++

Instrukcja integratora - obsługa dużych plików w epuap2

O autorze... 9 Wprowadzenie... 11

Transkrypt:

Programowanie mikroprocesorów jednoukładowych MPU Mariusz Naumowicz Programowanie mikroprocesorów jednoukładowych 2 stycznia 2017 1 / 21

Plan MPU Nakładanie regionów Tło regionów Rejestry MPU Inicjalizacja MPU Dostęp do pamięci regionu Demonstracja systemu MPU Mariusz Naumowicz Programowanie mikroprocesorów jednoukładowych 2 stycznia 2017 2 / 21

Niektóre systemy wbudowane korzystające z wielozadaniowości lub systemy kontroli muszą zapewnić taką pracę zadania, żeby jego działanie nie uszkodziło innego zadania w systemie. Ochrona zasobów systemowych oraz pozostałych zadań od niechcianego dostępu nazywana jest ochroną pamięci, która jest tematem tego wykładu. Mariusz Naumowicz Programowanie mikroprocesorów jednoukładowych 2 stycznia 2017 3 / 21

Oddzielne regiony Oddzielna konfiguracja Rdzeń Ilość regionów danych i instrukcji regionów instrukcji i danych ARM740T 8 nie nie ARM940T 16 tak tak ARM946E-S 8 nie tak ARM1026EJ-S 8 nie tak Mariusz Naumowicz Programowanie mikroprocesorów jednoukładowych 2 stycznia 2017 4 / 21

Zasady rządzące regionami Regiony mogą nachodzić na siebie. Regiony mogą posiadać priorytety niezależne od przywilejów przypisanych regionowi. Kiedy regiony nachodzą na siebie, wtedy atrybuty regionu o wyższym priorytecie mają pierwszeństwo przed pozostałymi regionami. Adres startowy regionu musi być wielokrotnością jego rozmiaru. Rozmiar regionu może być dowolną wielokrotnością liczby będącą potęgą liczby dwa w zakresie 4KB 4GB innymi słowy może posiadać wartości: 4KB, 8KB, 16KB,32KB, 64KB,..., 2GB, 4GB. Dostęp do obszaru pamięci poza wyznaczonym regionem wywołuje wyjątek abort. MPU generuje prefetch abort w przypadku instrukcji albo data abort w przypadku danych. Mariusz Naumowicz Programowanie mikroprocesorów jednoukładowych 2 stycznia 2017 5 / 21

Nakładanie regionów Mariusz Naumowicz Programowanie mikroprocesorów jednoukładowych 2 stycznia 2017 6 / 21

Tło regionów Mariusz Naumowicz Programowanie mikroprocesorów jednoukładowych 2 stycznia 2017 7 / 21

Rejestry koprocesora MPU Funkcja Pierwszy rejestr Drugie rejestry Kontrola systemu c1 c0 Atrybuty cache regionu c2 c0 Atrybuty bufora zapisu regionu c3 c0 Zezwolenia dostępu regionu c5 c0 Rozmiar i lokalizacja regionu c6 c0 do c7 Mariusz Naumowicz Programowanie mikroprocesorów jednoukładowych 2 stycznia 2017 8 / 21

Inicjalizacja MPU Zdefiniowanie rozmiaru i lokalizacji regionu instrukcji i danych używając CP15:c6. Ustawienie praw dostępu dla każdego regionu przy użyciu CP15:c5. Ustawienia atrybutów pamięci cache buforów zapisu dla każdego regionu przy użyciu CP15:c2 dla cache i CP15:c3 dla buforów zapisu. Aktywacja pamięci cache oraz MPU używając CP15:c1. Mariusz Naumowicz Programowanie mikroprocesorów jednoukładowych 2 stycznia 2017 9 / 21

Definicja rozmiaru i lokalizacji regionu Nazwa pola Bity pola Komentarz Adres bazowy [31:12] Adres większy od 4KB powinien być wielokrotnością wartości w [5:1] SBZ [11:6] Wartość która powinna być zerem( should be zero ) N [5:1] Rozmiar powinien być 2 N+1, gdzie 11 N 31 E [0] Aktywizacja regionu, 1 = aktywny, 0 = nieaktywny Mariusz Naumowicz Programowanie mikroprocesorów jednoukładowych 2 stycznia 2017 10 / 21

Rozmiar Wartość dziesiętna Wartość binarna 4 KB 11 01011 8 KB 12 01100 16 KB 13 01101 32 KB 14 01110 64 KB 15 01111 128 KB 16 10000 256 KB 17 10001 512 KB 18 10010 1 MB 19 10011 2 MB 20 10100 4 MB 21 10101 8 MB 22 10110 16 MB 23 10111 32 MB 24 11000 64 MB 25 11001 128 MB 26 11010 Mariusz Naumowicz 256 MB 27Programowanie mikroprocesorów jednoukładowych 11011 2 stycznia 2017 11 / 21

Listing 1: Inicjalizacja 1 MOV r1, #0x300000 ; s e t s t a r t i n g a d d r e s s 2 ORR r1, r1, #0x11 << 1 ; s e t s i z e to 256 KB 3 MCR p15, 0, r1, c6, c3, 0 Listing 2: Odczytywanie rozmiaru i lokalizacji regionu 5 1 MRC p15, 0, r2, c6, c5, 0 ; r2 = base / s i z e Data Region 5 2 MRC p15, 0, r3, c6, c5, 1 ; r3 = base / s i z e I n s t Region 5 Mariusz Naumowicz Programowanie mikroprocesorów jednoukładowych 2 stycznia 2017 12 / 21

Przywileje dostępu I Supervisor Użytkownik Standardowe kodowanie AP Rozszerzone kodowanie Brak dostępu Brak dostępu 00 0000 Odczyt/zapis Brak dostępu 01 0001 Odczyt/zapis Odczyt wyłącznie 10 0010 Odczyt/zapis Odczyt/zapis 11 0011 Nieprzewidywalny Nieprzewidywalny - 0100 Odczyt wyłącznie Brak dostępu - 0101 Odczyt wyłącznie Odczyt wyłącznie - 0110 Nieprzewidywalny Nieprzewidywalny - 0111 Nieprzewidywalny Nieprzewidywalny - 1000 do 1111 Mariusz Naumowicz Programowanie mikroprocesorów jednoukładowych 2 stycznia 2017 13 / 21

Przywileje dostępu II Mariusz Naumowicz Programowanie mikroprocesorów jednoukładowych 2 stycznia 2017 14 / 21

Cache i bufor zapisu w regionach pamięci I Mariusz Naumowicz Programowanie mikroprocesorów jednoukładowych 2 stycznia 2017 15 / 21

Cache i bufor zapisu w regionach pamięci II Mariusz Naumowicz Programowanie mikroprocesorów jednoukładowych 2 stycznia 2017 16 / 21

Cache i bufor zapisu w regionach pamięci III Mariusz Naumowicz Programowanie mikroprocesorów jednoukładowych 2 stycznia 2017 17 / 21

Charakterystyka testowanego sprzętu: rdzeń ARM z MPU Demonstracja systemu MPU I 256 KB fizycznej pamięci zaczynającej się od 0x0 kończącej się na 0x40000 Kilka urządzeń mapowanych jako kilka megabajtów pamięci od 0x10000000 do 0x12000000 Komponenty programowe systemu: Rozmiar oprogramowania jest mniejszy niż 64 KB. Zawarte są w nim: tablica wektorowa, obsługa wyjątków, oraz stos danych do wsparcia wyjątków. Oprogramowanie systemów musi być niedostępne z poziomu trybu użytkownika; tzn. zadanie w trybie użytkownika musi wykorzystać wywołanie systemowe aby uruchomić kod albo mieć dostęp do danych regionu. Istnieje współdzielone oprogramowanie o rozmiarze mniejszym niż 64 KB. Zawiera ono jedynie najczęściej używane biblioteki oraz przestrzeń danych do przesyłania wiadomości między zadaniami użytkownika. Mariusz Naumowicz Programowanie mikroprocesorów jednoukładowych 2 stycznia 2017 18 / 21

Demonstracja systemu MPU II Są trzy zadania użytkownika, która kontrolują funkcję w systemie. Te zadania mają rozmiar mniejszy od 32 KB. Kiedy zadanie jest uruchomione, musi być chronione przed dostępem dwóch pozostałych zadań. Funkcja Poziom dostępu Adres początkowy Rozmiar Region Protect memory-mapped system 0x10000000 2 MB 4 peripheral devices Protected system system 0x00000000 4 GB 1 Shared system user 0x00010000 64 KB 2 User task 1 user 0x00020000 32 KB 3 User task 2 user 0x00028000 32 KB 3 User task 3 user 0x00030000 32 KB 3 Mariusz Naumowicz Programowanie mikroprocesorów jednoukładowych 2 stycznia 2017 19 / 21

Demonstracja systemu MPU III Mariusz Naumowicz Programowanie mikroprocesorów jednoukładowych 2 stycznia 2017 20 / 21

References Andrew Sloss, Dominic Symes, and Chris Wright. ARM System Developer s Guide: Designing and Optimizing System Software. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA, 2004. Mariusz Naumowicz Programowanie mikroprocesorów jednoukładowych 2 stycznia 2017 21 / 21