TSEA28 Datorteknik Y (och U)

Storlek: px
Starta visningen från sidan:

Download "TSEA28 Datorteknik Y (och U)"

Transkript

1 TSEA28 Datorteknik Y (och U), föreläsning 6, Kent Palmkvist Praktiska kommentarer TSEA28 Datorteknik Y (och U) Föreläsning 6 Kent Palmkvist, ISY Deadline anmälan till Lab1 del A idag 4/2 kl Anmälan via Lisam Måste vara kursregistrerad (via studentportalen) Om registreringsproblem måste ni skicka mail till mig för access till lisam Labsidan uppdaterad med speciell getkey för lab1 Användbar för dom som har eget kort och vill testa lab1-lösning Läser datorns tangentbord istället för anslutet tangentbord Fortfarande krav at ansluta och använda 16-tangenters tangentbord för godkänd lab TSEA28 Datorteknik Y (och U), föreläsning 6, Kent Palmkvist TSEA28 Datorteknik Y (och U), föreläsning 6, Kent Palmkvist Dagens föreläsning Avbrot Princip Avbrot på ARM Avbrot på Darma Exempel Flera nivåers avbrot Avbrot på labbsystemet Praktiska kommentarer, forts. Mux1 tillgänglig för egen träning (start torsdag 7/2) Endast på ej schemalagd tid Håll ordning! Ingen mat i labbet (inklusive i papperskorgarna) Koppla ned, rent och snyggt när ni lämnar labbplatsen Alla som tränar på egen hand ska vara ute ur labbet senast 15 minuter före labbstart (9.45, 12.45, 14.45, 16.45)

2 TSEA28 Datorteknik Y (och U), föreläsning 6, Kent Palmkvist TSEA28 Datorteknik Y (och U), föreläsning 5, Kent Palmkvist Repetition av bitposition och bitvikter Alla bitpositioner och byteadresser räknas med start på 0 Lägsta adress är 0 Minst signifikant bit är bit 0 Mest signifikant bit är bit 7 för byte, bit 15 för halvord, och bit 31 för ord För at skapa en konstant med en 1:a i motsvarande bitposition använd talet 2^(bitpos) Bitposition 2 är 3:e biten från höger, motsvarar värdet 4 Alternativt: Skriv i binär, översät till hexadecimalt (0100 = $4) In och utmatning, generellt Alla datorer behöver kommunicera med omvärden (se studenträknarexemplet) Skicka ut bitar via en speciell minnesadress kopplad till pinne Läs av insignaler via en speciell adress kopplad till pinne Problem med den enkla uppsätningen Måste veta i förväg hur många in och utsignaler som ska finnas Kan bara skicka ut alternativt ta emot signal på en pinne Varje pinne på kretsen kostar extra, vill utnytja dom maximalt Vissa funktioner är enkla at bygga hårdvara för men dyra at lösa programmeringsmässigt Vissa funktioner har för hög hastighet för at processorn ska hinna med TSEA28 Datorteknik Y (och U), föreläsning 6, Kent Palmkvist TSEA28 Datorteknik Y (och U), föreläsning 5, Kent Palmkvist Repetition datorsystemet (slide 6 fö 5) Minne 32-bitars ordbredd (läs/skriv 4 byte varje gång) Kan läsa enskilda byte med LDRB respektive skriva med STRB Adress pekar på varje enskild byte (8-bit) Uppdelat i programminne, dataminne och I/O-enheter Processor 16 register (13 generella + SP, LR, PC) + statusregister med flaggor Instruktioner och textkonstanter läses från programminnet Data till/från register kommer från/till dataminne och I/O enheter Måste peka på (ange adress) med et register Alla beräkningar måste ske i register In och utmatning, Parallellport (GPIO) Vanlig funktion är parallellporten Skicka ut en byte per gång Läs av en byte per gång At styra utsignaler Värdet som lagras i utporten finns tillgänglig på datorns utsida Varje gång nyt värde skrivs ändras utsignalerna på en gång I vissa datorer kan man även läsa ut utportens värde Är det datat man skrivit till porten som läses, eller är det värdet på pinnen? Ibland kan båda möjligheterna finnas (två olika adresser)

3 TSEA28 Datorteknik Y (och U), föreläsning 5, Kent Palmkvist TSEA28 Datorteknik Y (och U), föreläsning 5, Kent Palmkvist In och utmatning, Parallellport, forts. At läsa av en port är enkelt Välj portens pinnar istället för minnet för någon specifik adress In och utgångar kan kombineras ihop Möjliggör anpassning till aktuellt behov Tillåter dubbelriktad kommunikation (databuss) Måste kunna styra om en pinne ska fungera som ut eller ingång Extra värden används (riktningsinformation) för varje bit Andra specialfunktioner Drivning Pull up/pull down tristate Exempel BCM2835 (raspberry pi) Liknar Atmel-kretsen Kan även välja 0 som förvalt värde om inte ansluten pinne Kan styrka på utsignalen (max ström) Flera olika I/O-enheter kan anslutas till en pinne Välj vilken funktion som ansluts via yterligare et register Gäller faktist även Atmel-kretsen TSEA28 Datorteknik Y (och U), föreläsning 5, Kent Palmkvist TSEA28 Datorteknik Y (och U), föreläsning 6, Kent Palmkvist Exempel Parallellportsstyrning, Atmel Exempel från Atmel SAM3X (arduino due) Förenklad vy, total 16 register Varje pinne styrs av flera bitar Välj om pinnen ska kunna skicka ut et värde (tristate) Välj om pinnen ska kunna skicka ut 0 och 1 eller bara 0 (open collector) Värde som ska skickas ut Välj om värdet alltid blir 1 om pinnen inte ansluten (pull-up) Open collector tristate utvärde logik dator pullup 3.3V Avläst värde omgivning Pinne GPIO kontrollregister, Darma Varje port har 36 register 55 sidor i dokumentationen (Tiva TM4C123GH6PM Microcontroller Data Sheet) 13 register styr funktion (in/ut, strömbegränsningar, funktionsval) GPIODATA, värde at skicka ut och värde at läsa av GPIODIR, om pinne är ut eller ingång 0 = ingång, 1 = utgång Tita gärna på lab1.asm och funktionerna initgpiob respektive initgpiof

4 TSEA28 Datorteknik Y (och U), föreläsning 6, Kent Palmkvist TSEA28 Datorteknik Y (och U), föreläsning 6, Kent Palmkvist Problem med nuvarande datormodell I många fall behöver maskinen göra flera saker samtidigt Räkna tid och kontrollera sensorer Om beräkningar/andra aktiviteter samtidigt Hinner kanske inte med at kontrollera sensorer i tid Tillbringar för mycket tid at kontrollera sensorer Varierande tidsräkning beroende på sensoraktivitet Svårt at programmera Måste om och om igen anropa rutin som läser av sensorer Et försök at implementera samtidig kontroll Antag större beräkningsloop Antag problemet kan beskrivas som 512 små steg (implementerat i subrutinen calculate_small_part) mov r5,#512 loop bl calculate_small_part bl check_keyboard bl check_network subs r5,r5,#1 bne loop Subrutinerna måste returnera snabbt, annat missar man tecken Nackdel: Alla program måste hålla ordning på vad som ska kontrolleras (göra rät anrop) Måste kunna delas upp i små korta avsnit TSEA28 Datorteknik Y (och U), föreläsning 6, Kent Palmkvist TSEA28 Datorteknik Y (och U), föreläsning 6, Kent Palmkvist Exempel på aktiviteter som måste hanteras direkt Tangentbordstryck Kan trycka på ny tangent inom 50 ms Tecken som skickas över seriell kommunikationslänk bitar/s => ~11000 tecken/s => ca 100 us per tecken Datapaket skickade över WLAN Svar inom 16 us (eller snabbare) Olika applikationer har olika krav på max responstid Analogi med riktiga världen Antag ni ska äta frukost, läsa tidningen och samtidigt väntar telefonsamtal Lösning et Lyft luren och kontrollera om någon ringer till er Om någon i andra änden: prata i telefonen, tills samtalet är över Ta två tuggor flingor, svälj Läs en artikel i tidningen Börja om Lösning två Ät två tuggor, läs en artikel i tidningen, börja om Telefonen ringer vilket avbryter aktuell aktivitet (ni slutar äta, lämnar tidningen öppen) Svara i telefon, prata Återgå till at äta och läsa tidningen där ni var när telefonen ringde

