EDA 480 – Maskinorienterad Programmering

Slides:



Advertisements
Liknande presentationer
Att identifiera och utveckla ledare
Advertisements

EDA 480 – Maskinorienterad Programmering
EDA 480 – Maskinorienterad Programmering
Avlusning Debugger (”avlusare”) Breakpoints Watch.
MS Excel 2010 – Dag 2 Mahmud Al Hakim
Anders Sjögren Lagringsklasser •en variabel i C har två attribut –type( int, float, char..... ) –lagringsklass( auto, extern, register, static ) •lagringsklassens.
EDA Digital och Datorteknik
Klasser och objekt.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Kapitel 5: CPU-schemaläggning.
Funktioner och programorganisation
Leif Håkansson’s Square Dancer Rotation
EDA Digital och Datorteknik
Resultat från SWEA Framtidsenkät December Januari 2009 REGION ANALYS: MAME Korta version 13 april 2009 Kontakt med enkätgruppen:
Resultat från SWEA Framtidsenkät December Januari 2009 REGION ANALYS: Okänd Korta version 13 april 2009 Kontakt med enkätgruppen:
Resultat från SWEA Framtidsenkät December Januari 2009 REGIONANALYS / KORTARE VERSION: Svenska avdelningar 9 april 2009 Kontakt med enkätgruppen:
MS Excel 2007 Dag 1 Lärare: Mahmud Al Hakim. Agenda 1.Börja arbeta med Excel Hantera arbetsböcker 3.Formler 4.Formatera 5.Diagram Att läsa: sid.
MS Excel 2010 – Dag 1 Mahmud Al Hakim. Kursens innehåll 2 DagInnehåll 1 Introduktion till Excel 2010 Hantera arbetsböcker Formler Formatering Litteratur:
1 Ingenjörsmetodik IT & ME 2009 Föreläsare Dr. Gunnar Malm.
Eddie Arnold - Make The World Go Away Images colorées de par le monde Déroulement automatique ou manuel à votre choix 1 för dig.
1 Hårddiskar och Disketter Boot sektorn på en diskett eller startsektorn på en partition (se s. 770)
William Sandqvist System Management functions S Burd, Systems Architecture ISBN Figure 11-2 CPU Management Memory Management.
PC-teknik Repetition enligt önskemål som inkommit via mail. (täcker alltså inte alla moment i kursen)
Elkraft 7.5 hp distans: Kap. 3 Likströmsmotorn 3:1
23 August 2014 IS1200 Datorteknik vt09, föreläsning 10, (E och I mfl)1 IS1200 Datorteknik Föreläsning Processorkonstruktion 2. DMA, Direct Memory.
V E R S I O N N R 2. 0 T A V E L I D É E R I M I L J Ö.
Bastugatan 2. Box S Stockholm. Blad 1 Läsarundersökning Maskinentreprenören 2007.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Kapitel 13: I/O-system.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Kapitel 7: Deadlocks.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Kapitel 11: Implementation av filsystem.
INFÖR NATIONELLA PROVET
Programmering i C# 3. Klasser.
Pekare och speciell programstruktur i inbyggda system
15 x 25 meter. Skriv banenavn Skriv designet af Skriv dato MÅL sväng vänster 6 sväng höger 5 runt 7 Vänster runt hund höger runt.
1 Vänsterskolan Debattartiklar. 2 Aktuell krok 3 Aktuella krokar 1. Direkt krok.
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 8 ( ) Innehåll: Trådprogrammering i Java - Avbrott (”interrupts”) - Metoden join() -
Digitalteknik 7.5 hp distans: 5.1 Generella sekvenskretsar 5.1.1
Från Gotland på kvällen (tågtider enligt 2007) 18:28 19:03 19:41 19:32 20:32 20:53 21:19 18:30 20:32 19:06 19:54 19:58 20:22 19:01 21:40 20:44 23:37 20:11.
Arbetspensionssystemet i bilder Bildserie med centrala uppgifter om arbetspensionssystemet och dess funktion
Styrteknik: Programmering med MELSEC IL PLC2A:1
TÄNK PÅ ETT HELTAL MELLAN 1-50
William Sandqvist C:s minnesmodell.
1 Joomla © 2009 Stefan Andersson 1. 2 MÅL 2 3 Begrepp Aktör: en användare som interagerar med webbplatsen. I diagrammet till höger finns två aktörer:
Kouzlo starých časů… Letadla Pár foteček pro vzpomínku na dávné doby, tak hezké snění… M.K. 1 I Norrköping får man inte.
Grundskola Föräldrar 2013 Grundskoleenkät - Föräldrar Enhet:Gillberga skola.
1(31) Ett omdiskuterat ämne. Vad är det som händer? 2.
2 Agenda 1. Börja arbeta med Excel Hantera arbetsböcker 3. Formler 4. Formatera 5. Diagram 6. Skriva ut 7. Referenser mellan kalkylblad 8. Arbeta.
Täckningsgrad Dec 2014 – feb 2015 Täckningsgrad Dec 2014 – feb 2015.
Arbetspensionssystemet i bilder Bildserie med centrala uppgifter om arbetspensionssystemet och dess funktion
1 Föreläsning 6 Programmeringsteknik och Matlab 2D1312/2D1305 Metoder & parametrar Array API och klassen ArrayList.
Vem som svarat på enkäten Fig 1. Män =75 år Boende Fig 2 Eget boende, ej hemtjänst Eget boende med hemtjänst.
Styrteknik 7.5 hp distans: PLC-Program, kaffe-automat PLC7B:1
1 Logging and monitoring of TCP traffic in SSH tunnels Masters thesis Anton Persson.
Lågnivåprogrammering Översikt av I/O-mekanismer i hårdvara Olika språkkrav och modeller för komponent- hantering(device driving) Modeller för komponent-hantering.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 3 ( ) INNEHÅLL: -Tabeller -Villkorssatser -Repetitionssatser.
Informationsteknologi - Lektion 2 Trådlöst nätverk (WLAN) Trådlöst nätverk (WLAN) Filarkivet: Filarkivet:
31 March 2015IS1200 Datorteknik, förel 101 IS1200 Datorteknik Föreläsning Processorkonstruktion 2. DMA, Direct Memory Access 3. Byte-code i JAVA.
1 386 Från s bits adressbuss –=>4GB minne kan adresseras 32 bits databuss max klockfrekvens: 40MHz Protected mode –virtuellt minne –segmentering.
Anders Sjögren Går det att simulera vår värld med 1:or och 0:or ?
Pipelining Föreläsning 4. T exe — CPU-exekveringstid I — Antalet exekverade instruktioner CPI — Genomsnittligt antal klockcykler per instruktion T c —
Emulatorkonstruktion Schema Inledning Andra metoder Mina metoder Demonstration av min C64-emulator Sammanfattning och frågor.
Projekt 5.3 Gilpins och Ayalas θ-logistiska modell A Course in Mathematical Modeling - Mooney & Swift.
Räkna till en miljard 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,14,15,16,17,18,19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, En miljard är ett.
Bild 1 Prognos för länets arbetsmarknad Stefan Tjb.
1 Jan Lundström OV’s Hemsida Utbildning Ledare. 2 Jan Lundström OV’s Hemsida Standard Lagrum.
När infaller Julafton och hur ofta?
2G1518 Datorteknik Föreläsning 5 Bussar In- och utmatning (Input/Output, I/O) Programstyrd pollning hösten 2005 för D3 och CLMDA m fl.
Grundläggande datavetenskap, 4p
Digitalteknik 3p - Kombinatoriska Byggblock
Digitalteknik 3p - Kombinatoriska Byggblock
Presentationens avskrift:

