Architektura mikroprocesorów z rdzeniem ColdFire



Podobne dokumenty
Mikroprocesor Operacje wejścia / wyjścia

Wybrane zagadnienia elektroniki współczesnej

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Architektura mikroprocesorów z rdzeniem ColdFire

Zarządzanie zasobami pamięci

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

Przerwania, polling, timery - wykład 9

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

Działanie systemu operacyjnego

Przerwania w systemie mikroprocesorowym. Obsługa urządzeo wejścia/wyjścia

Metody obsługi zdarzeń

Działanie systemu operacyjnego

Moduł wspierający diagnostykę i sprzętowe debugowanie

Współpraca procesora ColdFire z pamięcią

Działanie systemu operacyjnego

Technika Mikroprocesorowa II Wykład 1

Technika mikroprocesorowa I Studia niestacjonarne rok II Wykład 2

Działanie systemu operacyjnego

Architektura komputerów

Podstawy techniki cyfrowej i mikroprocesorowej II. Urządzenia wejścia-wyjścia

ARCHITEKTURA PROCESORA,

Część I - Sterownik przerwań 8259A i zegar/licznik 8253

Mikroinformatyka. Wielozadaniowość

Technika mikroprocesorowa I Wykład 2

Systemy operacyjne. Systemy operacyjne. Systemy operacyjne. Program wykładów. Strona WWW przedmiotu: Program ćwiczeń projektowych

Organizacja typowego mikroprocesora

LABORATORIUM PROCESORY SYGNAŁOWE W AUTOMATYCE PRZEMYSŁOWEJ. Mechanizm przerwań i menadżer zdarzeń procesora sygnałowego F/C240

J. Ułasiewicz Komputerowe systemy sterowania 1. 1 Architektura PC Ogólna struktura systemu jednoprocesorowego

Budowa systemów komputerowych

XMEGA. Warsztaty CHIP Rok akademicki 2014/2015

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

Programowanie niskopoziomowe

MOŻLIWOŚCI PROGRAMOWE MIKROPROCESORÓW

Tryby adresowania procesorów rodziny ColdFire

PRZERWANIA. P1 - Procedura obslugi przerwania. Obsługa zdarzenia Z1 poprzez procedurę obsługi przerwania P1

Architektura komputerów. Układy wejścia-wyjścia komputera

Architektura komputerów

Mikrokontroler ATmega32. System przerwań Porty wejścia-wyjścia Układy czasowo-licznikowe

Technika Mikroprocesorowa

Architektura systemów komputerowych Laboratorium 14 Symulator SMS32 Implementacja algorytmów

Struktura systemów komputerowych

Wyświetlacz alfanumeryczny LCD zbudowany na sterowniku HD44780

Technika Mikroprocesorowa

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

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

Systemy operacyjne. Wprowadzenie. Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak

Dodatek B. Zasady komunikacji z otoczeniem w typowych systemach komputerowych

Szkolenia specjalistyczne

2. PORTY WEJŚCIA/WYJŚCIA (I/O)

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

. III atyka, sem, Inform Symulator puterów Escape rchitektura kom A

Rejestry procesora. Nazwa ilość bitów. AX 16 (accumulator) rejestr akumulatora. BX 16 (base) rejestr bazowy. CX 16 (count) rejestr licznika

Podstawy Informatyki Układ przerwań

Konfiguracja parametrów pozycjonowania GPS /5

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

Budowa Mikrokomputera

Układ wykonawczy, instrukcje i adresowanie. Dariusz Chaberski

UTK Można stwierdzić, że wszystkie działania i operacje zachodzące w systemie są sterowane bądź inicjowane przez mikroprocesor.

Procesory rodziny x86. Dariusz Chaberski

Rozszerzalne kody operacji (przykład)

Procesor ma architekturę rejestrową L/S. Wskaż rozkazy spoza listy tego procesora. bgt Rx, Ry, offset nand Rx, Ry, A add Rx, #1, Rz store Rx, [Rz]

Programowanie Niskopoziomowe

Wstęp do informatyki. System komputerowy. Magistrala systemowa. Architektura komputera. Cezary Bolek

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

Adresowanie. W trybie natychmiastowym pole adresowe zawiera bezpośrednio operand czyli daną dla rozkazu.

CPU. Architektura FLAGS Bit: dr Paweł Kowalczyk; DPTNS, KFCS UŁ. SI 16 bit. 16 bit. 16 bit.

Podstawy techniki cyfrowej Układy wejścia-wyjścia. mgr inż. Bogdan Pietrzak ZSR CKP Świdwin

Architektura typu Single-Cycle

2. Architektura mikrokontrolerów PIC16F8x... 13

Architektura Systemów Komputerowych

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