5 TSEA28 Datorteknik Y (och U), föreläsning 6, Kent Palmkvist TSEA28 Datorteknik Y (och U), föreläsning 6, Kent Palmkvist Skillnader mellan metoderna At kontinuerligt kontrollera/testa om något hänt är Ineffektivt (många onödiga instruktioner som görs) Speciellt om händelsen är sällsynt Långsamt (måste vänta på at aktuell aktivitet slut innan byter) Känt som programmed IO eller busy wait I/O) At bli avbruten (motsvarande at telefonen ringer) kräver Möjlighet at mit i exekvering av et program hoppa till en annan rutin Extra hårdvara (motsvarande ringklockan i telefonen) Programmet som blir avbrutet ska inte märka at det hänt Inga register, flaggor eller liknande i processorn som huvudprogrammet använder får förändras Känt som avbrotsstyrd I/O Fler exempel på användning av avbrot Signal från I/O-enhet Tangent nedtryckt (jfr strobe från tangentbord) Timeravbrot en viss tid har förflutit Systemanrop Applikationsprogram anropar et operativsystem för at utföra en speciell funktion Fel i programmet Division med 0, läsning av ord (16 eller 32 bitar) på udda adress, läsning i ej existerande minne, och liknande Et datapaket har kommit in på nätverkskortet Datablock är inläst från hårddisk till minne TSEA28 Datorteknik Y (och U), föreläsning 6, Kent Palmkvist TSEA28 Datorteknik Y (och U), föreläsning 6, Kent Palmkvist At avbryta datorns huvudprogram En I/O-enhet (t ex parallellport) skickar signal Kallas för en avbrotsbegäran Processorn avbryter nuvarande program Gamla värdet på PC och statusregister (Z,C,N flaggor mm) sparas på stacken Byt värde på PC till speciell avbrotsrutin Ta hand om orsaken till avbrotet Återställ statusregister och PC (hämta från stacken) Programmet fortsäter som innan avbrotet Avbrotshantering liknar subrutinanrop Skillnad: Även staturegister med flaggor sparas Exempel motivation till avbrot Antag vi har en I/O enhet som tar emot tecken i hög hastighet. Om UART0_UARTDR inte töms innan nästa tecken från I/O så tappas tecken bort Spara inkommande tecken (finns i UART0_UARTDR) i en buffert i minnet Subrutin för at spara värde i buffert Variabel buffpos pekar på nästa lediga plats i buffert Subrutinen kontrollerar om nyt tecken finns, och i så fall placera det på lediga platsen i bufferten och uppdatera buffpos till nästa lediga plats. buffert buffpos UART0_UARTDR 'h' 'e' Tecken från yttre enhet (I/O) Exempel serieport eller datornät UART0_UARTFR 0x65 0x6A 0x20 buffert+4 Bit 4 = 0 om nytt tecken 'j' ' '

6 TSEA28 Datorteknik Y (och U), föreläsning 6, Kent Palmkvist TSEA28 Datorteknik Y (och U), föreläsning 6, Kent Palmkvist Exempel motivation till avbrot Subrutin för at spara värde i buffert savechar push {r0,r1,r2} ; Kommer använda registren mov r1,#(uart0_uartfr & 0xffff) ; Peka på movt r1,#(uart0_uartfr >> 16) ; statusregister buffert ldr r2,[r1] ; Hämta status ands r2,r2,#0x10 ; Finns tecken? bne skipcopy ; nej (bit 4= 1), hoppa ur mov r1,#(uart0_uartdr & 0xffff) ; peka på movt r1,#(uart0_uartdr >> 16) ; dataregistret ldr r2,[r1] ; läs tecken buffpos buffert+4 mov r1,#(buffpos & 0xffff) ; peka på variabeln movt r1,#(buffpos >> 16) ; buffpos UART0_UARTDR ldr r0,[r1] ; hämta värdet i buffpos strb r2,[r0],#1 ; spara tecken i buffert, öka r0 str r0,[r1] ; öka adress i buffpos Tecken från yttre enhet (I/O) skipcopy pop {r0, r1, r2} ; återställ register Exempel serieport eller datornät UART0_UARTFR 0x65 0x6A 0x20 Bit 4 = 0 om nytt tecken 'h' 'e' 'j' ' ' Exempel på avbrot, fel sät del 1 För varje varv i loop (tidigare 3 instruktioner) som utförs 8 extra instruktioner för at testa om tecken behöver tas om hand 1/4 av hastigheten mot tidigare Kan minska förlusten av beräknings-hastighet genom t ex behålla konstanter i register som behövs för test. Måste hålla ordning på vilka register som förstörs av savechar Kan minska förlusten av beräknings-hastighet genom at t ex räkna två steg i loop innan test om tecken finns, etc. Komplicerad kod, massa olika gränsfall mov r0,#66 bl nsum... nsum: push {r1,lr} mov r1,#0 nexturn:add r1,r1,r0 bl savechar subs r0,r0,#1 bne nexturn mov r0,r1 pop {r1,lr} savechar:push {r0,r1,r2} ; använda registren mov r1,#(uart0_uartfr & 0xffff) ; Peka på movt r1,#(uart0_uartfr >> 16) ; statusregister ldr r2,[r1] ; Hämta status ands r2,r2,#0x10 ; Finns tecken? bne skipcopy ; nej (bit 4= 1), hoppa ur mov r1,#(uart0_uartdr & 0xffff) ; peka på movt r1,#(uart0_uartdr >> 16) ; dataregistret ldr r2,[r1] ; läs tecken mov r1,#(buffpos & 0xffff) ; peka på variabeln movt r1,#(buffpos >> 16) ; buffpos ldr r0,[r1] ; hämta buffpos strb r2,[r0],#1 ; spara i buffert, öka r0 str r0,[r1] ; spara ny buffpos skipcopy: pop {r0, r1, r2} ; återställ register TSEA28 Datorteknik Y (och U), föreläsning 6, Kent Palmkvist TSEA28 Datorteknik Y (och U), föreläsning 6, Kent Palmkvist Exempel motivation till avbrot, forts. Exempel på avbrot, fel sät del 2 Vill samtidigt som tecken kommer kunna beräkna summa n+(n-1) (se förra föreläsningen) Lägg till anrop till test om tecken tillgängligt mov r0,#66 bl nsum... nsum: push {r1,lr} mov r1,#0 nexturn: add r1,r1,r0 bl savechar subs r0,r0,#1 bne nexturn mov r0,r1 pop {r1,lr} Kan inte placera anrop var som helst Om mellan SUB och BNE kraschar programmet savechar push {r0,r1,r2} ; Kommer använda registren mov r1,#(uart0_uartfr & 0xffff) ; Peka på movt r1,#(uart0_uartfr >> 16) ; statusregister ldr r2,[r1] ; Hämta status ands r2,r2,#0x10 ; Finns tecken? bne skipcopy ; nej (bit 4= 1), hoppa ur mov r1,#(uart0_uartdr & 0xffff) ; peka på movt r1,#(uart0_uartdr >> 16) ; dataregistret ldr r2,[r1] ; läs tecken mov r1,#(buffpos & 0xffff) ; peka på variabeln movt r1,#(buffpos >> 16) ; buffpos ldr r0,[r1] ; hämta värdet i buffpos strb r2,[r0],#1 ; spara tecken i buffert, öka r0 str r0,[r1] ; öka adress i buffpos skipcopy pop {r0, r1, r2} ; återställ register Lägg till speciell funtion i datorn Låt subrutinen savechar starta så fort et tecken kommit Speciell hårdvara sparar aktuellt värde i PC på stacken och placerar adressen savechar i PC När subrutinen är slut (rts utförs) fortsäter nsum som vanligt och nya avbrot tillåts Et problem: Vad händer om tecken kommer efter SUBS instruktionen? savechar ändrar Z-flaggan! mov r0,#66 bl nsum... nsum: push {r1,lr} mov r1,#0 nexturn: add r1,r1,r0 bl savechar subs r0,r0,#1 bne nexturn mov r0,r1 pop {r1,lr} savechar: push {r0,r1,r2} mov r1,#(uart0_uartfr & 0xffff) movt r1,#(uart0_uartfr >>16) ldr r2,[r1] ands r2,r2,#0x10 bne skipcopy mov r1,#(uart0_uartdr & 0xffff) movt r1,#(uart0_uartdr >> 16) ldr r2,[r1] mov r1,#(buffpos & 0xffff) movt r1,#(buffpos >> 16) ldr r0,[r1] strb r2,[r0],#1 str r0,[r1] skipcopy: pop {r0, r1, r2}