EDA 480 – Maskinorienterad Programmering 2009/2010 MC68HC12, Stencil ”Assemblerprogrammering.pdf” CPU12 Reference Guide Arbetsbok för MC12, avsnitt 2 Ur innehållet: Processorns tillstånd Undantagshantering (”Exceptions”) Auto-vektoriserat Vektoriserat Avbrottsprioritering Undantagshantering

Exekveringstillstånd Processorn befinner sig alltid i något av tillstånden: NORMAL, processorn hämtar och utför instruktioner, dvs. normal exekvering. EXCEPTION, något “undantag” har inträffat som gör att processorn inte kan (eller ska) fortsätta normal exekvering. EXCEPTION NORMAL Undantagshantering

Test av Undantagstillstånd Hämta Instruktion IRQ Aktiv ? Utför Instruktion Ja Nej Utför Avbrottsrutin Undantagshantering

Undantagstyper CPU12 RESET IRQ XIRQ EXCEPTION RESET MPU COP CMON AVBROTT INTERNA IOF POR INTP IRQ XIRQ SWI RESET MPU, händelser som alltid föranleder återstart (RESET) av processorn. AVBROTT, externa händelser, dvs. utanför processorn, detta kan alltså vara enheter på samma krets som processorn (sammanbyggda periferienheter), det kan också vara en speciell insignal (IRQ eller XIRQ) som aktiveras. INTERNA, händelser som uppträder under programexekvering, exempelvis att en otillåten instruktion avkodas eller den speciella instruktionen SWI. Undantagshantering