IIPW_SML3_680 (Z80) przewodnik do ćwiczeń laboratoryjnych

Hardware mikrokontrolera X51

Architektura komputera. Dane i rozkazy przechowywane są w tej samej pamięci umożliwiającej zapis i odczyt

Architektura systemu komputerowego

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

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

Struktura i działanie jednostki centralnej

Architektura komputerów

Przestrzeń pamięci. Układy dekoderów adresowych

Wstęp do informatyki. Architektura co to jest? Architektura Model komputera. Od układów logicznych do CPU. Automat skończony. Maszyny Turinga (1936)

architektura komputerów w 1 1

Architektura komputerów. Asembler procesorów rodziny x86

Spis treści. 1 Moduł Modbus TCP 4

(Rysunek z książki T.Starecki. Mikokontrolery jednoukładowe rodziny 51. NOZOMI W-wa 1996)

Jednostka mnożąco-sumującą EMAC (Enhanced Multiply-ACcumulate unit)

Adresowanie obiektów. Adresowanie bitów. Adresowanie bajtów i słów. Adresowanie bajtów i słów. Adresowanie timerów i liczników. Adresowanie timerów

PROGRAMOWALNE SYSTEMY MECHATRONIKI

CompactPCI. PCI Industrial Computers Manufacturers Group (PICMG)

Logiczny model komputera i działanie procesora. Część 1.

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

PRZERWANIA. 1. Obsługa zdarzeń, odpytywanie i przerwania Obsługa zdarzeń jest jedną z kluczowych funkcji w prawie każdym systemie czasu rzeczywistego.

Programowanie w asemblerze Środowiska 64-bitowe

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

Technika Mikroprocesorowa

Magistrala systemowa (System Bus)

organizacja procesora 8086

PC 3 PC^ TIMER IN RESET PC5 TIMER OUT. c 3. L 5 c.* Cl* 10/H CE RO WR ALE ADO AD1 AD2 AD3 AD4 A05 A06 LTJ CO H 17 AD7 U C-"

Instrukcja do oprogramowania ENAP DEC-1

Rozdział ten zawiera informacje na temat zarządzania Modułem Modbus TCP oraz jego konfiguracji.

Transkrypt:

Architektura mikroprocesorów z rdzeniem ColdFire 1

Obsługa sytuacji wyjątkowych (Exception Processing) 2

Wyjątki Wyjątek (ang. exception) mechanizm kontroli przepływu danych występujący w mikroprocesorach oraz we współczesnych językach programowania służący do obsługi zdarzeń wyjątkowych, a w szczególności sytuacji błędnych. Wyjątki dzielimy na: niepowodzenia (ang. fault) błędy nienaprawialne (ang. abort) pułapki (ang. trap) 3

Obsługa sytuacji wyjątkowych 4

Obsługa sytuacji wyjątkowych Wykonanie niedozwolonej operacji przez procesor w danym stanie uprzywilejowania powoduje wygenerowanie wyjątku. Obsługa wyjątku obejmuje wszystkie operacje od momentu wykrycia błędu do pobrania pierwszej instrukcji obsługującej sytuację wyjątkową. 1. a) Wykonanie kopii SR, b) Przejście do trybu superużytkownika (S<=1; T<=0; M<=0), c) Ustawienie maski IRQ na poziomie zgłaszanego przerwania. 2. Określenie wektora obsługiwanego wyjątku (przerwania). 3. Odłożenie kopi obecnego kontekstu na wierzchołku stosu superużytkownika (ramka zdarzenia wyjątkowego). 4. Obliczenie adresu pierwszej instrukcji procedury obsługującej dany wyjątek (przerwanie). VBR(31..20) + 4 x numer_wektora Detekcja przerwań zostaje wstrzymana na jedną instrukcję przed wykonaniem procedury obsługującej dany wyjątek. Daje to możliwość wyłączenia przerwań i poprawnego obsłużenia danego wyjątku, np. wykonanie instrukcji STLDSR. 5

16 bit 6

Ramka stosu sytuacji wyjątkowych Wskaźnik stosu jest automatycznie wyrównywany do granicy 4 B. 0x0 pozostałe 7

Stos 0x0000.0000 pole wolne Zawartość rejestru D0.W pole wolne Ostatnio odłożona dana 0x1000.0000 n-1 MOVE.W %D0, -(%A7) odłożenie zawartości D0.W na stos MOVEA.L (%A7)+, %A1 zdjęcie danej ze stosu => %A1.L A7 USP A7* SSP A7 USP A7* SSP Aby zapewnić efektywną pracę procesora rejestr A7 powinien wskazywać adres będący wielokrotnością liczby 4. 8

Tablica wektorów wyjątków i przerwań 9