7 TSEA28 Datorteknik Y (och U), föreläsning 6, Kent Palmkvist TSEA28 Datorteknik Y (och U), föreläsning 6, Kent Palmkvist Exempel på avbrot, rät sät Avbrot på ARM Cortex-M4 (Darma) 0000B8 savechar Se till at även spara alla flaggor (Z,C,N,V etc.) dvs PSR registret, när savechar startas Avbrot är mer än et automatisk subrutinanrop Måste återställas när savechar är slut Speciell återhoppsadress Vill inte behöva bestämma i förväg exakt vilken adress rutinen startar på Fix minnesadress innehåller adress till rutin (PC läses från speciell minnesadress vid avbrotets start där adressen till savechar ligger lagrad) mov r0,#66 bl nsum... nsum: push {r1,lr} mov r1,#0 nexturn: add r1,r1,r0 bl savechar subs r0,r0,#1 bne nexturn mov r0,r1 pop {r1,lr} savechar: push {r0,r1,r2} mov r1,#(uart0_uartfr & 0xffff) movt r1,#(uart0_uartfr >>16) ldr r2,[r1] ands r2,r2,#0x10 bne skipcopy mov r1,#(uart0_uartdr & 0xffff) movt r1,#(uart0_uartdr >> 16) ldr r2,[r1] mov r1,#(buffpos & 0xffff) movt r1,#(buffpos >> 16) ldr r0,[r1] strb r2,[r0],#1 str r0,[r1] skipcopy: pop {r0, r1, r2} Avsnit 2.5 i Tiva TM4C123GH6PM Microcontroller Data Sheet. När avbrotssignal aktiveras Push PSR, PC, LR, R12, R3, R2, R1, R0 på stack (SP (R13) minskas) (steg 1) Läs fix minnexadress (t ex 0000B8-0000BB) som innehåller adress till avbrotrutin (steg 2) Hantera avbrotet (t ex läs tangentbord) Stäng av källan till avbrot Återställ register med pop av PSR, PC, LR, R12, R3, R2, R1 och R0. (steg 1 åt andra hållet) R0 R1 R2 R3 R4 R11 R12 SP (R13) LR (R14) PC (R15) PSR Z,C,N,V etc. 1 R0 R1 R2 R3 R12 LR (R14) PC (R15) PSR 2 TSEA28 Datorteknik Y (och U), föreläsning 6, Kent Palmkvist TSEA28 Datorteknik Y (och U), föreläsning 6, Kent Palmkvist Avbrot på ARM ARM har olika sät at hantera avbrot beroende på processormodell Boken beskriver Cortex-A och tidigare modeller Byter vissa register till nya när avbrot sker (banked registers) Har väldigt få avbrot definierade Darma använder Cortex-M4 som har en lite annorlunda avbrothantering Gemensamt för alla Avbrot medför at nuvarande program avbryts Register sparas och/eller byts ut mot nya versioner En adress ur vektortabell (i programminnet) anger var avbrotsrutinen ligger som ska startas Viktigt: osynlig avbrotshanterare Inga register (R4-R11) får ha ändrats när avbrotsrutin avslutas Programmet som avbrutits får inte märka at avbrot sket R0-R3 och R12 sparas redan automatiskt vid start av avbrot Använda register måste spara undan först Vanligt at spara register först, återställa register sist avbrotsrutin: push {r4,r5,r6}... ; aktivitet, tex läs tangent pop {r4,r5,r6} ; OBS, inte mov pc,lr

8 TSEA28 Datorteknik Y (och U), föreläsning 6, Kent Palmkvist TSEA28 Datorteknik Y (och U), föreläsning 6, Kent Palmkvist Oväntad detalj: 8-byte alignment av stack Flera avbrotsorsaker Vid avbrot läggs alltid första registret på en adress jämnt delbar med 8 Kan se ut som extra värde lagts på stacken Bit 9 i PSR säts om extra värde lagts på stacken PSR placeras också på stacken Måste kontrolleras för at veta hur stacken ser ut I exemplen tidigare kunde många saker ge avbrot Tangentryck på et tangentbord Paket till nätverkskort Enklast: Låt alla avbrotsorsaker köra igång samma avbrotsrutin Måste hita vilken/vilka enheter som orsakade avbrotet Avbrotsrutinen startar alltid med at kontrollera orsak till avbrot Dator avbrott 1 avbrotsrutin: var det enhet 1? ja, hoppa till rutin för enhet 1 nej inte enhet 1. Var det enhet 2? ja, hoppa till rutin för enhet 2 : Avbrott enhet 0 Avbrott enhet 1 Avbrott enhet 2 TSEA28 Datorteknik Y (och U), föreläsning 6, Kent Palmkvist TSEA28 Datorteknik Y (och U), föreläsning 6, Kent Palmkvist Spara energi med hjälp av avbrot I studenträknarexemplet kontrollerades sensorerna hela tiden En loop som alltid läste nuvarande sensorläge, kollade värdet, och om inte aktivt provade igen Med avbrot kan processorn stanna Ställ in hårdvaran så avbrot fås när knapp trycks Inga instruktioner behöver avkodas innan sensorn skapar et avbrot Kan stoppa processorn (sleep mode) Speciell instruktion/hårdvara behövs för at det ska fungera Kan minska strömförbrukningen Inga minnesaccesser, ingen instruktionsavkodning Flera källor till avbrot Avbrot behöver åtgärdas olika fort beroende på källa Mikrosekunder för WLAN Millisekunder för tangentbord Avbrotrutinen får inte vara för lång Nästa avbrot från en annan källa kan behöva tas om hand Avbrot som kräver snabb åtgärd kan behöva bryta rutiner som åtgärdar avbrot med lång tid på sig

9 TSEA28 Datorteknik Y (och U), föreläsning 6, Kent Palmkvist TSEA28 Datorteknik Y (och U), föreläsning 6, Kent Palmkvist Flera avbrotsnivåer Cortex-M4 (Darma) har flera avbrotsprioriteter Sköts av en speciell enhet, Nested Vectored Interrupt Controller (NVIC) Viktigaste: Reset (prioritet -3) NMI (prioritet -2), speciell avbrotssignal Hard fault (prioritet -1), t ex om adress till avbrotvektor inte kan läsas Prioritet 0-7: avbrotsprioritet som kan väljas i NVIC Prioritet 0: Högst avbrotsprioritet Prioritet 7: Lägst avbrotsprioritet Avbrot med högre prioritet (lägre nummer) kan avbryta lägre prioriterat avbrot (högre nummer) Cortex-M4 (Darma) statusregister (PSR) Flaggor C, V, Z, N enligt tidigare beskrivningar T: Thumb flag, visar om Thumb mode används (alltid = 1) ISRNUM: Anger vilken avbrotsrutin som körs 0x02=NMI, 0x03=Hard Fault, 0x05=bus fault, 0x10=avbrotsvektor 0, etc. TSEA28 Datorteknik Y (och U), föreläsning 6, Kent Palmkvist TSEA28 Datorteknik Y (och U), föreläsning 6, Kent Palmkvist Avbrot kan avbryta pågående avbrot Vanlig användning av avbrot: kör kod med visst tidsintervall realtidsklocka i en dator Skicka ut ljud på högtalare Et avbrot med lägre priortet kan avbrytas Det nya avbrot av högre prioritet kommer spara adress, flaggor etc på stacken på samma sät som för avbrotet med låg prioritet När högre priortetsavbrotet avslutas så återställs flaggor etc, och avbrotet med låg prioritet fortsäter Cortex-M4 (Darma) specialregister Yterligare register finns i processorn Kan nås/ändras med instruktionerna MSR, MRS och CPSIE eller CPSID FAULTMASK stänger av allt utom NMI PRIMASK stänger av alla konfigurerbara avbrot BASEPRI bestämmer vilken prioritet behövs för at skapa avbrot

10 TSEA28 Datorteknik Y (och U), föreläsning 6, Kent Palmkvist TSEA28 Datorteknik Y (och U), föreläsning 6, Kent Palmkvist Cortex-M4 (Darma) specialregister Stäng av avbrot CPSID I ; för PRIMASK CPSID F ; för FAULTMASK Slå på avbrot CPSIE I ; för PRIMASK CPSIE F ; för FAULTMASK FAULTMASK för allt utom NMI, PRIMASK för alla konfigurerbara avbrot Darma För at förhindra avbrot (maska bort avbrot) Behövs t ex när hårdvarukretsar konfigureras Låt processorn ignorera avbrot CPSID I Tillåt avbrot När all konfigurering är klar CPSIE I TSEA28 Datorteknik Y (och U), föreläsning 6, Kent Palmkvist TSEA28 Datorteknik Y (och U), föreläsning 6, Kent Palmkvist Cortex-M4 (Darma) BASEPRI register Läs med MRS rd,basepri Skriv med MSR rd,basepri Bit 7 bit 5 bestämmer vilka avbrotsprioriteter som släpps igenom 000: alla avbrot släpps igenom 001: avbrot prioritet 1-7 släpps inte igenom 010: avbrot prioritet 2-7 släpps inte igenom : 111: avbrot prioritet 7 släpps inte igenom Darma, val av avbrotsprioriteter Varje avbrotskälla (t ex GPIOB, GPIOF eller UART0) kan ges en avbrotsprioritet NVIC håller reda på vilken som har högst prioritet Både huvudprioritet (0-7) och underprioritet Underprioritet bestämmer vilken som vinner om två med samma huvudprioritet vill få orsaka et avbrot Avbrot kan slås på och av i NVIC Separat för varje enskild avbrotskälla (t ex för varje GPIO-port) NVIC innehåller också register som visar vilka avbrot som inte än blivit utförda