Fatala fel, kräver RESET av CPU COP CMON POR POR, Power On Reset, vid spänningstillslag RESET, insignal till processorn aktiveras. COP, Computer Operating Properly, så kallad watchdog-funktion. CMON, Clock Monitor Reset, övervakar E-klockan, om frekvensen sjunker under 10 kHz genereras RESET. Adress (hex) Funktion FFFE RESET, Startvektor FFFC Clock Monitor Fail FFFA COP Watchdog Timeout FFF8 Illegal Op Code FFF6 SWI FFF4 XIRQ FFF2 IRQ FF00-FFF0 Enhetsspecifika vektorer, skiljer sig något beroende på olika varianter Undantagshantering

Interna undantag INTERNA IOF SWI Om processorn avkodar en otillåten operationskod kallas detta Illegal Opcode Fetch (IOF). Processorn avbryter då, sparar registerinnehåll på stacken, läser autovektorn för IOF och utför undantagshantering. Instruktionen SoftWare Interrupt (SWI) fungerar på samma sätt, men har en annan autovektor och en bestämd operationskod. Adress (hex) Funktion FFFE RESET, Startvektor FFFC Clock Monitor Fail FFFA COP Watchdog Timeout FFF8 Illegal Op Code FFF6 SWI FFF4 XIRQ FFF2 IRQ FF00-FFF0 Enhetsspecifika vektorer, skiljer sig något beroende på olika varianter Undantagshantering

EXEMPEL, Hantera ”Software Interrupt”, SWI SWI_hantering: CLRA NOP RTI ORG $FFF6 FDB SWI_hantering ORG $1000 main LDAB #$11 LDAA #$22 LDX #$3333 LDY #$4444 NOP SWI BRA main Adress (hex) Funktion FFFE RESET, Startvektor FFFC Clock Monitor Fail FFFA COP Watchdog Timeout FFF8 Illegal Op Code FFF6 SWI FFF4 XIRQ FFF2 IRQ FF00-FFF0 Enhetsspecifika vektorer, skiljer sig något beroende på olika varianter Utför i simulator, betrakta stackens utseende Undantagshantering

Internt genererade avbrott INTP IRQ XIRQ Adress (hex) Funktion FFF0 Real Time Interrupt FFEE Enhanced Capture Timer channel FFEC Enhanced Capture Timer channel 1 FFEA Enhanced Capture Timer channel 2 .... FF8E Port P Interrupt FF8C PWM Emergency Shutdown FF8A- FF80 Reserverade Undantagshantering

Externt genererade avbrott INTP IRQ XIRQ CPU12 RESET IRQ XIRQ Adress (hex) Funktion FFFE RESET, Startvektor FFFC Clock Monitor Fail FFFA COP Watchdog Timeout FFF8 Illegal Op Code FFF6 SWI FFF4 XIRQ FFF2 IRQ FF00-FFF0 Enhetsspecifika vektorer, skiljer sig något beroende på olika varianter Undantagshantering

Undantags prioritet RESET MPU och ”INTERNA” , (alltid) XIRQ, (om X i CCR är 0) IRQ, (om I i CCR är noll) CPU12 RESET IRQ XIRQ 1 hantering av RESET avbrottshantering för XIRQ avbrottshantering för IRQ EXCEPTION RESET MPU COP CMON AVBROTT INTERNA IOF POR INTP IRQ XIRQ SWI Undantagshantering

Avbrottshantering 1) Huvudprogram exekveras när ett avbrott aktiveras 2) Hopp till avbrottsrutin 3) Avbrottsrutin startar 4) Avbrottsrutin avslutas med en speciell instruktion, return from interrupt (RTI) 5) Återhopp till huvudprogram 6) Huvudprogrammet fortsätter. ”avbrottsvektor” FFF2 FFF3 Minne Avbrottsrutinens adress Undantagshantering

Maskering av avbrott SEI ORCC #%00010000 CLI ANDCC #%11101111 Maskera avbrott: SEI Alternativt ORCC #%00010000 Hämta Instruktion IRQ Aktiv ? Utför Instruktion Ja Nej Utför Avbrottsrutin I-flagga = 0 ? Demaskera avbrott: CLI Alternativt ANDCC #%11101111 Demaskera X-avbrott: ANDCC #%10111111 OBS: Kan INTE maskeras (”Non Maskable Interrupt”) Undantagshantering

