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

Podobne dokumenty
MIKROPROCESORY architektura i programowanie

MIKROPROCESORY architektura i programowanie

PROGRAMOWALNE SYSTEMY MECHATRONIKI

XMEGA. Warsztaty CHIP Rok akademicki 2014/2015

Akademia Górniczo-Hutnicza w Krakowie Katedra Elektroniki

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

Omówimy przykłady 8-mio bitowego licznika z wyposażenia ADuC812 (CISC 51) oraz mikrokontrolera ATMega128 należącego do rodziny AVR.

Instytut Teleinformatyki

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

Akademia Górniczo-Hutnicza w Krakowie Katedra Elektroniki

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

SYSTEM PRZERWAŃ ATmega 32

Metody obsługi zdarzeń

Przerwania, polling, timery - wykład 9

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Procesory rodziny x86. Dariusz Chaberski

Wykład 9. Obsługa przerwań

Programowanie mikrokontrolerów. 5 grudnia 2007

Komputery klasy PC. Dariusz Chaberski

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

Architektura mikrokontrolera MCS51

Architektura mikrokontrolera MCS51

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

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

Prezentacja systemu RTLinux

Mikroinformatyka. Wielozadaniowość

Hardware mikrokontrolera X51

Wykład 12. Przetwornik ADC

KAŻDY Z 8-MIO BITOWYCH PORTÓW MIKROKONTROLERÓW RODZINY 51 MA JEDYNIE REJESTR PORTU: P0, P1, P2, P3, PEŁNIĄ ONE ROLĘ REJESTRÓW DANYCH WE/WY.

Technika mikroprocesorowa I Studia niestacjonarne rok II Wykład 2

organizacja procesora 8086

Pracownia elektryczno-elektroniczna klasa IV

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

Komunikacja w mikrokontrolerach. Magistrala szeregowa I2C / TWI Inter-Integrated Circuit Two Wire Interface

Architektura ARM. Marcin Peczarski. 17 lutego Instytut Informatyki Uniwersytetu Warszawskiego

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

Wybrane zagadnienia elektroniki współczesnej

architektura komputerów w 1 1

Jak przenieść kod z ARM7 do Cortex-M3?

Przerwania w architekturze mikrokontrolera X51

Technika mikroprocesorowa I Wykład 2

Mikroprocesory i Mikrosterowniki Liczniki Timer Counter T/C0, T/C1, T/C2

Systemy wbudowane. Wprowadzenie. Wprowadzenie. Mikrokontroler 8051 Budowa

WOJSKOWA AKADEMIA TECHNICZNA

Programowanie mikrokontrolerów AVR z rodziny ATmega.

Programowany układ czasowy

Programowany układ czasowy APSC

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

ad a) Konfiguracja licznika T1 Niech nasz program składa się z dwóch fragmentów kodu: inicjacja licznika T1 pętla główna

Komunikacja w mikrokontrolerach. Wydział Elektroniki Mikrosystemów i Fotoniki Piotr Markowski

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

Technika Mikroprocesorowa Laboratorium 5 Obsługa klawiatury

CPU architektura i rejestry

Instytut Teleinformatyki

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

Podstawy Informatyki Układ przerwań

MIKROKONTROLERY I MIKROPROCESORY

Programowanie mikrokontrolerów 2.0

Wstęp: Interfejs portu równoległego 6821 i portu szeregowego 6850 firmy Motorola

Mikroprocesory i Mikrosterowniki Analog-Digital Converter Konwerter Analogowo-Cyfrowy

Mikroinformatyka. Tryb wirtualny

Obszar rejestrów specjalnych. Laboratorium Podstaw Techniki Mikroprocesorowej Instytut Mikroelektroniki i Optoelektroniki PW

Układy cyfrowe w Verilog HDL. Elementy języka z przykładami. wersja: cz.3

Architektura mikroprocesorów z rdzeniem ColdFire

Zerowanie mikroprocesora

Programowanie mikrokontrolerów. 8 listopada 2007

Sterownik procesorowy S-2 Komunikacja RS485 MODBUS

CYKL ROZKAZOWY = 1 lub 2(4) cykle maszynowe

Wyświetlacz alfanumeryczny LCD zbudowany na sterowniku HD44780

Start Bity Bit Stop 1 Bit Par Rys. 1

Przerwanie. Źródła przerwań

Programowanie mikrokontrolerów 2.0

Programowanie Mikrokontrolerów

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

Temat: System przerwań, liczniki i wyświetlacz w STRC51. Ćwiczenie 3.

Materiały pomocnicze 1

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

PMiK Programowanie Mikrokontrolera 8051

Wydział Elektryczny. Katedra Automatyki i Elektroniki. Instrukcja do ćwiczeń laboratoryjnych z przedmiotu: SYSTEMY CYFROWE 1

Procesory osadzone ETD 7211 W