11 TSEA28 Datorteknik Y (och U), föreläsning 6, Kent Palmkvist TSEA28 Datorteknik Y (och U), föreläsning 6, Kent Palmkvist Applikationsexempel Två aktiviteter Huvudprogram som utför långa beräkningar, där inmatning sker via tangentbord Tangentbordet liknar labbens tangentbord, det håller bara reda på aktuell nedtryckt tangent För at slippa tappa bort tangentryck medan huvudprogrammet räknar används en buffert Bufferten är några minnesplatser plus en pekare till nästa lediga plats Huvudprogrammet hämtar tecken i bufferten Avbrotsprogrammet sparar undan aktuellt tecken från tangentbordet i bufferten Exempel, behov maska bort avbrot, forts. Huvudprogrammet tar hand om tangenttryck från bufferten Returneras äldsta tecknet och tas bort i buffert (skiftas bort) buffered_getkey: mov r1,#(bufferpekare & 0xffff) ; konstant bufferpekare adress movt r1,#(bufferpekare >> 16) add r2,r1,#4 ; konstant buffer_start adress direkt efter pekaren ldr r3,[r1] ; nuvarande värde på bufferpekare cmp r3,r2 ; pekar bufferpekare på buffer_start? beq tom ; Tom buffer! mov r4,#15 ; 15 tecken att flytta ldrb r0,[r3],#1 ; Äldsta tangent i r0, minska r3 med 1 str r3,[r1] ; spara nya buffertpekare loop: ldrb r5,[r2,#1]! ; Öka r2, Hämta föregående tecken strb r5,[r2,#-1] ; placera på adressen innan subs r4,r4,#1 ; flyttat alla? bne loop ; nej, ta nästa b slut ; Returnerar tryckt knapp i d0.b tom: mov r0,#0 ; Om tom buffer. Returnera 0 slut: bufferpekare buffer_start buffer_end 0x65 0x6A 0x20 0x6f 0x70 0x70 TSEA28 Datorteknik Y (och U), föreläsning 6, Kent Palmkvist TSEA28 Datorteknik Y (och U), föreläsning 6, Kent Palmkvist Exempel, behov maska bort avbrot bufferpekare bufferpekare Exempel, behov maska bort avbrot, forts. Rutin som sparar tangentryck i buffert Tangent lagras i buffert (skiftas när ny tangent tryckts). Avbrotsrutinen sparar senaste tecknet i en kö i buffert Exempel visar minne efter hej hopp matats in buffered_addkey: mov r0,#(bufferpekare & 0xffff) movt r0,#(bufferpekare >> 16) ldr r1,[r0] ; hämta aktuell ledig plats mov r2,#(buffer_end_adr & 0xffff) movt r2,#(buffer_end_adr >> 16) cmp r2,r1 ; fyllt buffert? beq buffer_full ; Ja, skippa mov r2,#(uart0_dr & 0xffff) ; adress till I/O movt r2,#(uart0_dr >> 16) ; för tangentvärde ldr r3,[r2] ; hämta tangentvärde strb r3,[r1],#1 ; spara I buffert, öka r1 med 1 str r1,[r0] ; spara nya buffertpekaren buffer_full: ; återhopp från avbrott buffer_start buffer_end 0x65 0x6A 0x20 0x6f 0x70 0x70 Om avbrot kommer när buffered_getkey kör ändras bufferpekare, men inte kopian i r3. När buffered_getkey avslutas tappas et tecken bort eller förstör näst senaste Kopia i register buffered_getkey: mov r1,#(bufferpekare & 0xffff) ; konstant bufferpekare adress movt r1,#(bufferpekare >> 16) add r2,r1,#4 ; konstant buffer_start adress direkt efter pekaren ldr r3,[r1] ; nuvarande värde på bufferpekare cmp r3,r2 ; pekar bufferpekare på buffer_start? beq tom ; Tom buffer! mov r4,#15 ; 15 tecken att flytta ldrb r0,[r3],#1 ; Äldsta tangent i r0, minska r3 med 1 str r3,[r1] ; spara nya buffertpekare loop: ldrb r5,[r2,#1]! ; Öka r2, Hämta föregående tecken strb r5,[r2,#-1] ; placera på adressen innan subs r4,r4,#1 ; flyttat alla? bne loop ; nej, ta nästa b slut ; Returnerar tryckt knapp i d0.b tom: mov r0,#0 ; Om tom buffer. Returnera 0 slut: buffer_start buffer_end 0x65 0x6A 0x20 0x6f 0x70 0x70

12 TSEA28 Datorteknik Y (och U), föreläsning 6, Kent Palmkvist TSEA28 Datorteknik Y (och U), föreläsning 6, Kent Palmkvist Lösning på problemet buffered_getkey innehåller kritisk sektion som inte får avbrytas Löses genom at maska bort avbrot Glöm inte tillåta avbrot i båda fall av avslutning Tillåt inte avbrott buffered_getkey: cpsid i mov r1,#(bufferpekare & 0xffff) ; konstant bufferpekare adress movt r1,#(bufferpekare >> 16) add r2,r1,#4 ; konstant buffer_start adress direkt efter peka ldr r3,[r1] ; nuvarande värde på bufferpekare cmp r3,r2 ; pekar bufferpekare på buffer_start? beq tom ; Tom buffer! mov r4,#15 ; 15 tecken att flytta ldrb r0,[r3],#1 ; Äldsta tangent i r0, minska r3 med 1 str r3,[r1] ; spara nya buffertpekare loop: ldrb r5,[r2,#1]! ; Öka r2, Hämta föregående tecken strb r5,[r2,#-1] ; placera på adressen innan subs r4,r4,#1 ; flyttat alla? bne loop ; nej, ta nästa b slut ; Returnerar tryckt knapp i d0.b tom: mov r0,#0 ; Om tom buffer. Returnera 0 slut: cpsie i Tillåt avbrott igen Många fler anledningar till avbrot Varje orsak har en egen rutin Lägsta adresserna i minnet innehåller tabell med adresser Tabell 2.8 i Tiva TM4C123GH6PM Microcontroller Data Sheet. Exempel Reset hämtar stackvärde på adress och startadress på adress Externa avbrot (vektorer adress t om ) SVCALL (speciell maskininstruktion SVC som tvingar fram avbrot) Usage faults Division med 0 Illegal instruktion: Om instruktionen inte känns igen kan et litet program kanske utföra den istället Kan implementera nya instruktioner som inte fanns när processorn byggdes (göra gammal utrustning kompatibel med ny programvara). TSEA28 Datorteknik Y (och U), föreläsning 6, Kent Palmkvist Generella riktlinjer för avbrot Maska bort avbrot endast under mycket korta stunder Stor risk at tappa information om avstängt längre tid Se till at avbrotsrutiner går snabbt at köra (når inom få instruktioner) Om möjligt skriv program så strömsparfunktioner kan användas Stänga av programmet, vänta på interrupt

TSEA28 Datorteknik Y (och U)

TSEA28 Datorteknik Y (och U) TSEA28 Datorteknik Y (och U), föreläsning 6, Kent Palmkvist 2018-01-29 3 Praktiska kommentarer, forts. TSEA28 Datorteknik Y (och U) Föreläsning 6 Kent Palmkvist, ISY Deadline anmälan till Lab1 del A idag

Läs mer

TSEA28 Datorteknik Y (och U)

TSEA28 Datorteknik Y (och U) TSEA28 Datorteknik Y (och U) Föreläsning 6 Kent Palmkvist, ISY TSEA28 Datorteknik Y (och U), föreläsning 6, Kent Palmkvist 2017-01-30 2 Dagens föreläsning Avbrot Princip Avbrot på 68000 Exempel Flera nivåers

Läs mer

TSEA28 Datorteknik Y (och U)

TSEA28 Datorteknik Y (och U) TSEA28 Datorteknik Y (och U), föreläsning 5, Kent Palmkvist 2019-01-28 3 TSEA28 Datorteknik Y (och U) Föreläsning 5 Kent Palmkvist, ISY Praktiska kommentarer Labanmälan finns tillgänglig med start kl 12.30

Läs mer

TSEA28 Datorteknik Y (och U)

TSEA28 Datorteknik Y (och U) TSEA28 Datorteknik Y (och U), föreläsning 5, Kent Palmkvist 2018-01-22 3 Praktiska kommentarer TSEA28 Datorteknik Y (och U) Föreläsning 5 Kent Palmkvist, ISY Labanmälan finns tillgänglig med start kl 12.30

Läs mer

TSEA28 Datorteknik Y (och U)

TSEA28 Datorteknik Y (och U) TSEA28 Datorteknik Y (och U) Föreläsning 5 Kent Palmkvist, ISY TSEA28 Datorteknik Y (och U), föreläsning 6, Kent Palmkvist 2017-01-23 2 Dagens föreläsning 68000 (Tutor) Adresseringsmoder M68008 stackhantering

Läs mer

Svar till Övning3 Datorteknik, HH vt12 Avbrott och timers

Svar till Övning3 Datorteknik, HH vt12 Avbrott och timers Svar till Övning3 Datorteknik, HH vt12 Avbrott och timers Avbrott generellt F7.1. Avbrott sköts med hårdvara i processorn, man läser av hårdvarumässigt. Polling är en enklare princip för I/O- hantering.

Läs mer

TSEA28 Datorteknik Y (och U)

TSEA28 Datorteknik Y (och U) TSEA28 Datorteknik Y (och U), föreläsning 2, Kent Palmkvist 2018-01-16 3 TSEA28 Datorteknik Y (och U) Föreläsning 2 Kent Palmkvist, ISY Praktiska kommentarer Mail kommer skickas ut när labanmälan är möjlig

Läs mer

Övning2 Datorteknik, HH vt12 - Programmering

Övning2 Datorteknik, HH vt12 - Programmering Övning2 Datorteknik, HH vt12 - Programmering För denna övning behöver man adresskarta och beskrivning av laborationsplattform. Finns bland föreläsningsanteckning samt i bilaga l till Lab l. Använd även

Läs mer

3. Mikroprogrammering II