Wyjątek dostępu do pamięci (1) Adres nie istniejącego urządzenia lub pamięci (adres nie jest przypisany do żadnego rejestru konfiguracyjnego CSCR0-CSCR6) Próba zapisu do pamięci zabezpieczonej przed zapisem lub tylko do odczytu Próba dostępu do pamięci superużytkownika z poziomu zwykłego użytkownika generują wyjątek Access Error \TS \CS Dane Dane ColdFire Adres Moduł Chip Select Adres \W/R \WR \TA \OE Pamięć 10

Wyjątek dostępu do pamięci (2) Odczyt spod chronionego obszaru (SV) MOVE.W %D0, -(%A1) MOVE.W %D0, (%A7)+ Adres obliczony przed zgłoszeniem wyjątku Problem podczas wykonywania instrukcji zapisu: 1. MOVE.B 2. NOP #0x12, %D0 wyjątek zgłoszony podczas wykonywania instrukcji NOP 11

Wyjątek błędnego adresu Próba odczytu spod nieparzystego adresu generuje wyjątek Address Error MOVE.L %D3, 0x3001 MOVE.W %D0, -(%A1) A1 = 0x800005 MOVE.W %D0, (%A7)+ A7 = 0x800005 MOVE.B -8(%D2, %D1*2), %D0 indeks w D2 jest 16 bitowy Scale Factor różny od 1, 2, 4 12

Wykonanie błędnej instrukcji Próba wykonania nieznanej instrukcji powoduje wygenerowanie wyjątku Illegal Instruction (wyjątek nie dotyczy instrukcji z polem OPCODE 0xAxx lub 0xFxx) OPCODE operandy natychmiastowe rejestry OPeration Code MOVE.W kod rozkazu <ea>y, SR tryb adresowanie operand Wykonanie instrukcji 0x0000 lub 0x4AFC generuje wyjątek. Instrukcje można wykorzystać jako programowe pułapki. 13

Wykonanie błędnej instrukcji typu a lub f Próba wykonania nieznanej instrukcji wykorzystującej jednostkę emac (Enhanced Multiply and Accumulate) lub FPU (Floating Point Unit) powoduje wygenerowanie wyjątku Unimplemented line-a or line-f opcode opcode 14

Dzielenie przez zero Dzielenie liczby ze znakiem podanej jako operand przeznaczenia przez liczbę podaną jako operand źródłowy. Wynik dzielenia umieszczony jest pod adresem wskazywanym przez operand przeznaczenia. Jeżeli operand źródłowy jest równy 0 generowany jest wyjątek Division by Zero. 15

Naruszenie uprawnień superużytkownika Próba wykonania instrukcji wymagających uprawnień superużytkownika przez użytkownika generuje wyjątek Privilege Violation 16

Praca krokowa Jeżeli flaga T w rejestrze SR jest ustawiona generowany jest wyjątek Trace Exception (przed rozpoczęciem procedury obsługującej wyjątek, procesor kończy wykonanie bieżącej instrukcji). move.l # 0xDEADBEEF, %D3 move.l %D0, 100(IPSBAR) nop nop addq.b #63, %d2 TraceHandler:......... rte 17

Wyjątek diagnostyczny Wyjątek Debug Interrupt wykorzystywany jest podczas pracy w trybie diagnostycznym Manual BreakPoint wyk. rozkazu HALT Kanał diagnostyczny BDM Diagnostyka w czasie rzeczywistym 18

TRAP Wykonanie polecenia Trap powoduje wygenerowanie wyjątku o numerze podanym w postaci operandu. Adres wiersza w tablicy wyjątków obsługującego dany wyjątek można policzyć zgodnie z równaniem: 0x80 + 4 * #<vector> Moduł procesora ColdFire umożliwia obsłużenie do 16 zdefiniowanych zdarzeń 19

Obsługa nieznanego przerwania Jeżeli praca procesora zostanie przerwania (w wyniku zgłoszenia przerwania przez INTC0 lub INTC1), jednak sterownik przerwań nie jest w stanie określić źródła przerwania o odpowiednio wysokiej masce następuje wygenerowanie wyjątku Spurious Interrupt. 20

Podwójny wyjątek Jeżeli podczas obsługi wyjątku zostanie wygenerowany kolejny wyjątek (fault-on-fault) procesor natychmiast przerywa pracę. Procesor pozostaje w stanie bezczynności, do momentu wygenerowania sygnału reset. 21

Obsługa wyjątku reset 22

Zawartość rejestru DO po resecie 23

Zawartość rejestru D1 po resecie 24

Tablica adresów wyjątków oraz przerwań Tablica musi zostać umieszczona na 1 MB granicy. VBR (reset) = 0x0000.0000 25