CPU12 – Beteende vid RESET/Avbrott XIRQ IRQ CCR = 1101000 REGISTERS->[SP] PC=[FFFE,FFFF] CCR[I]=1 PC=[FFF4,FFF5] PC=[FFF2,FFF3] CCR Undantagshantering

Spara registerinnehåll… ”Atomär operation” PUSH PC PUSH Y PUSH X PUSH D PUSH CCR Stackens utseende i avbrottsrutin SP PCL PCH YL YH XL XH ACCA ACCB CCR Innehåll i processorns programräknare vid avbrottet, dvs adressen till nästa instruktion som ska utföras Innehåll i processorns register (Y,X och D) vid avbrottet Innehåll i processorns register CCR vid avbrottet minskande adress ökande adress Undantagshantering

Avslut av avbrottsrutin ”ReTurn from Interrupt”, RTI ”Atomär operation” PULL CCR PULL D PULL X PULL Y PULL PC Undantagshantering

Multipla avbrottskällor Källa 1 2 3 & IRQ 1 IRQ 2 IRQ 3 IRQ Processor avbrottsingång aktiv låg Undantagshantering

Programbaserad avbrottsprioritering Undantagshantering

Hårdvarubaserad avbrottsprioritering Undantagshantering

Intern avbrottsprioritering Adress (hex) Funktion FFF0 Real Time Interrupt FFEE Enhanced Capture Timer channel FFEC Enhanced Capture Timer channel 1 FFEA Enhanced Capture Timer channel 2 FFE8 Enhanced Capture Timer channel 3 FFE6 Enhanced Capture Timer channel 4 FFE4 Enhanced Capture Timer channel 5 FFE2 Enhanced Capture Timer channel 6 FFE0 Enhanced Capture Timer channel 7 FFDE Enhanced Capture Timer overflow FFDC Pulse accumulator A overflow FFDA Pulse accumulator input edge FFD8 SPI0 FFD6 SCI0 FFD4 SCI1 FFD2 ATD0 FFD0 ATD1 FFCE Port J FFCC Port H FFCA Modulus Down Counter underflow FFC8 Pulse Accumulator B Overflow FFC6 PLL lock FFC4 CRG Self Clock Mode FFC2 Används ej (BDLC) FFC0 IIC Bus FFBE SPI1 FFBC Reserverad FFBA EEPROM I-Bit FFB8 FLASH I-Bit FFB6 CAN0 wake-up FFB4 CAN0 errors FFB2 CAN0 receive FFB0 CAN0 transmit … FF96 CAN4 wake-up FF94 CAN4 errors FF92 CAN4 receive FF90 CAN4 transmit FF8E Port P Interrupt FF8C PWM Emergency Shutdown FF8A- FF80 Reserverade Högre prioritet För avbrott från interna kretsar bestäms prioriteten av avbrottsvektorns adress. Ju högre adress, desto högre prioritet. Det finns vissa möjligheter att ändra detta programmässigt. Lägre prioritet Undantagshantering

Avbrottsvippa Aktivera avbrott Avaktivera avbrott Tryckknapp Puls vid nedtryckning av tryckknapp Processor IRQ 1D Q C1 R "1"  A15 A14 A13 A12 A11 A0 R/W Write address Puls då processorn skriver Aktivera avbrott Avaktivera avbrott Undantagshantering

Kvittering av avbrott ”Interrupt Acknowledge” EXEMPEL: ( jfr: laborationskort ML19) Aktivera avbrott Nollställ (”kvittera”) avbrott Status hos avbrottskällor Undantagshantering

EXEMPEL, Arbetsbok uppgift 45 (”IRQ4.S12”) ; Definitioner, initieringssekvens ; och avbrottsvektor PARPORT1 EQU $0880 PARPORT2 EQU $0881 IrqStat EQU $0D00 IrqRes1 EQU $0D02 IrqRes2 EQU $0D03 ORG $1000 * Nollställ våra variabler CLR Var1 CLR Var2 CLR IrqRes1 CLR IrqRes2 * Sätt om avbrottsmasken hos processorn CLI * Initiera avbrottsvektor IRQ ORG $FFF2 FDB IrqR ; Huvudprogram Loop LDAB Var1 ADDB #1 STAB Var1 STAB PARPORT1 LDAB Var2 STAB PARPORT2 BRA Loop * Variabler Var1 RMB 1 Var2 RMB 1 Undantagshantering