3. Mikroprogrammering II 3. Mikroprogrammering II lite repetition in/ut-matning avbrott på OR-datorn hoppinstruktion labben Olle Roos dator LDA 000 12 ADD 100 7 STA 000 13 12 1 13 8 13 6 8 0 18,1,11 2,3,5,11 7,8,11 17,10 18,1,11

Läs mer

TSEA28 Datorteknik Y (och U)

TSEA28 Datorteknik Y (och U) TSEA28 Datorteknik Y (och U) Föreläsning 2 Kent Palmkvist, ISY TSEA28 Datorteknik Y (och U), föreläsning 2, Kent Palmkvist 2017-01-17 2 Dagens föreläsning Kort repetition Större programmeringsexempel Subrutiner

Läs mer

TSEA28 Datorteknik Y (och U)

TSEA28 Datorteknik Y (och U) TSEA28 Datorteknik Y (och U), föreläsning 7, Kent Palmkvist 2019-02-15 3 TSEA28 Datorteknik Y (och U) Föreläsning 7 Kent Palmkvist, ISY Praktiska kommentarer Ordningsfråga Glöm inte koppla ned anslutningarna

Läs mer

TSEA28 Datorteknik Y (och U)

TSEA28 Datorteknik Y (och U) TSEA28 Datorteknik Y (och U), föreläsning 2, Kent Palmkvist 2019-01-22 3 TSEA28 Datorteknik Y (och U) Föreläsning 2 Kent Palmkvist, ISY Praktiska kommentarer Labanmälan öppnar måndag 28/1 kl 12.30 Anmälningssystemet

Läs mer

Datorsystemteknik Föreläsning 7DAVA14

Datorsystemteknik Föreläsning 7DAVA14 Datorsystemteknik Föreläsning 7DAVA14 Innehåll Introduktion (forts) Polling (cyklisk avfrågning) Större delen av materialet framtaget av :Jan Eric Larsson, Mats Brorsson och Mirec Novak IT-inst LTH Exempel

Läs mer

Maskinorienterad programmering

Maskinorienterad programmering Undantagshantering och interna avbrott ARM Cortex-M4 exceptions, programmering av undantagshantering Ur innehållet: Faults Software traps Avbrott från interna enheter, Systick Läsanvisningar: Arbetsbok

Läs mer

Polling (cyklisk avfrågning) Avbrott

Polling (cyklisk avfrågning) Avbrott Polling (cyklisk avfrågning) Avbrott Större delen av materialet framtaget av :Jan Eric Larsson, Mats Brorsson och Mirec Novak IT-inst LTH Att känna till begreppet polling (cyklisk avfrågning) och hur det

Läs mer

Digital- och datorteknik

Digital- och datorteknik Digital- och datorteknik Föreläsning #17 Biträdande professor Jan Jonsson Institutionen för data- och informationsteknik Chalmers tekniska högskola Tallriksmodellen Stackoperationer Element kan endast

Läs mer

TSEA28 Datorteknik Y (och U)

TSEA28 Datorteknik Y (och U) TSEA28 Datorteknik Y (och U), föreläsning 7, Kent Palmkvist 2018-02-12 3 TSEA28 Datorteknik Y (och U) Föreläsning 7 Kent Palmkvist, ISY Praktiska kommentarer Ordningsfråga Glöm inte koppla ned anslutningarna

Läs mer

Laboration 2 i Datorteknik- Assemblerprogrammering II

Laboration 2 i Datorteknik- Assemblerprogrammering II Högskolan i Halmstad 1 (8) - Assemblerprogrammering II Målet med laborationen är att få begrepp om Subrutiner. in/utparametrar. Lokala variabler Maska in bitar till ett register Konstruktion av subrutiner

Läs mer

TENTAMEN Datorteknik (DO2005) D1/E1/Mek1/Ö1

TENTAMEN Datorteknik (DO2005) D1/E1/Mek1/Ö1 Halmstad University School of Information Science, Computer and Electrical Engineering Tomas Nordström, CC-lab TENTAMEN Datorteknik (DO2005) D1/E1/Mek1/Ö1 Datum: 2012-05- 23 Tid och plats: 9:00 13:00 i

Läs mer

Föreläsningsanteckningar 3. Mikroprogrammering II

Föreläsningsanteckningar 3. Mikroprogrammering II Föreläsningsanteckningar 3. Mikroprogrammering II Olle Seger 2012 Anders Nilsson 2016 1 Inledning Datorn, som vi byggde i förra föreläsningen, har en stor brist. Den saknar I/O. I denna föreläsning kompletterar

Läs mer

Maskinorienterad programmering

Maskinorienterad programmering Undantagshantering och interna avbrott ARM Cortex-M4 exceptions, programmering av undantagshantering Ur innehållet: Faults Software traps Avbrott från interna enheter, Systick Läsanvisningar: Arbetsbok

Läs mer

LABORATION. Datorteknik Y

LABORATION. Datorteknik Y LABORATION Datorteknik Y Avbrottsprogrammering på Darma Version 4.03 Februari 2019 (OA, KP) Namn och personnummer Godkänd 1 1 Inledning Syftet med laborationen är först att ge övning i avbrottsprogrammering

Läs mer

Tentamen (Exempel) Datorteknik Y, TSEA28

Tentamen (Exempel) Datorteknik Y, TSEA28 Tentamen (Exempel) Datorteknik Y, TSEA28 Datum 2018-10-31 Lokal TER4 Tid 8-12 Kurskod TSEA28 Provkod TEN1 Kursnamn Provnamn Datorteknik Y Skriftlig tentamen Institution ISY Antal frågor 7 Antal sidor (inklusive

Läs mer

TSEA28 Datorteknik Y (och U)

TSEA28 Datorteknik Y (och U) TSEA28 Datorteknik Y (och U), föreläsning 8, Kent Palmkvist 2018-02-26 3 TSEA28 Datorteknik Y (och U) Föreläsning 8 Kent Palmkvist, ISY Praktiska kommentarer Ordning i labbet Allra flesta sköter det bra

Läs mer

Beskrivning av porthantering i mikroprocessorn SAM3U som används på vårt labkort SAM3U- EK.

Beskrivning av porthantering i mikroprocessorn SAM3U som används på vårt labkort SAM3U- EK. Tomas Nordström Högskolan i Halmstad Dokumentversion 0.1, 2012-04- 01 Beskrivning av porthantering i mikroprocessorn SAM3U som används på vårt labkort SAM3U- EK. Informationen till detta kompendium är

Läs mer

Tentamen. Datorteknik Y, TSEA28

Tentamen. Datorteknik Y, TSEA28 Tentamen Datorteknik Y, TSEA28 Datum 2016-05-31 Lokal Kåra, T1, T2, U1, U15 Tid 14-18 Kurskod TSEA28 Provkod TEN1 Kursnamn Provnamn Datorteknik Y Skriftlig tentamen Institution ISY Antal frågor 6 Antal

Läs mer

Mål. Datorteknik. Introduktion. Innehåll. Verklig situation - pappaledighet. Introduktion (forts)

Mål. Datorteknik. Introduktion. Innehåll. Verklig situation - pappaledighet. Introduktion (forts) Mål Datorteknik Föreläsning 4 Att känna till begreppet polling (cyklisk avfrågning) och hur det implementeras Att förstå varför avbrottstyrd exekvering är överlägset polling Att veta vilken information

Läs mer

Institutionen för elektro- och informationsteknologi, LTH

Institutionen för elektro- och informationsteknologi, LTH Datorteknik Föreläsning 4 Polling och avbrott Mål Att känna till begreppet polling (cyklisk avfrågning) och hur det implementeras Att förstå varför avbrottstyrd exekvering är överlägset polling Att veta

Läs mer

Tentamen (Exempel) Datorteknik Y, TSEA28

Tentamen (Exempel) Datorteknik Y, TSEA28 Tentamen (Exempel) Datorteknik Y, TSEA28 Datum 2018-08-21 Lokal TER4 Tid 14-18 Kurskod TSEA28 Provkod TEN1 Kursnamn Provnamn Datorteknik Y Skriftlig tentamen Institution ISY Antal frågor 6 Antal sidor

Läs mer

F8: Undantagshantering

F8: Undantagshantering F8: Undantagshantering Undantagshantering i 68 Vad är ett undantag? Typer av undantag Att skriva undantagsrutiner Undantagshantering, vad och varför? Exempel: Ett system ska mäta temperatur var :e sekund

Läs mer

Maskinorienterad programmering

Maskinorienterad programmering Externa avbrott Anslutning av extern avbrottsvippa, programmering med konfigurering och hantering av externa avbrott. Introduktion till time-sharing, enkel task-switch. Ur innehållet: NVIC och EXTI (SYSCFG)

Läs mer

Institutionen för elektro- och informationsteknologi, LTH

Institutionen för elektro- och informationsteknologi, LTH Datorteknik Föreläsning 5 Realtidssystem och realtidsprogrammering Mål Att du ska förstå hur avbrott används för - Mätning - Styrning - Stöd för körning av flera processer Att du ska förstå begreppet tråd

Läs mer

Datorteknik. Föreläsning 5. Realtidssystem och realtidsprogrammering. Institutionen för elektro- och informationsteknologi, LTH.

Datorteknik. Föreläsning 5. Realtidssystem och realtidsprogrammering. Institutionen för elektro- och informationsteknologi, LTH. Datorteknik Föreläsning 5 Realtidssystem och realtidsprogrammering Mål Att du ska förstå hur avbrott används för - Mätning - Styrning - Stöd för körning av flera processer Att du ska förstå begreppet tråd

Läs mer

Lösningar till tentamen i EIT070 Datorteknik

Lösningar till tentamen i EIT070 Datorteknik Lösningar till tentamen i EIT070 Datorteknik Institutionen för Elektro- och informationsteknik, LTH Torsdagen den 13 mars 2014, klockan 14:00 19:00 i MA:10. Tillåtna hjälpmedel: på tentan utdelad formelsamling,

Läs mer

Datorteknik 2 (AVR 2)

Datorteknik 2 (AVR 2) Namn: Laborationen godkänd: Digitala system 15 hp Datorteknik 2 (AVR 2) LTH Ingenjörshögskolan vid Campus Helsingborg Enkel in- och utmatning. Drivrutiner. Bithantering. I denna laboration ska vi förbättra

Läs mer

7) Beskriv tre sätt att överföra parametrar mellan huvudprogram och subrutin.