Moduł Ethernetowy. instrukcja obsługi. Spis treści

Adres rejestru. szesnastkowo. Typ zmiennej. Numer funkcji Modbus. Opis zmiennej. (dziesiętnie)

Mikroinformatyka. Mechanizmy ochrony pamięci

Programowanie w asemblerze Środowiska 64-bitowe

Mikroprocesor Operacje wejścia / wyjścia

REAL-TIME LINUX. ZGODNOŚĆ Z POSIX ( PSE51 (minimal realtime system profile)

Programowanie niskopoziomowe

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

Ćwiczenie 9 Częstościomierz oparty na µc 8051(8052)

Wbudowane układy komunikacyjne cz. 1 Wykład 10

Wbudowane układy peryferyjne cz. 1 Wykład 7

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

Mikroprocesory i Mikrosterowniki Magistrala szeregowa I2C / TWI Inter-Integrated Circuit Two Wire Interface

Instytut Teleinformatyki

Systemy operacyjne system przerwań

MS360-LPM. wersja 1.09 (wersja robocza) Dokumentacja użytkownika

Podstawowe urządzenia peryferyjne mikrokontrolera ATmega8 Spis treści

Obsługa przetwornika ADC na mikrokontrolerze ATmega8 CEZARY KLIMASZ OBSŁUGA PRZETWORNIKA ADC NA MIKROKONTROLERZE ATMEGA8

Kompilator języka C na procesor 8051 RC51 implementacja

Magistrala SPI. Linie MOSI i MISO sąwspólne dla wszystkich urządzeńna magistrali, linia SS jest prowadzona do każdego Slave oddzielnie.

Transkrypt:

Przerwanie o wyższym priorytecie przerywa obsługę przerwania o niższym priorytecie, po czym następuje powrót do przerwanej obsługi przerwania o niższym priorytecie. (Rysunek z książki T.Starecki. Mikokontrolery jednoukładowe rodziny 51. NOZOMI W-wa 1996)

51 c.d. IE Rejestr zezwoleń na przerwanie. (Przykład dla typów 52, C52, LV52, C54, C55, C154, C501, C502, S852) w szczególności: ADuC812 EA EADC ET2 ES ET1 EX1 ET0 EX0 IE.7 IE.6 IE.5 IE.4 IE.3 IE.2 IE.1 IE.0 EA- EADC - ET2- ES- ET1- EX1- ET0- EX0- bit globalnego zezwolenia na przerwania. EA=0, zablokowanie przerwań bit zezwalający na przerwania od ADC bit zezwolenia na przerwanie od układu licznikowego T2 bit zezwolenia na przerwanie of łącza szeregowego bit zezwolenia na przerwanie od układu licznikowego T1 bit zezwolenia na przerwanie zewnętrzne INT1 bit zezwolenia na przerwanie od układu licznikowego T0 bit zezwolenia na przerwanie zewnętrzne INT0 REJESTR IE ma adres 0A8H i jego bity są zatem adresowalne indywidualnie. Po załączeniu (lub RESET) kontrolera wszystkie bity zezwoleń są wyzerowane

51 c.d. IP podstawowy rejestr priorytetów przerwań (Przykład dla ADuC812) PS1 PADC PT2 PS PT1 PX1 PT0 PX0 IP.7 IP.6 IP.5 IP.4 IP.3 IP.2 IP.1 IP.0 PS1- ustawiany bit poziomu priorytetu (1= high, 0= low ) - dla I2C i SPI PADC- dla ADC PT2- dla układu licznikowego T2 PS- dla łącza szeregowego PT1- dla układu licznikowego T1 PX1- dla przerwania zewnętrznego INT1 PT0- dla układu licznikowego T0 PX0- dla przerwania zewnętrznego INT0 REJESTR IP ma adres 088H i jego bity są zatem adresowalne indywidualnie. Efektywny priorytet przerwania, decydujący o kolejności jego obsługi, zależy od: - poziomu priorytetu danego przerwania, ustalanego w rejestrze IP - naturalnego priorytetu przerwań. Ustawienie bitu IP.n = 1 oznacza ustawienie wysokiego priorytetu dla danego przerwania

Procesory AVR nie wprowadziły fundamentalnie nowych pomysłów do systemów przerwań, ale uporządkowały tabelę wektorów (adresów) procedur obsługi przerwań. Przyjęto też prostą zasadę: priorytet przerwania jest tym wyższy, im niższy jest adres jego obsługi,

AVR nie wprowadziło wielopoziomowego systemu priorytetów. Pewną nowością jest sprzętowe wyłączanie systemu przerwań na wejściu do obsługi przerwania SREG I T H S V N Z C 7 6 5 4 3 2 1 0 I - global interrupt enable -może być ustawiane i zerowane software owo (SEI, CLI) Przykład: przerwania zewnętrzne (8 LINII): EICRA I EICRB rejestry konfigurujące (przerwanie od poziomu,,wzrastającego lub opadającego zbocza impulsu ISC31 ISC30 ISC21 ISC20 ISC11 ISC10 ISC01 ISC00 ISC71 ISC70 ISC61 ISC60 ISC51 ISC5 ISC41 ISC40

Przykład: przerwania zewnętrzne c.d. : EIMSK EXTERNAL INTERRUPT MASK REGISTER INT7 INT6 INT5 INT4 INT3 INT2 INT1 INT0 R/W R/W R/W R/W R/W R/W R/W R/W USTAWIENIE ODPOWIEDNIEGO BITU W EIMSK ZEZWALA NA PRZERWANIE EIFR EXTERNAL INTERRUPT FLAG REGISTER INTF7 INTF6 INTF5 INTF4 INTF3 INTF2 INTF1 INTF0 R/W R/W R/W R/W R/W R/W R/W R/W ODPOWIEDNIA ZMIANA POZIOMU/ZBOCZA USTAWIA FLAGĘ. GENERUJE PRZERWANIE JEŚLI I=BIT JEST USTAWIONE W SREG I GDY ODPOWIEDNI BIT W EIMSK JEST TEŻ USTAWIONY

ARM rejestry robocze oraz rejestry specjalne W kontekście przerwań omówimy niektóre z nich ponownie:

ARM Cortex-M3 obsługuje STOS instrukcjami PUSH i POP. W jednym rozkazie można przenieść wiele rejestrów! PUSH {R0 - R7, R12, R14} ; save registers

ARM CORTEX-M3 REJETRY SPECJALNE C.D. zaliczamy do nich : PSRs Program Status Registers PRIMASK, FAULTMASK i BASEPRI Interrupt mask registers Control - Control Register Dostęp do rejestrów specjalnych mają tylko specjalne instrukcje: MRS <reg>, <special_reg>; czytaj (przenieś) rejestr specjalny MSR <special_reg>, <reg> ; zapisz do rejestru specjalnego PROGRAM STATUS REGISTERS mają trochę osobliwą naturę: APSR, IPSR i EPSR składają się na xpsr Combined Program Status Register.

Combined Program Status Register: APSR Application PSR można zmieniać używając MSR, ale IPSR (Interrupt PSR) oraz EPSR (Execution PSR) są read only! Można mieć też dostęp do wszystkich trzech PSR, jak do jednego rejestru używając symbolu PSR: MRS r0, PSR ; Read the combined program status word MSR PSR, r0 ; Write combined program state word DALSZE REJESTRY SPECJALNE: PRIMASK 1-bitowy rejestr. Gdy USTAWIONY zezwala na NMI oraz na wyjątki hard fault FAULTMASK 1-bitowy rejestr. Gdy ustawiony zezwala wyłącznie na NMI. (Default = 0) BASEPRI - rejestr p maksymalnej długości 9 bitów. Określa masking priority level, wyłącza obsługę wszystkich przerwań o równym lub wyższym priorytecie.

CONTROL REGISTER - ARM CORTEX-M3 JEST TO 2-bitowy REJESTR, który definiuje poziom uprzywilejowania oraz wybór stosu. CONTROL[1] stan stosu: 1 użycie alternatywnego stosu 0 MSP (default) stos Dla Cortex-M3 CONTROL[1] jet zawsze 0 w handler mode, w Thread mode może być 0 lub 1 CONTROL[0] - 0 oznacza stan uprzywilejowany w THREAD mode 1 oznacza stan nieuprzywilejowany (user state) w trybie THREAD TEN BIT MOŻNA ZAPISAĆ TYLKO W STANIE UPRZYWILEJOWANYM. JEŚLI PROCESOR ZNAJDUJE SIĘ W user state TO JEDYNYM SPOSOBEM PRZEŁĄCZENIA SPOWROTEM DO STANU UPRZYWILEJOWANEGO JEST WYMUSZENIE PRZERWANIA I DOKONANIA STOSOWNEJ ZMIANY W PROCEDURZE OBSŁUGI PRZERWANIA. (WEJŚCIE W OBSŁUGĘ PRZERWANIA PRZEŁĄCZA PROCESOR W STAN UPRZYWILEJOWANY)

GDY POJAWIA SIĘ WYJĄTEK W CORTEX-M3 I JEST ZAAKCPETOWANY, TO ZACZYNA SIĘ JEGO OBSŁUGA STARTOWY ADRES HANDLERA OKREŚLA VECTOR TABLE

Definiując poziomy priorytetów możemy wybrać ich liczbę, ograniczając się e.g. dp trzech MSB mamy 8 grup: 0x20, 0x40, 0x60, 0x80, 0xA0, 0xC0 i (najniższy) 0xE0. A Priority Level Register with 4-bit implemented

Możemy też skonfigurować liczebność grup i podgrup. W tym podziale grupy mają własność wywłaszczania.