MCF5282 sterownik przerwań 26

Sterownik przerwań (1) 56 przerwań programowalnych INTC 0 7 przerwań zadeklarowanych (Port Edge) 19 przerwań (moduł CAN) INTC 1 Unikalny numer wektora dla każdego przerwania Możliwość maskowania dowolnego przerwania Wsparcie dla przerwań sprzętowych oraz programowych IACK Możliwość wyprowadzenia procesora ze stanu uśpienia (STOP) 27

Sterownik przerwań (2) Sterownik przerwań rozpoczyna cykl obsługi wyjątku jeżeli zgłoszone przerwanie ma poziom wyższy od poziomu ustawionego w rejestrze SR. Powyższa reguła nie dotyczy przerwań o poziomie równym 7. Przerwania o poziomie równym 7 obsługiwane są zawsze przerwania niemaskowalne. I > poziom IRQ IRQ=7 obsługiwane zawsze 28

Współpraca sterownika przerwań z procesorem Przerwania wewnętrzne UART, PIT, GPT, DMA, I2C, CAN, Ethernet Dane mapowane na przestrzeń pamięci Skasowanie flagi IRQ Poziom przerwania ColdFire Nr wektora IRQ IACK 3 8 IREQ Zadania sterownika przerwań: 1. Rozpoznanie przerwania 2. Wyznaczenie przerwania o najwyższej masce i priorytecie 3. Obliczenie numeru wektora przerwania Sterownik przerwań INTC0-INTC1 Przerwania zewnętrzne EPF1-EPF7 poziom/zbocze 29

Obsługa przerwania 1. Przejście do trybu superużytkownika (S=1, T=0) 2. Odczytanie wektora aktywnego przerwania 3. Odłożenie na stos kopii rejestru SR, numeru przerwania oraz adresu powrotu 4. Obliczenie przesunięcia w tablicy przerwań oraz odczytanie adresu procedury obsługującej przerwanie 5. Obniżenie maski przerwań w rejestrze SR do poziomu obsługiwanego przerwania 6. Skok do procedury obsługującej przerwanie 30

Sterownik przerwań Rejestr stanu SR maska przerwań Priorytety przerwań 31

Sterownik przerwań R R/W R/W 32

Stan przerwań (1) Stan przerwań na poszczególnych poziomach IRLR 33

Stan przerwań (2) Poziom oraz priorytet obsługiwanego przerwania IACKLPR 34

Rejestry konfiguracyjne (1) Rejestry konfiguracyjne ICR0.01 - ICR1.63 35

Rejestry diagnostyczne Rejestry SWIACK oraz LnIACK ułatwiają realizacje programowych przerwań. Analiza bitu M rejestru statusowego. 36

Źródła przerwań sterownika INTC0 (1) 37

Źródła przerwań sterownika INTC0 (2) 38

Źródła przerwań sterownika INTC1 39

Procedura obsługi przerwania w asemblerze 1. 2. 3. 4. 5. 6. Konfiguracja modułów Skopiowanie tablicy wektorów do pamięci RAM MOVE.L #Adres_tablicy, %A0 adres tablicy => A0, (na granicy 1 MB) MOVEC.L %A0,%VBR A0 => VBR LEA IRQ_handler, %A1 ładuj adres handlera do A1 MOVE.L %A1, 4*77(%A0) prześlij A1 pod adres wskazywany przez A0 UART0 = (64+13) x 4 7. Ustaw priorytet oraz poziom przerwania ICR13 = 0x-- 100 111 (level/priority) 8. Włącz przerwania -------- Program główny -------IRQ_handler: 1. STRLDSR 2. #0x2700 LEA -24(%A7), %A7 MOVEM.L %D0-%D2/%A0-%A2,(%A7) 3. --------- Program obsługujący przerwanie --------- 5. MOVEM.L (%A7),%D0-%D2/%A0-%A2 LEA 24(%A7), %A7 MOVE.W (%A7)+,%D0 MOVE.W %D0,%SR RTE odłóż SR na stos i załaduj nową wart. 0x2700 IRQ są wyłączone SR[I] = 7 zarezerwuj miejsce na stosie, 2(0/1) execution odłóż rejestry na stos, 1+n(0/n) execution Skasuj flagę IRQ (Timer DMA => done = 1) zdejmij rejestry ze stosu, 1+n(n/0) execution zwolnij miejsce na stosie, 2(1/0) execution odzyskaj oryginalny SR.W ze stosu D0 => SR powrót do programu głównego 40

Instrukcja specjalna MOVEM (1) Dozwolone tryby adresowania: (An) (d16, An) 41

Instrukcja specjalna MOVEM (2) A7 = SP 42