Datorteknik. Tomas Nordström. Föreläsning 7 Avbrott. För utveckling av verksamhet, produkter och livskvalitet.
|
|
- Arne Lindberg
- för 8 år sedan
- Visningar:
Transkript
1 Datorteknik Tomas Nordström Föreläsning 7 Avbrott För utveckling av verksamhet, produkter och livskvalitet.
2 Föreläsning 7 Avbrott References: [SUM3U-complete] ATMEL AT91SAM ARM-based Flash MCU - SAM3U Series (Complete manual), 2012 [Yiu-DefGuide] Joseph Yiu, The definitive guide to the ARM cortex- M3, second edition, Newnes,
3 Avbrott Polling Läser hela tiden i en loop. Processorn är låst till detta hela tiden. Kallas ibland programstyrt I/O. Interrupt - avbrott Processorn kan göra annat och blir avbruten av en extern händelse, t ex någon skriver på ett tangentbord. Mycket effektivare. Man kan göra annat under tiden. Kräver att processorn har hårdvarustöd för detta. 3
4 Avbrott Grundprinciper Interrupt, exception och undantag är andra namn Något som avbryter processorns vanliga programkörning (instruktionscykeln) och utför automatiskt en förutbestämd undantagssekvens. Delar av denna sker automatiskt, andra delar får man skriva kod för själv Källorna till avbrott kan vara olika Det finns nästan alltid någon mekanism i datorn för hantering av avbrottet. Vår ARM har t.o.m. en speciell enhet för det (NVIC). Det enda sätt vi externt direkt kan påverka processorn, t ex reset, NMI, avbrott via portar eller I/O pinnar. Två huvudtyper, interna och externa Styr om programflödet (PC) på extern begäran. Avbryter den kod som körs 4
5 Avbrott Interna - Externa Interna avbrott genereras av processorn själv vid olika sorters fel. Dessa används för att man själv ska kunna ta hand om de eventuella fel som kan uppstå. Ex) Usage fault (tex okänd instruktion), Memory Management Error (Minneshanterings fel, tex kan inte hämta data), Division by Zero (division med noll) Externa avbrott genereras utifrån processorn. Genom att påverka vissa pinnar på kapseln. Hit räknas även de som bygger på interna timers och liknande. Ex) Timer, reset, NMI-pinne, portar 5
6 Sidonotering Usage fault Om vi försöker växla till ARM mode i en Cortex M3 så genereras ett usage fault. Man kan växla mode genom ett hopp med BX instruktionen där bit 0 i registret avgör mode (ARM=0; Thumb=1) hopp via MOV, LDR, POP (med R15/PC som destination) värdet på bit-0 i adresser i avbrottsvektorn Men eftersom Cortex M3 alltid är i Thumb-mode så måste bit-0 alltid vara 1 när PC laddas Detta tas oftast hand om av assemblern, men kan vara förvirrande när man ser på koden som genererats. 6
7 Externa avbrott - Användningsområde Används för att Effektivisera normal I/O-hantering, eg polling. Slippa ha kod för att läsa av I/O överallt, men ändå kunna läsa av externa händelser. ex) Avläsning av musen i en PC Utföra periodiska händelser, bli avbruten med j ämna mellanrum av en sk Timer. ex) Byta mellan program vid multitaskande operativsystem Multitasking = Flera program (task) kör samtidigt. Ej möjligt utan avbrott Avbryta kod pga externa händelser ex) Larmknapp, Reset 7
8 Avbrottsmekanism I sista delen av instruktionscykeln kontrolleras om avbrott skett. Det betyder att den pågående instruktionen alltid slutförs innan avbrottet servas! Antag avbrott har genererats. Följande händer då: 1. Statusregister sparas. PC och eventuellt några andra register sparas. [automatiskt] 2. Ett hopp sker till ett förutbestämt ställe. Beror på avbrottstypen. [automatiskt] 3. Slå av avbrott med samma eller lägre prioritet, så att inte avbrottsrutinen avbryts av oviktiga saker 4. Utför avbrottskod 5. Återgång till normal programkörning. Ofta med speciell instruktion. Detta återställer sparade PC och statusregister och eventuella andra register 8
9 Varför spara både PC och Statusregister? Man kan se själva avbrottskoden som en subrutin som körs på externt anrop, t ex då man trycker på resetknapp. Dvs man kan i själva koden INTE veta när avbrott kommer.!cmp R1, #4!!BEQ TEST! Antag att avbrott kommer här! Avbrottet kommer mitt i då statusflaggorna är satta pga jämförelsen. Skulle då avbrottskoden ställa om flaggorna och sedan gå tillbaka skulle man kunna få effekten att hoppet inte tas även om R1 =4! 9
10 Hur vet man vilket avbrott som skett? Två principer finns: Autovektoriserade) Vid avbrott hoppar man automatiskt till olika adresser pga källan till avbrottet. Sköts hårdvarumässigt. Det finns en färdig tabell i minnet på ett förutbestämt ställe. Ofta i början på minnet. Icke vektoriserade) Vid avbrott hoppar man alltid till samma plats. Man har sedan ett speciellt register som håller reda på vilket avbrott som skett. Man får själv skriva kod för att läsa av registret samt utför hopp till olika kod. Denna kod kallas en handler 10
11 Terminologi vid avbrott Maskbara (avbrott som går att slå på/av) vs. Icke maskbara avbrott, NMI - Non Maskable Interrupt, (sådana man inte kan slå av) ex) Maskbara: De flesta externa, timers Icke maskbara avbrott: Internt genererade. Ex) Reset, Illegal Instruction Prioritering) Ibland har olika avbrott olika prioritet om de sker samtidigt. Detta styrs hårdvarumässigt. Ibland kan även vissa högre prioriterade avbrott avbryta körning av sådana med lägre prioritet. 11
12 Exempel polling Anta att huvudprogrammet består av tre moment. Vid knapptryck ska larmkod utföras. LARM anropas från huvudprogram. Huvudprogrammet måste läsa av knappen hela tiden för att inte riskera att missa någon tryckning. Avläsning av knapp sker med mjukvara. Komplex kod. 12
13 Exempel avbrott Anta huvudprogrammet består av tre moment. Vid knapptryck ska larmkod utföras. LARM anropas med avbrott. Huvudprogrammet behöver inte bekymra sig över inläsning. Så fort knapp trycks ned genereras ett avbrott och LARM anropas automatiskt. Avläsning av knapp sker med hårdvara. Enklare kod 13
14 Liknelse: Avbrott - En bartender! Bartendem gör vanliga sysslor då ingen beställer något (vanlig programköming). Alternativet hade varit att han frågat varje person efter varandra om de velat beställa, sen börjar om på person ett. Ineffektivt! Polling Då någon ropar (beställer) en viss drink/öl utför bartendern en beställning direkt på vad man frågar efter. Autovektoriserat avbrott Ropar man bara "Hej!" avbryter man också bartendern, men han måste då fråga vad man vill beställa. Icke vektoriserat avbrott Då t ex ölen tar slut måste en tunna bytas och man avbryter pågående beställning för detta (högre prioritet). Prioriterade avbrott Bartendern kan välja att strunta i vissa avbrott (kunder), medan andra (t ex chefen) inte går att ignorera. Maskbara avbrott 14
15 ARM - Programmers model AVBROTT Anta att det vanliga programmet körs 1. Avbrott kommer 2. Avbrottskod körs (handler). Avgör vilken kod som ska köras härnäst 3. Återlämna kontroll till huvudprogram 15
16 Avbrott Delade resurser - problem! Vad är en delad resurs? - register, hårdvara som både avbrottskod och huvudprogram har tillgång till! Ex)! CMP R7,#0! Avbrottet råkar komma här! BEQ TEST!!; inuti TEST måste R7 vara noll!!!!; annars blir det fel!! Avbrott:! LDR R7,=0x1!!; R1 är den delade resursen!!!!!; (delas av avbrott och huvudprogram)! Då avbrottet kom vid en olämplig tidpunkt 1-ställdes R7 innan man hoppar till TEST. Tanken var att man inte skulle hoppa till TEST om inte R7 var 0. Ett svårhittat fel! 16
17 Avbrott Delade resurser - lösning! Slå av avbrottet vid delad resurs! Ex)! <slå av avbrott>! CMP R7,#0! BEQ TEST!!! <tillåt avbrott>! Skyddad mot avbrott här Ingen risk att man hamnar i TEST och R7=1 Avbrott:! LDR R7,=0x1 Slutsats: Använd helst inte delade resurser och avbrott. Leder till svåra problem. Använd ej globala variabler som delas av avbrottsrutin och huvudprogram. Måste man ha detta, tänk på att slå av avbrott i huvudprogram då den delade resursen används!! 17
18 ARM - Avbrottskällor 1-15 Systemavbrott Yttre avbrott 18
19 ARM pratar om 4 klasser av avbrott Reset Fault Hard fault Memory management fault Bus fault Interrupt NMI Interrupt (IRQ) Externa avbrott SysTick PendSV För OS stöd i samband med SVcall Supervisor Call SVcall För att stödja OS 19
20 ARM Cortex M3 Systemavbrott [Yiu-DefGuide] 20
21 ARM SAM3U Yttre Avbrott [SUM3U-complete] Totalt 30 olika yttre enheter kan ge avbrott 21
22 ARM Cortex M3 NVIC The Cortex-M3 processor includes an interrupt controller called the Nested Vectored Interrupt Controller (NVIC). It is closely coupled to the processor core and provides a number of features as follows: Nested interrupt support Vectored interrupt support Dynamic priority changes support Reduction of interrupt latency Interrupt masking 22
23 ARM Cortex M3 NVIC The Nested Vectored Interrupt Controller (NVIC) supports: 1 to 30 interrupts on SAM3U (240 in general) A programmable priority level in SAM3U is 0-15 for each interrupt (0-255 in general). A higher level corresponds to a lower priority, so level 0 is the highest interrupt priority. Level detection of interrupt signals. Dynamic reprioritization of interrupts. Grouping of priority values into group priority and subpriority fields. Interrupt tail-chaining. 23
24 Vad gör en ARM Cortex M3 vid avbrott? When an exception takes place, a number of things happen, such as Stacking (pushing eight registers contents to stack) Vector fetch (reading the exception handler starting address from the vector table) Update of the stack pointer, link register (LR), and program counter (PC) 24
25 ARM Cortex M3 Register på stacken vid avbrott When an exception takes place, the registers R0 R3, R12, LR, PC, and Program Status (PSR) are pushed to the stack. 25
26 Adressen till avbrottsrutinen hämtas samtidigt Although the data bus is busy stacking the registers, the instruction bus carries out another important task of the interrupt sequence: It fetches the exception vector (the starting address of the exception handler) from the vector table. Since the stacking and vector fetch are performed on separate bus interfaces, they can be carried out at the same time. 26
27 Register Updates On entry of the exception handler, a number of registers will be updated, as follows: SP: The SP (either the MSP or the PSP) will be updated to the new location during stacking. During execution of the interrupt service routine, the MSP will be used if the stack is accessed. PSR: The IPSR (the lowest part of the PSR) will be updated to the new exception number. PC: This will change to the vector handler as the vector fetch completes and starts fetching instructions from the exception vector. LR: The LR will be updated to a special value called EXC_RETURN. This special value drives the interrupt return operation. The last 4 bits of the LR is used to provide exception return information. A number of other NVIC registers will also be updated. For example, the pending status of the exception will be cleared and the active bit of the exception will be set. 27
28 Återhopp efter avbrott 28
29 Slå på avbrott Cortex M3 Avbrotten styrs av: Interrupt Mask registers (PRIMASK, FAULTMASK, and BASEPRI) Vid avbrott ger Interrupt Program Status register (IPSR) information om vilket avbrott som kommit. 29
30 Cortex-M3 Interrupt Mask Registers The PRIMASK and BASEPRI registers are useful for temporarily disabling interrupts in timing-critical tasks. An OS could use FAULTMASK to temporarily disable fault handling when a task has crashed. In this scenario, a number of different faults might be taking place when a task crashes. Once the core starts cleaning up, it might not want to be interrupted by other faults caused by the crashed process. Therefore, the FAULTMASK gives the OS kernel time to deal with fault conditions. MRS r0, BASEPRI ; Read BASEPRI register into R0! MRS r0, PRIMASK ; Read PRIMASK register into R0! MRS r0, FAULTMASK ; Read FAULTMASK register into R0! MSR BASEPRI, r0 ; Write R0 into BASEPRI register! MSR PRIMASK, r0 ; Write R0 into PRIMASK register! MSR FAULTMASK, r0 ; Write R0 into FAULTMASK register! 30
31 Slå på avbrott NVIC Externt avbrott tillåts genom att ettställa motsvarande bit i SETENA Interrrupt set enable register och slås av genom CLRENA Interrrupt clear enable register i NVIC. Väntande avbrott Om ett avbrott väntar på att få köras så ettställs motsvarande bit i Pending registret som kan läsas via SETPEND Interrupt Set-pending Registers (men även CLRPEND). Om ett avbrott är aktiverat syns detta syns detta genom i ACTIVE Interrupt Active Bit Registers. Innan man slår på ett avbrott är det en god sed att nollställa alla pending avbrott. Detta görs genom att skriva en etta till CLRPEND Interrupt Clear Pending Register. 31
32 Slå på avbrott Periferienhet Periferienheter kan oftast generera avbrott, men de måste slås på separat. PIO Tex så slår man på PIO avbrott via PIO_IER (Interrupt Enable Register) och PIO_IDR (Interrupt Disable Register) för varje pinne på porten, kan läsas via maskreg. (PIO_IMR) Dessutom måste PIO:n konfigureras för när den ska reagera på yttre händelser med ett avbrott (flank eller nivå) När en ingång upptäcker en avbrottshändelse (flank eller nivå) på en I/O pinne så sätts motsvarande bit i PIO_ISR (Interrupt Status Register). Om sedan avbrott är tillåten för denna biten (i IMR) så generas ett processoravbrott fär den PIO enhet som avses. 32
33 Slå på avbrott Periferienhet - Systick SYSTICK SYSTICK Control and Status Register 33
34 Mer om Systick Det primära målet för systemtimern (SysTick) är att generera periodiska avbrott. Detta är oftast används för att tillhandahålla tidsbasen i ett operativsystem. SysTick kan välja sin klockakälla. (I labben sätter den till Master Clock) SysTick har en 24-bitars räknare. Räknaren kallas Current Value Register (CVR) Startvärdet att ladda in till CVR kallas "reload value" och är lagrat i Reload Value Register (RVR). Varje gång CVR räknaren når 0, genereras ett avbrott och värdet i RVR laddas in till CVR. 34
35 Steg att konfigurera avbrott Att konfigurera en avbrottskälla kräver sex steg: 1. Implementera en avbrottshanterare 2. Lägg till avbrottsrutin i avbrottsvektorn 3. Avaktivera avbrott ifall det var aktiverat 4. Rensa alla utestående avbrott 5. Konfigurera avbrottsprioritet 6. Tillåt avbrott på periferienhetsnivå 7. Tillåt avbrott på NVIC nivå 8. Tillåt avbrott på processornivå 35
36 Dagens Föreläsning: Avbrott (Exception, Interrupt) Avbrott har många fördelar gentemot Pulling Avbrott kan vara interna eller externa Autovektorisering eller Icke vektoriserade Användning av avbrott Vad sker vid avbrott och hur man återgår Maskning av avbrott Prioritering av avbrott Hur man slår på respektive stänger av avbrott På CPU nivå, NVIC nivå, Periferienhet nivå (tex PIO, SYSTICK) 36
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.
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
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
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
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
Datorteknik. Tomas Nordström. Föreläsning 8 Timers. För utveckling av verksamhet, produkter och livskvalitet.
Datorteknik Tomas Nordström Föreläsning 8 Timers För utveckling av verksamhet, produkter och livskvalitet. Föreläsning 8 Timerbegrepp Timer på SAM3U Avbrottskodexempel Timers References: [SUM3U-complete]
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)
Programmering av inbyggda system
Avbrott och undantag Ur innehållet: Cortex M4 "exceptions" Avbrott NVIC Externa avbrott: Avbrottsvippa Läsanvisningar: Arbetsbok kap 7 IRQ Flip-Flop STM32F4xx Cortex M4 programming manual Kap 2.3 Exception
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
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
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
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
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
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
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
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
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ö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,
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
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.
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
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
Tentamen PC-teknik 5 p
Tentamen PC-teknik 5 p Namn:. Klass:... Program: Di2, Em3, Et3 Datum: 03-08-15 Tid: 13:30-18:30 Lokal: E171 Hjälpmedel: Linjal, miniräknare, Instruktionsrepertoar för 8086 (utdelas), Lathund, Pacific C
AVR 3 - datorteknik. Avbrott. Digitala system 15 hp. Förberedelser
Namn: Laborationen godkänd: Digitala system 15 hp AVR 3 - datorteknik LTH Ingenjörshögskolan vid Campus Helsingborg Avbrott. Syften med den här laborationen är att introducera avbrott. Avbrott som uppkommer
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
TSEA28 Datorteknik Y (och U)
TSEA28 Datorteknik Y (och U), föreläsning 6, Kent Palmkvist 2019-02-04 3 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
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
Ö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ö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
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
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
Undantag, avbrott. Avsnitt 7. Undantag, avbrott
Undantag, avbrott Avsnitt 7 Undantag, avbrott Inledning Processorn befinner sig normalt i Threade-mode, utförandes ett program. Om något exceptionellt inträffar, kallar vi detta ett undantag. Eftersom
4 grundregler. Minneshantering. Problemet. Windows minkrav
4 grundregler 1. Man kan aldrig få för mycket minne 2. Minnet kan aldrig bli för snabbt Minneshantering 3. Minne kan aldrig bli för billigt 4. Programmens storlek ökar fortare än minnet i datorerna (känns
Ö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-
Datorteknik ERIK LARSSON
Datorteknik ERIK LARSSON Inledning Ken Thompson och Dennis M. Ritchie utvecklade C Turingpriset( Nobelpris i datavetenskap ), 1983 Alan Turing (1912-1954) För deras utveckling av generell OS teori och
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
0.1. INTRODUKTION 1. 2. Instruktionens opcode decodas till en språknivå som är förstålig för ALUn.
0.1. INTRODUKTION 1 0.1 Introduktion Datorns klockfrekvens mäts i cykler per sekund, eller hertz. En miljon klockcykler är en megahertz, MHz. L1 cache (level 1) är den snabbaste formen av cache och sitter
Föreläsning 4 IS1300 Inbyggda system
Föreläsning 4 IS1300 Inbyggda system Programutveckling Exempel PingPong Idé Tillståndsdiagram State machine Skapa projekt Testning av programvara Peripheral Library till STM32 Programmeringsuppgiften RS232
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,
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
F6: I/O hantering. Typer av I/O i ett datorsystem. Protokoll för synkronisering. Drivrutiner. Memory mapped Port mapped. Polling Timed Interrupt DMA
F6: I/O hantering Typer av I/O i ett datorsystem Memory mapped Port mapped Protokoll för synkronisering Polling Timed Interrupt DMA Drivrutiner 1 Memory mapped I/O enheter avkodas precis som ett minne
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
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,
Digitala System: Datorteknik ERIK LARSSON
Digitala System: Datorteknik ERIK LARSSON Dator Primärminne Instruktioner och data Data/instruktioner Kontroll Central processing unit (CPU) Fetch instruction Execute instruction Programexekvering (1)
Ö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
I DAG fo 4. Printerport v3 med READY o DAV. Avbrott. Hur bra blev det egentligen????
Rep Konstruktion av en Printer-Port ynkroniseringsproblem Villkorlig / ovillkorlig överföring Busy Wait och Polling Handskakningssignaler AVBROTT!!! svektor I-flagga svippa sdriven Printerport I DAG fo
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
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
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
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..................................
Avbrottshantering. Övningsuppgifter
Avbrottshantering Övningsuppgifter 2013 Besvara kortfattat följande frågor rörande CPU12. Redogör för vad som händer vid RESET och varför detta sker. Förklara kortfattat vad som händer vid ett IRQ avbrott
Laboration 4: Knappstuds Drivrutiner för att eliminera störningar.
ATMega16 Laborationer av Kjell 2 Rev:5 Datum: 29.09.2010 Page 1 of 7 Laboration 4: Knappstuds Drivrutiner för att eliminera störningar. Inledning: Laborationskortet EasyAVR6 har bland annat tryckknappar
Alias 1.0 Rollbaserad inloggning
Alias 1.0 Rollbaserad inloggning Alias 1.0 Rollbaserad inloggning Magnus Bergqvist Tekniskt Säljstöd Magnus.Bergqvist@msb.se 072-502 09 56 Alias 1.0 Rollbaserad inloggning Funktionen Förutsättningar Funktionen
Operativsystem - input/output, skydd, virtualisering
Operativsystem - input/output, skydd, virtualisering Mats Björkman 2015-03-12 Lärandemål, I/O n Typer av I/O-enheter n Character, Block & Special n Minnesmappad I/O n Typer av I/O-programmering n Programmerad,
BÄNKVÅG / BENCH SCALE Modell : SW-III / Model : SW-III ANVÄNDARMANUAL / USER MANUAL SW-III WWW.LIDEN-WEIGHING.SE 2014-03-26 OBS! Under vågen sitter en justerbar skruv (se bild). Standardinställning är
Tentamen i EIT070 Datorteknik
Tentamen i EIT070 Datorteknik Institutionen för Elektro- och informationsteknik, LTH Onsdagen den 10 mars 2010, klockan 08:00 13:00 å Victoriastadion 1 och 2. Tillåtna hjälpmedel: på tentan utdelad formelsamling,
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
Datorarkitekturer med operativsystem ERIK LARSSON
Datorarkitekturer med operativsystem ERIK LARSSON Semantic gap Alltmer avancerade programmeringsspråk tas fram för att göra programvaruutveckling mer kraftfull Dessa programmeringsspråk (Ada, C++, Java)
Övningsuppgifter i Mikrodatorteknik 4p/5p
Övningsuppgifter i Benny Thörnberg Mittuniversitetet Inst. för Informationsteknologi och medier Hösten 2005 1 Exekvering av assemblerkod 1.1 Statusflaggors beteende Vad blir C-, N- och Z- flaggornas värden
Hantering av hazards i pipelines
Datorarkitektur med operativsystem Hantering av hazards i pipelines Lisa Arvidsson IDA2 Inlämningsdatum: 2018-12-05 Abstract En processor som använder pipelining kan exekvera ett flertal instruktioner
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
Support Manual HoistLocatel Electronic Locks
Support Manual HoistLocatel Electronic Locks 1. S70, Create a Terminating Card for Cards Terminating Card 2. Select the card you want to block, look among Card No. Then click on the single arrow pointing
Beijer Electronics AB 2000, MA00336A, 2000-12
Demonstration driver English Svenska Beijer Electronics AB 2000, MA00336A, 2000-12 Beijer Electronics AB reserves the right to change information in this manual without prior notice. All examples in this
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
Stack och subrutiner Programmeringskonventionen
Stack och subrutiner Programmeringskonventionen Du ska förstå hur en instruktion behandlas i processorn Du ska känna till några fler instruktioner Du ska veta hur maskinkoden för ett program byggs upp
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
Digitalteknik och Datorarkitektur 5hp
Digitalteknik och Datorarkitektur 5hp Minnes-hierarkier och Cache 12 maj 2008 karl.marklund@it.uu.se issa saker använder vi ofta Dessa saker vill vi ha nära till hands Storleken har betydelse Litet är
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
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
BÄNKVÅG / BENCH SCALE ANVÄNDARMANUAL / USER MANUAL SW-III www.liden-weighing.com Svenska OBS! Under vågen sitter en justerbar skruv (se bild). Standardinställning är den för vägning. Om ni vill rengöra
Datorarkitektur I. Tentamen Lördag 10 April Ekonomikum, B:154, klockan 09:00 14:00. Följande gäller: Skrivningstid: Fråga
Datorarkitektur I Tentamen Lördag 10 April 2010 Ekonomikum, B:154, klockan 09:00 14:00 Examinator: Karl Marklund 0704 73 32 17 karl.marklund@it.uu.se Tillåtna hjälpmedel: Penna Radergummi Linjal Följande
Tentamen i Digitala system - EDI610 15hp varav denna tentamen 4,5hp
Tentamen i Digitala system - EDI610 15hp varav denna tentamen 4,5hp Institutionen för elektro- och informationsteknik Campus Helsingborg, LTH 2016-12-22 8.00-13.00 Uppgifterna i tentamen ger totalt 60
Det finns en handledning till kortet på hemsidan. AVR STK500.
Laboration 1 (ver 1) Uppgifter: AVR Studio 4.lnk Bli bekant med utvecklingskortet, och AVR studio. Skriva in program för binärräknare. Simulera detta samt ladda ner det till kortet. Förse ovanstående program
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
F2: Motorola Arkitektur. Assembler vs. Maskinkod Exekvering av instruktioner i Instruktionsformat MOVE instruktionen
68000 Arkitektur F2: Motorola 68000 I/O signaler Processor arkitektur Programmeringsmodell Assembler vs. Maskinkod Exekvering av instruktioner i 68000 Instruktionsformat MOVE instruktionen Adresseringsmoder
Digitala projekt rapport
Digitala projekt rapport Alexander Westrup, d04aw@student.lth.se Martin Sandgren, d04ms@student.lth.se 4 december 2007 Innehåll 1 Abstract 1 2 Inledning 1 3 Arbetsgång 1 4 Hårdvara 1 4.1 Processor...............................
IndraDrive Open-loop. Styrning av asynkronmotor över Profibus. Version 1
IndraDrive Open-loop Styrning av asynkronmotor över Profibus Version 1 1. Inställningar för master kommunikation Öppna inställningarna för master kommunikationen genom att expandera mappen Master communication
2.45GHz CF Card Reader User Manual. Version /09/15
2.45GHz CF Card Reader User Manual Version 2.0 2008/09/15 Install SYRD245-CF Card Reader to PDA: 1. Explorer SYRD245-CF folder of SYRIS Xtive CD-ROM 2. Check your PDA OS (Mobile5 or PPC2003) NETCF V2 currently
Får endast utföras av behörig personal. May only be carried out by authorized electrician
Instruktion för DMIS Instruction for DMIS FLE400FC, FLE850MP, W3400H, W4400H/W4600H (-980/1287) W3850H/W31100H, W4850/W41100H (-1220/636) Clarus Control 471 1530-75 2016.05.04 Får endast utföras av behörig
Viktig information för transmittrar med option /A1 Gold-Plated Diaphragm
Viktig information för transmittrar med option /A1 Gold-Plated Diaphragm Guldplätering kan aldrig helt stoppa genomträngningen av vätgas, men den får processen att gå långsammare. En tjock guldplätering
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
Mål. Datorteknik. Innehåll. Innehåll (forts) Hur ser ett program ut? Hur skapas maskinkoden?
Mål Datorteknik Föreläsning 3 Att veta hur maskinkoden för ett program byggs upp Att börja programmera i på riktigt Att kunna skriva och anropa subrutiner i Att förstå hur stacken fungerar Att veta vad
Utkast. Programmering. Signals. Olika typer av program. Sommarkurs 2007 www.hh.se/staff/vero/programmering. Avbrott i mjukvara.
Programmering Sommarkurs 2007 www.hh.se/staff/vero/programmering Verónica Gaspes Utkast Avbrott i mjukvara Larm signaler Avslutnings signaler IDE-sektionen Curses Juli 2 Olika typer av program Signals
Operativsystem Lektion 1. Lärare. Schema. Kurssajten Finns på adressen. Jan Erik Moström. Set Norman
Operativsystem Lektion 1 1 Lärare jem@cs.umu.se, B449 Lektioner etc Set Norman set@cs.umu.se, NAdv105 Labbar, labhandledning 2 Schema Notera att det finns ändringar i schemat!! Under perioden 1-8 mars
Datormodell. Datorns uppgifter -Utföra program (instruktioner) Göra beräkningar på data Flytta data Interagera med omvärlden
Datormodell Datorns uppgifter -Utföra program (instruktioner) Göra beräkningar på data Flytta data Interagera med omvärlden Intel 4004 från 1971 Maximum clock speed is 740 khz Separate program and data
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
Quick Start Guide Snabbguide
Quick Start Guide Snabbguide C Dictionary Quick Start Thank you for choosing C Dictionary and C-Pen as your translation solution. C Dictionary with its C-Pen connection will make translation easy and enable
SVAR TILL TENTAMEN I DATORSYSTEM, VT2013
Rahim Rahmani (rahim@dsv.su.se) Division of ACT Department of Computer and Systems Sciences Stockholm University SVAR TILL TENTAMEN I DATORSYSTEM, VT2013 Tentamensdatum: 2013-03-21 Tentamen består av totalt
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
PNSPO! Adressering i Omrons PLC. 14 mars 2012 OMRON Corporation
PNSPO! 14 mars 2012 OMRON Corporation 2/19 Läs detta innan du bläddrar vidare PNSPO! Denna bok är avsedd som ett tillägg till de ursprungliga manualerna för OMRONs produkter. Använd den som en hjälp att
CPU. Carry/Borrow IX. Programräknare
Laboration:. Jämförelser mellan assembler och C. CPU ACCA ACCD ACCB 8-bitars ackumulatorer eller 16- bitars ackumulator CCR 1 1 1 SXH I NZVC Flaggregister Carry/Borrow IX IY PC Indexregister X Indexregister
Datorteknik. Föreläsning 3. Assembler, stack och subrutiner, programmeringskonventionen. Institutionen för elektro- och informationsteknologi, LTH
Datorteknik Föreläsning 3 Assembler, stack och subrutiner, programmeringskonventionen Mål Att veta hur maskinkoden för ett program byggs upp Att börja programmera i assembler på riktigt Att kunna skriva
Institutionen för elektro- och informationsteknologi, LTH
Datorteknik Föreläsning 3 Assembler, stack och subrutiner, programmeringskonventionen Mål Att veta hur maskinkoden för ett program byggs upp Att börja programmera i assembler på riktigt Att kunna skriva
Aktivitetsschemaläggning för flerkärninga processorer
Lunds Tekniska Högskola Datorarkitekturer med Operativsystem EDT621 Aktivitetsschemaläggning för flerkärninga processorer Tobias Lilja 5 december 2016 Innehåll 1 Inledning 3 1.1 Syfte................................
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
Datorarkitekturer med operativsystem ERIK LARSSON
Datorarkitekturer med operativsystem ERIK LARSSON Dator Primärminne Instruktioner och data Data/instruktioner Kontroll Central processing unit (CPU) Fetch instruction Execute instruction Programexekvering
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
Övning 5 ETS052 Datorkommuniktion Routing och Networking
Övning 5 TS5 Datorkommuniktion - 4 Routing och Networking October 7, 4 Uppgift. Rita hur ett paket som skickas ut i nätet nedan från nod, med flooding, sprider sig genom nätet om hop count = 3. Solution.
Övning 6. Parallellport, timer
Övning 6 Parallellport, timer 6.1 de2_pio_toggles18 Memory-Mapped addresses LEDG8 LEDR17 LEDR16 LEDR15 LEDR14 LEDR13 LEDR12 LEDR11 LEDR10 LEDR9 LEDR8 LEDR7 LEDR6 LEDR5 LEDR4 LEDR3 LEDR2 LEDR1 LEDR0 LEDG7