7) Beskriv tre sätt att överföra parametrar mellan huvudprogram och subrutin. 1(5) Övningstentamen i Mikrodatorer och assemblerprogrammering, ELGA05 Hjälpmedel: Bifogad lista med memokoder för MC68xxx. Samtliga programmeringsuppgifter ska innehålla flödesschema med förklaringar

Läs mer

Datorteknik. Tomas Nordström. Föreläsning 7 Avbrott. För utveckling av verksamhet, produkter och livskvalitet.

Datorteknik. Tomas Nordström. Föreläsning 7 Avbrott. För utveckling av verksamhet, produkter och livskvalitet. Datorteknik Tomas Nordström Föreläsning 7 Avbrott För utveckling av verksamhet, produkter och livskvalitet. Föreläsning 7 Avbrott References: [SUM3U-complete] ATMEL AT91SAM ARM-based Flash MCU - SAM3U

Läs mer

LABORATION. Datorteknik Y

LABORATION. Datorteknik Y LABORATION Datorteknik Y Avbrottsprogrammering på Darma Version 4.02 Februari 2018 (OA, KP) Namn och personnummer Godkänd 1 1 Inledning Syftet med laborationen är först att ge övning i avbrottsprogrammering

Läs mer

Digital- och datorteknik

Digital- och datorteknik Digital- och datorteknik Föreläsning #19 Biträdande professor Jan Jonsson Institutionen för data- och informationsteknik Chalmers tekniska högskola Normaltillstånd vs undantagstillstånd I normaltillstånd

Läs mer

Tentamen. Datorteknik Y, TSEA28

Tentamen. Datorteknik Y, TSEA28 Tentamen Datorteknik Y, TSEA28 Datum 2016-08-16 Lokal TER2, TER4 Tid 14-18 Kurskod TSEA28 Provkod TEN1 Kursnamn Provnamn Datorteknik Y Skriftlig tentamen Institution ISY Antal frågor 6 Antal sidor (inklusive

Läs mer

GPIO - General Purpose Input Output

GPIO - General Purpose Input Output GPIO - General Purpose Input Output Ur innehållet: Ideala och verkliga signaler Bitvis in- och utmatning Anslutning - fysiskt gränssnitt F407 - GPIO-modul tillämpningar Läsanvisningar: Arbetsbok avsnitt

Läs mer

Tentamen. Datorteknik Y, TSEA28

Tentamen. Datorteknik Y, TSEA28 Tentamen Datorteknik Y, TSEA28 Datum 2015-06-01 Lokal Tid 14-18 Kurskod Provkod Kursnamn Provnamn Institution Antal frågor 6 Antal sidor (inklusive denna sida) 6 Kursansvarig Lärare som besöker skrivsalen

Läs mer

Tentamen. Datorteknik Y, TSEA28

Tentamen. Datorteknik Y, TSEA28 Tentamen Datorteknik Y, TSEA28 Datum 2017-08-15 Lokal TER4 Tid 14-18 Kurskod Provkod Kursnamn Provnamn Institution Antal frågor 6 Antal sidor (inklusive denna sida) 6 Kursansvarig Lärare som besöker skrivsalen

Läs mer

Assemblerprogrammering, ARM-Cortex M4 del 3

Assemblerprogrammering, ARM-Cortex M4 del 3 Assemblerprogrammering, ARM-Cortex M4 del 3 Ur innehållet: Fler pekartyper Användning av stacken Lagringsklasser, synlighet - lokala variabler Funktioner - returvärden och parametrar Läsanvisningar: Arbetsbok

Läs mer

Ansvarig lärare: Olof Andersson, Telefon 021-101314 (besöker skrivsalen)

Ansvarig lärare: Olof Andersson, Telefon 021-101314 (besöker skrivsalen) MÄLRLENS HÖGSKOL Institutionen för elektroteknik Tentamen Mikrodatorteknik T3760 atum 2005-10-28 Tid 08.30 12.30 nsvarig lärare: Olof ndersson, Telefon 021-101314 (besöker skrivsalen) Om du klarat samtliga

Läs mer

Dataminne I/O Stack 0x005D 0x3D SP low byte 0x005E 0x3E SP high byte

Dataminne I/O Stack 0x005D 0x3D SP low byte 0x005E 0x3E SP high byte CT3760 Mikrodatorteknik Föreläsning 4 Tisdag 2005-09-06 Stacken I datasammmanhang är en stack ett minnesområde. Det är processorn som använder stacken. För att skapa en stack anger man en adress i stackpekarregistret.

Läs mer

Övning1 Datorteknik, HH vt12 - Talsystem, logik, minne, instruktioner, assembler

Övning1 Datorteknik, HH vt12 - Talsystem, logik, minne, instruktioner, assembler Övning1 Datorteknik, HH vt12 - Talsystem, logik, minne, instruktioner, assembler Talsystem Talsystem - binära tal F1.1) 2 n stycken tal från 0 till 2 n 1 F1.2) 9 bitar (512 kombinationer) Talsystem - 2-

Läs mer

Lista på registeruppsättningen i PIC16F877A Datablad TTL-kretsar 74-serien

Lista på registeruppsättningen i PIC16F877A Datablad TTL-kretsar 74-serien DIGITAL- OCH MIKRODATORTEKNIK, U2 11-01-12 09.00 13.00 Tillåtna hjälpmedel: Instruktionslista PIC16F877A Lista på registeruppsättningen i PIC16F877A Datablad TTL-kretsar 74-serien Fullständiga lösningar

Läs mer

Tentamen den 18 mars svar Datorteknik, EIT070

Tentamen den 18 mars svar Datorteknik, EIT070 Lunds Universitet LTH Tentamen den 18 mars 2015 - svar Datorteknik, EIT070 Skrivtid: 14.00-19.00 Tillåtna hjälpmedel: Inga. Maximalt antal poäng: 50 poäng För betyg 3 krävs 20 poäng För betyg 4 krävs 30

Läs mer

Tentamen. Datorteknik Y, TSEA28