EXEMPEL, forts. * Avbrottsrutin IrqR: LDAA IrqStat BITA #2 ; Event 2 ? BEQ IrqR1 ; Om inte prova nästa CLR IrqRes2 INC Var2 ; Räkna upp IrqR1: * Kontrollera även Event 1... BITA #1 BEQ IrqR2 CLR IrqRes1 CLR Var2 ; Nollställ IrqR2: RTI IrqStat EQU $0D00 IrqRes1 EQU $0D02 IrqRes2 EQU $0D03 Undantagshantering

Applikation för avbrott (IRQ) I detta adressintervall placeras gränssnitt mot externa enheter ROM, Innehåller det inbyggda debugger-programmet DBG12. RWM, används för program och data. HCS12 interna register FFFF 4000 3FFF 1000 0FFF 0400 03FF 0000 ;Initieringssekvens ORG XXXX Application_Start: LDS #TopOfStack ... ; nollställ I-flagga ANDCC #$FE JSR _main ORG $FFF2 FDB irq_service_routine ORG $FFFE FDB Application_Start ; Avbrottshanterare irq_service_routine: RTI I laborationssystemet (MC12) kan vi INTE placera avbrottsvektorerna på deras rätta platser (konflikt med DBG12) I stället placeras dom i RWM Undantagshantering

MC12 (DBG12) och avbott MC12 Simulator ORG $FFF2 ORG $3FF2 Vektor ROM Funktion FFFE RESET, Startvektor FFFC Clock Monitor Fail, JMP [3FFE] FFFA COP Watchdog Timeout, JMP [3FFC] FFF8 Illegal Op Code, JMP [3FFA] FFF6 SWI, JMP [3FF8] FFF4 XIRQ, JMP [3FF4] FFF2 IRQ, JMP [3FF2] FF8C FFF0 Enhetsspecifika JMP [3Fxx] vektorer IRQ Huvudprogram Betjäna RTI avbrottet IRQHandler Simulator MC12 ORG $FFF2 FDB irq_service_routine ; Avbrottshanterare irq_service_routine: RTI ORG $3FF2 FDB irq_service_routine ; Avbrottshanterare irq_service_routine: RTI Undantagshantering

Vektoravbrott Somliga periferikretsar konstrueras för att tillhandahålla avbrottsvektor (kan ej anslutas till HCS12) Undantagshantering

Prioritet vid vektoravbrott (Daisy chain) Undantagshantering

EXEMPEL, ”ColdFire” (MC68x00) Vektor nr Adress (offset) (hex) Funktion 000 Initial stackpekare 1 004 Initial programräknare 2 008 Access Error (ex: referens till adress där minne/periferikrets ej finns) 3 00C Adress Error (ex: referens till udda adress med word operand) 4 010 Illegal instruktion (icke-definierad operationskod) 5 014 Division med 0 6,7 018, 01C Reserverade 8 020 Privilege Violation, försök att utföra supervisor-instruktion i user mode 9 024 Trace, en-instruktions exekvering 10 028 Line 1010, reserverad operationskod 11 02C Line 1111, reserverad operationskod 12 030 Non-PC breakpoint debug interrupt 13 034 PC breakpoint debug interrupt 14 038 Format error 15 03C Avbrott från enhet som ej tillhandahållit avbrottsnummer 16-23 040-05F Reserverade vektorer 24 060 Icke-identifierat avbrott 25 064 Autovektor avbrottsnivå 1 26 068 Autovektor avbrottsnivå 2 27 06C Autovektor avbrottsnivå 3 28 070 Autovektor avbrottsnivå 4 29 074 Autovektor avbrottsnivå 5 30 078 Autovektor avbrottsnivå 6 31 07C Autovektor avbrottsnivå 7 32-47 080-0BF Trap vektor för instruktionen TRAP #<vektor_nummer> 48-63 0C0-0FF Undantag vid flyttalshantering, Reserverade vektorer 64-255 100-3FF Användardefinierade vektorer RESET vektor ”Undantag” genererade av program Autovektor avbrott Vektoravbrott Undantagshantering

Skrivarport med avbrott, Version 5 Skrivare IRQ Dator-system READY DAV Skrivar buss Skrivare Dator-system READY DAV Skrivarbuss READY A1 A0 R/W Adress avkodning 1D Q C1 R "1" IRQ Undantagshantering

Skrivarport, Version 5 PRINTER EQU $0800 PSTATUS EQU $0801 PCONTROL EQU $0802 Denna lösning genererar ALLTID avbrott då skrivarens teckenbuffert är tom…. Undantagshantering

Skrivarport, Version 6 I vår sista lösning kan vi stänga av avbrotten från skrivaren. ”Disable Interrupt” Undantagshantering