Tentamen. Datorteknik Y, TSEA28 Tentamen Datorteknik Y, TSEA28 Datum 2015-08-18 Lokal TERE, TER4 Tid 14-18 Kurskod TSEA28 Provkod TEN1 Kursnamn Provnamn Datorteknik Y Skriftlig tentamen Institution ISY Antal frågor 7 Antal sidor (inklusive

Läs mer

Svar till tentamen den 16 december 2013 Datorarkitekturer med operativsystem, EDT621, 7,5 poäng

Svar till tentamen den 16 december 2013 Datorarkitekturer med operativsystem, EDT621, 7,5 poäng Lunds Universitet LTH Ingenjörshögskolan, Helsingborg Svar till tentamen den 16 december 2013 Datorarkitekturer med operativsystem, EDT621, 7,5 poäng Skrivtid: 08.00-13.00 Tillåtna hjälpmedel: Inga. Maximalt

Läs mer

Tentamen (Exempel) Datorteknik Y, TSEA28

Tentamen (Exempel) Datorteknik Y, TSEA28 Tentamen (Exempel) Datorteknik Y, TSEA28 Datum 2018-05-29 Lokal KÅRA,T1,T2, Tid 14-18 Kurskod TSEA28 Provkod TEN1 Kursnamn Provnamn Datorteknik Y Skriftlig tentamen Institution ISY Antal frågor 6 Antal

Läs mer

Datorteknik. Föreläsning 4. Polling och avbrott. Institutionen för elektro- och informationsteknologi, LTH. Mål

Datorteknik. Föreläsning 4. Polling och avbrott. Institutionen för elektro- och informationsteknologi, LTH. Mål Datorteknik Föreläsning 4 Polling och avbrott Mål Att känna till begreppet polling (cyklisk avfrågning) och hur det implementeras Att förstå varför avbrottstyrd exekvering är överlägset polling Att veta

Läs mer

General Purpose registers ALU I T H S V N Z C SREG. Antag att vi behöver skriva in talet 25 till register R18

General Purpose registers ALU I T H S V N Z C SREG. Antag att vi behöver skriva in talet 25 till register R18 F3 Föreläsning i Mikrodatorteknink 2006-08-29 Kärnan i microcontrollern består av ett antal register och en ALU. Till detta kommer också ett antal portar. Det finns 64 st portar. Några är anslutna mot

Läs mer

Datorteknik. Tomas Nordström. Föreläsning 6. För utveckling av verksamhet, produkter och livskvalitet.

Datorteknik. Tomas Nordström. Föreläsning 6. För utveckling av verksamhet, produkter och livskvalitet. Datorteknik Tomas Nordström Föreläsning 6 För utveckling av verksamhet, produkter och livskvalitet. Föreläsning 6 Vad händer vid uppstart SoC och Kringkretsar, PIO Programmering i Assembler Lab2 genomgång

Läs mer

Digital- och datorteknik

Digital- och datorteknik Digital- och datorteknik Föreläsning #23 Biträdande professor Jan Jonsson Institutionen för data- och informationsteknik Chalmers tekniska högskola Översikt När flera minnesmoduler placeras i processorns

Läs mer

Digital- och datorteknik

Digital- och datorteknik Digital- och datorteknik Föreläsning #17 Biträdande professor Jan Jonsson Institutionen för data- och informationsteknik Chalmers tekniska högskola F-36 FLEX- och FLIS-datorn Ext-8 Tallriksmodellen Stackoperationer

Läs mer

Digital- och datorteknik

Digital- och datorteknik Digital- och datorteknik Föreläsning #18 Biträdande professor Jan Jonsson Institutionen för data- och informationsteknik Chalmers tekniska högskola Assemblerprogrammering Assemblatorer vs kompilatorer

Läs mer

Digital- och datorteknik

Digital- och datorteknik Digital- och datorteknik Föreläsning #8 Biträdande professor Jan Jonsson Institutionen för data- och informationsteknik Chalmers tekniska högskola Assemblatorer vs kompilatorer En assemblator är ett program

Läs mer

Programallokering. Programtyper. Att placera program i flashrespektive. Program i FLASH-minne. Program i RAM-minne

Programallokering. Programtyper. Att placera program i flashrespektive. Program i FLASH-minne. Program i RAM-minne Programallokering Att placera program i flashrespektive RAM-minne Program i FLASH-minne Bara lokala variabler Globala oinitierade variabler Globala initierade variabler Program med avbrott Program i RAM-minne

Läs mer

Datorsystem Laboration 2: Minnesmappade bussar

Datorsystem Laboration 2: Minnesmappade bussar Datorsystem Laboration 2: Minnesmappade bussar Senast uppdaterad: 14 oktober 2012 Version 1.2 Student: Lärare: Underskrift: Underskrift: Datum: Datorsystem Laboration 2 1 Innehåll 1 Inledning 2 1.1 Introduktion..................................

Läs mer

Övningsuppgifter STYRNING - i Mikrodatorteknik för U2 2010

Övningsuppgifter STYRNING - i Mikrodatorteknik för U2 2010 STYRNING - i Mikrodatorteknik för U2 2010 1. Uppgift M10 (5p) aug-09 Skriv ett program i PIC-assembler som - gör PortB till utport - ettställer bit 0, 3 och 4 i PortB - nollställer bit 5 och 6 i PortB

Läs mer

Tentamen (Exempel) Datorteknik Y, TSEA28

Tentamen (Exempel) Datorteknik Y, TSEA28 Tentamen (Exempel) Datorteknik Y, TSEA28 Datum 2018-xx-xx Lokal TER1, TER3 Tid 8-12 Kurskod TSEA28 Provkod TEN1 Kursnamn Provnamn Datorteknik Y Skriftlig tentamen Institution ISY Antal frågor 7 Antal sidor

Läs mer

Datakommunikation med IR-ljus.

Datakommunikation med IR-ljus. Datakommunikation med -ljus. I den här uppgiften skall du kommunicera med hjälp av infrarött () ljus. Du skall kunna sända tecken från tangentbordet samt ta emot tecken och visa dem på skärmen. Genom att

Läs mer

Föreläsningsanteckningar till Konstruktionsmetoder 981027

Föreläsningsanteckningar till Konstruktionsmetoder 981027 Föreläsningsanteckningar till Konstruktionsmetoder 981027 Jämförelse mellan 68705P3 och 16F84 externt MC68705P3 PIC16F84 I/O 20 13 Kapsling 28-pin DIL 18-pin DIL Drivförmåga på pinnar PortB 10mA Sink,

Läs mer

TSEA28 Datorteknik Y (och U)

TSEA28 Datorteknik Y (och U) TSEA28 Datorteknik Y (och U), föreläsning 16, Kent Palmkvist 2018-05-21 3 Dagens föreläsning TSEA28 Datorteknik Y (och U) Föreläsning 16 Kent Palmkvist, ISY Mer avancerade sätt att öka prestanda Applikationsspecifika

Läs mer

Fö 5+6 TSEA81. Real-time kernel + Real-time OS

Fö 5+6 TSEA81. Real-time kernel + Real-time OS Fö 5+6 TSEA81 Real-time kernel + Real-time OS Stackens användningsområde * JSR / RTS : returadress * Temporärdata (push / pop) void myfunc(void) { int i; // hamnar nog i register int test[10]; // hamnar

Läs mer

Tentamen. Datorteknik Y, TSEA28

Tentamen. Datorteknik Y, TSEA28 Tentamen Datorteknik Y, TSEA28 Datum 2017-10-26 Lokal TER1, TER3 Tid 8-12 Kurskod TSEA28 Provkod TEN1 Kursnamn Provnamn Datorteknik Y Skriftlig tentamen Institution ISY Antal frågor 6 Antal sidor (inklusive

Läs mer

F4: Assemblerprogrammering

F4: Assemblerprogrammering F4: Assemblerprogrammering Hoppinstruktioner Branch Jump Med vilkor IF satser Loopar while-loopar do-while- loopar for-loopar Stackhantering Underprogram 1 BRA rel_adr Branch Always Relativadressering

Läs mer

Programexempel för FLEX

Programexempel för FLEX Aktivera Kursens mål: Konstruera en dator mha grindar och programmera denna Aktivera Förra veckans mål: Konstruera styrenheten. genom att. implementera olika maskininstruktioner i styrenheten. Kunna använda

Läs mer

LABORATION. Datorteknik Y

LABORATION. Datorteknik Y LABORATION Datorteknik Y Kodlås på Darma Version 2.02 January 2018 (AN, KP) Namn och personnummer Godkänd 1 1 Inledning Syftet med laborationen är att ge övning i assemblerprogrammering samt att skapa

Läs mer

Programräknaren visar alltid på nästa instruktion som skall utföras. Så fort en instruktion har hämtats så visar programräknaren på nästa instruktion.

Programräknaren visar alltid på nästa instruktion som skall utföras. Så fort en instruktion har hämtats så visar programräknaren på nästa instruktion. F5 Föreläsning i Mikrodatorteknink 2006-09-05 Programräknaren visar alltid på nästa instruktion som skall utföras. Så fort en instruktion har hämtats så visar programräknaren på nästa instruktion. Programräknaren

Läs mer

TENTAMEN. Datorteknik. D1/E1/Mek1/Ö Hjälpmedel: Häfte "ARM-instruktioner", A4-format, 17 sidor. Maxpoäng:

TENTAMEN. Datorteknik. D1/E1/Mek1/Ö Hjälpmedel: Häfte ARM-instruktioner, A4-format, 17 sidor. Maxpoäng: TENTAMEN D1/E1/Mek1/Ö1 1400-1800 Hjälpmedel: Häfte "ARM-instruktioner", A4-format, 17 sidor Maxpoäng: Betyg 3 Betyg 4 Betyg 5 60p 24p 36p 48p Frågor under tentamen: Börje Delistrand tel. +46702986358 Bilaga

Läs mer

A-del motsvarande KS1

A-del motsvarande KS1 MÄLARDALENS HÖGSKOLA Institutionen för elektroteknik Tentamen Mikrodatorteknik CT3760 Datum 2005-10-28 Tid 08.30 12.30 Svar till A- och B-del A-del motsvarande KS1 Uppgift A1. Vad blir resultatet då instruktionen

Läs mer

Mål. Datorteknik. Repetition av avbrott. Innehåll. Mätning och styrning. Datorer för mätning och styrning. timer. Datorsystem A/D. Analog insignal D/A

Mål. Datorteknik. Repetition av avbrott. Innehåll. Mätning och styrning. Datorer för mätning och styrning. timer. Datorsystem A/D. Analog insignal D/A Mål Datorteknik Föreläsning 5 Att du ska förstå hur avbrott används för - Mätning - Styrning - Stöd för körning av fle processer Att du ska förstå begreppet tråd Att du ska veta hur odelba resurser kan

Läs mer

Assemblerprogrammering - fördjupning

Assemblerprogrammering - fördjupning Assemblerprogrammering - fördjupning Ur innehållet: Trampoliner tabellerade funktionsadresser Aktiveringspost med ARM Cortex M4 Mer om parameteröverföring Registerspill Kodgenerering - ISA "Kodoptimering"

Läs mer

TSEA28 Datorteknik Y (och U)

TSEA28 Datorteknik Y (och U) TSEA28 Datorteknik Y (och U), föreläsning 16, Kent Palmkvist 2019-05-16 3 TSEA28 Datorteknik Y (och U) Föreläsning 16 Kent Palmkvist, ISY Praktiska kommentarer Lab 1-3 redovisningstillfälle Fredag 24/5

Läs mer

Läsminne Read Only Memory ROM

Läsminne Read Only Memory ROM Läsminne Read Only Memory ROM Ett läsminne har addressingångar och datautgångar Med m addresslinjer kan man accessa 2 m olika minnesadresser På varje address finns det ett dataord på n bitar Oftast har

Läs mer

TSEA28 Datorteknik Y (och U)

TSEA28 Datorteknik Y (och U) Praktiska kommentarer TSEA8 Datorteknik Y (och U) Föreläsning Kent Palmkvist, ISY Dagens föreläsning RISC Mer information om hur arkitekturen fungerar Begränsningar Lab extra tillfälle för redovisning

Läs mer

Tentamen Datorteknik D del 2, TSEA49

Tentamen Datorteknik D del 2, TSEA49 Tentamen Datorteknik D del 2, TSEA49 Datum 2012-05-24 Lokal TER2 Tid 8-12 Kurskod TSEA49 Provkod TEN1 Kursnamn Datorteknik D del 2 Institution ISY Antal frågor 6 Antal sidor (inklusive denna 10 sida) Kursansvarig

Läs mer

GPIO - General Purpose Input Output

GPIO - General Purpose Input Output GPIO - General Purpose Input Output Ur innehållet: Digital IO Ideala och verkliga signaler Bitvis in- och utmatning Anslutning - fysiskt gränssnitt F407 - GPIO-modul tillämpningar Programmering av enkelt

Läs mer

Tentamen. Datorteknik Y, TSEA28

Tentamen. Datorteknik Y, TSEA28 Tentamen Datorteknik Y, TSEA28 Datum 2016-10-18 Lokal TER1 Tid 8-12 Kurskod TSEA28 Provkod TEN1 Kursnamn Provnamn Datorteknik Y Skriftlig tentamen Institution ISY Antal frågor 7 Antal sidor (inklusive

Läs mer

Assemblerprogrammering för ARM del 2

Assemblerprogrammering för ARM del 2 Assemblerprogrammering för ARM del 2 Ur innehållet Programflöde Subrutiner, parametrar och returvärden Tillfälliga (lokala) variabler Läsanvisningar: Arbetsbok kap 2 Quick-guide, instruktionslistan Assemblerprogrammering

Läs mer

Lösningar till tentamen i EIT070 Datorteknik

Lösningar till tentamen i EIT070 Datorteknik Lösningar till tentamen i EIT070 Datorteknik Institutionen för Elektro- och informationsteknik, LTH Onsdagen den 13 mars 2013, klockan 14:00 19:00 i Vic 2 A-D, 3 A-C. Tillåtna hjälpmedel: på tentan utdelad

Läs mer

Digital- och datorteknik

Digital- och datorteknik Digital- och datorteknik Föreläsning #23 Översikt När flera smoduler placeras i processorns adressrum ansluts modulernas adressingångar till motsvarande ledningar i en. Övriga adressledningar i bussen

Läs mer

Föreläsning 2. Operativsystem och programmering

Föreläsning 2. Operativsystem och programmering Föreläsning 2 Operativsystem och programmering Behov av operativsystem En dator så som beskriven i förra föreläsningen är nästan oanvändbar. Processorn kan bara ges enkla instruktioner såsom hämta data

Läs mer

Kontrollskrivning Mikrodatorteknik CDT209 2007-09-20 S2-704

Kontrollskrivning Mikrodatorteknik CDT209 2007-09-20 S2-704 Kontrollskrivning Mikrodatorteknik CDT209 2007-09-20 S2-704 Svar Svar till uppgifterna lämnas på separat papper. En poäng per uppgift. Max 30 poäng. Bonuspoäng beräknas enligt följande tabell: 6-10 poäng

Läs mer

Lösningar till tentamen i EIT070 Datorteknik

Lösningar till tentamen i EIT070 Datorteknik Lösningar till tentamen i EIT070 Datorteknik Institutionen för Elektro- och informationsteknik, LTH Onsdagen den 7 mars 2012, klockan 14:00 19:00 i Vic 2, 3. Tillåtna hjälpmedel: på tentan utdelad formelsamling,

Läs mer

System S. Datorarkitektur - en inledning. Organisation av datorsystem: olika abstraktionsnivåer. den mest abstrakta synen på systemet

System S. Datorarkitektur - en inledning. Organisation av datorsystem: olika abstraktionsnivåer. den mest abstrakta synen på systemet Datorarkitektur - en inledning Organisation av datorsystem: olika abstraktionsnivåer System S den mest abstrakta synen på systemet A B C Ett högnivåperspektiv på systemet a1 b1 c1 a2 b3 b2 c2 c3 En mera

Läs mer

TSEA28 Datorteknik Y (och U)

TSEA28 Datorteknik Y (och U) TSEA28 Datorteknik Y (och U) Föreläsning 9 Kent Palmkvist, ISY TSEA28 Datorteknik Y (och U), föreläsning 9, Kent Palmkvist 2017-03-20 2 Dagens föreläsning Byggblocken i en processor Hur de fungerar Grundläggande

Läs mer

Minnet. Minne. Minns Man Minnet? Aktivera Kursens mål: LV3 Fo7. RAM-minnen: ROM PROM FLASH RWM. Primärminnen Sekundärminne Blockminne. Ext 15.

Minnet. Minne. Minns Man Minnet? Aktivera Kursens mål: LV3 Fo7. RAM-minnen: ROM PROM FLASH RWM. Primärminnen Sekundärminne Blockminne. Ext 15. Aktivera Kursens mål: LV3 Fo7 Konstruera en dator mha grindar och programmera denna Aktivera Förra veckans mål: Konstruktruera olika kombinatoriska nät som ingår i en dator. Studera hur addition/subtraktion

Läs mer

Generell säkerhet. Loggning - Hur mycket ska man logga? Inloggningsrutinerna i Unix. Loggning fortsättning

Generell säkerhet. Loggning - Hur mycket ska man logga? Inloggningsrutinerna i Unix. Loggning fortsättning Generell säkerhet Här finns det inga direkta rätt eller fel. Snarare saker man bör tänka på när man implementerar ett program. Kort sagt: Efter att du kommit på hur du tänkt göra, sov på saken och tänk

Läs mer

Exempeltentamen Datorteknik, EIT070,

Exempeltentamen Datorteknik, EIT070, Lunds Universitet LTH Exempeltentamen Datorteknik, EIT070, Skrivtid: xx.00-xx.00 Tillåtna hjälpmedel: Inga. Maximalt antal poäng: 50 poäng För betyg 3 krävs 20 poäng För betyg 4 krävs 30 poäng För betyg

Läs mer

Laboration Datorteknik TSIU02/TSEA28 3. Digitalur

Laboration Datorteknik TSIU02/TSEA28 3. Digitalur Laboration Datorteknik TSIU02/TSEA28 3. Digitalur Michael Josefsson, Kent Palmkvist version 3.0 Innehåll 1. Inledning 5 2. Hårdvara 7 2.1. LED-displaymodul............................... 7 2.1.1. Multiplexning..............................

Läs mer

Extrauppgifter för CPU12

Extrauppgifter för CPU12 1 Extrauppgifter för CPU12 X1a) Skriv en instruktionssekvens som nollställer bit 3-0 i alla minnesord i adressintervallet 2035H, 2049H Använd X-registret för adressering X1b) Skriv en subrutin som maskerar

Läs mer

TSEA28 Datorteknik Y (och U)

TSEA28 Datorteknik Y (och U) TSEA28 Datorteknik Y (och U), föreläsning 8, Kent Palmkvist 2019-03-06 3 TSEA28 Datorteknik Y (och U) Föreläsning 8 Kent Palmkvist, ISY Praktiska kommentarer Ordning i labbet Allra flesta sköter det bra

Läs mer

Digital- och datorteknik

Digital- och datorteknik Digital- och datorteknik Föreläsning #16 Biträdande professor Jan Jonsson Institutionen för data- och informationsteknik Chalmers tekniska högskola Behovet av ändring av programflödet För att kunna skriva

Läs mer

TSEA28 Datorteknik Y (och U)

TSEA28 Datorteknik Y (och U) TSEA28 Datorteknik Y (och U) Föreläsning 7 Kent Palmkvist, ISY TSEA28 Datorteknik Y (och U), föreläsning 7, Kent Palmkvist 2017-02-13 2 Dagens föreläsning Summering så här långt Strukturer för att stödja

Läs mer

Tentamen PC-teknik 5 p Lösningar och kommentarer

Tentamen PC-teknik 5 p Lösningar och kommentarer Tentamen PC-teknik 5 p Lösningar och kommentarer Program: Di2, Em3, Et3 Datum: 04-08-10 Tid: 13:30-18:30 Lokal E171 Hjälpmedel: Linjal, miniräknare, Instruktionsrepertoar för 8086 (utdelas), Lathund, Pacific

Läs mer