CE_O9. Exceptions, interrupts, traps. Förberedelser för lab 3, nios2int
|
|
- Malin Berg
- för 5 år sedan
- Visningar:
Transkript
1 IS1200 Exempelsamling till övning CE_O9, 2015 CE_O9. Exceptions, interrupts, traps. Förberedelser för lab 3, nios2int 9.1. Hantering av exceptions i Nios II. Vektoriserad hantering av Exceptions. Hur fungerar avbrottssystemet i Nios-II-processorn? Beskriv och diskutera idén med vektoriserad hantering av exceptions! Skissa hur man i Nios-II kan strukturera sin programvara för att efterlikna vektoriserad hantering av exceptions. DEL1: Assembler-kod för hantering av exceptions 9.2. Kopiering av trampolin / "stubbe" Exception i Nios-2-processorn leder till att den vanliga programexekveringen avbryts och viss information sparas i utvalda register i processorn. Körningen fortsätter på en av hårdvaran (av konstruktören) bestämd fast adress som i vår labutrustning är 0x Det går inte att placera hela Exception Handler på adress 0x800020; dels finns det för lite plats och dels är det inte enkelt att få länkaren att lägga kod på en adress som programmeraren bestämmer själv. För att kunna placera sin Exception Handler på vilken plats som helst i minnet kan man på adress 0x och framåt skriva in instruktioner som medför "hopp till ExceptionHandler". Att på adress 0x skriva in önskade instruktioner ska du låta ett program utföra. Det görs genom att ha en "trampolin" som består av de instruktioner som ska kopieras till adress 0x Sedan skriver du en instruktionsföljd som utför kopiering av stubben till plats 0x Här följer ett exempel på lämpliga instruktioner att placera på adress 0x stub: movhi r24,%hi(exchand) # ladda 16 MSB av adressen ori r24,r24,%lo(exchand) # ladda 16 LSB av adressen jmp r24 # utför hopp till Handler... ExcHand: # här finns koden för ExceptionHandler... Skriv assembler-kod som kopierar 3 instruktioner från stub: till 0x Du kan antingen använda en subrutin av typen memcpy, eller skriva "rakt-på-kod". Uppgifter till övning CE_O9, sida 1 (av 9)
2 9.3. Orsak till Exception: Interrupt, TRAP eller något annat? Skriv den del av assembler-koden i ExceptionHandler som "listar ut" om undantaget har orsakats av en Interrupt eller av en TRAP-instruktion. Hopp ska ske till de symboliska adresserna IntHandler respektive TrapHandler. Vid undantag av annat slag ska hopp ske till adressen ElseHandler. Denna programkod motsvarar övre delen av Figure 3-3 i Nios II Processor Reference Handbook, kapitel 3 Programming Model Nios II. Avbrott från timerenheten timer_1. Skriv ett huvudprogram i assembler som 5 gånger per sekund skriver ut en rad med texten "Bakgrundsprogram". Använd dig av subrutinerna WAITX (se exempel från övning 3) och PRTEX (se exempel från övning 5). Komplettera detta program och initiera timerkretsen för att generera avbrott varje millisekund och använd dessa avbrott för att en gång per sekund skriva ut "Time- Out" längst till vänster på en ny rad i terminalfönstret. Utskrifterna ska inte "blandas" dvs hela texten "Bakgrundsprogram" ska skrivas ut på en egen rad och hela texten "Time-Out" ska skrivas på egen rad. I denna uppgift ingår att skriva den del av IntHandler (enligt föregående uppgift) som upptäcker att avbrottet kommer just från timer_1 och som vid den upptäckten (gör ett hopp och) fortsätter exekvering vid den symboliska adresser TimerInt där man hittar koden för att hantera avbrott från timern. På adress 0x924 ska bit med index 0 vara ettställd för att tillåta avbrott från Timern. En Time-Out kvitteras genom att ett (godtyckligt) värde skrivs till adress 0x920. Timer_1 genererar avbrott med index 10. Uppgifter till övning CE_O9, sida 2 (av 9)
3 9.5. Avbrott från serieport uart_0. Serieporten uart_0 kan ställas in så att den genererar avbrott då biten RxRdy ettställs. RxRdy är bit med index 7 på adress 0x868. Motsvarande gäller för TxRdy (bit med index 6 på adress 0x868). På adress 0x86C finns en maskbit vardera för RxRdy och TxRdy i motsvarande positioner, det vill säga bitar med index 7 och 6. Då man läser data från DataIn nollställs RxRdy. Då man skriver data till DataUt nollställs TxRdy. Serieporten uart_0 på adress 0x860 är ansluten till nios2-processorn, så att serieporten kan generera avbrott med index 4. Skriv i assemblerkod en avbrottsrutin, Uart0Int, som baserat på avbrott från uart_0 på adress 0x860 ekar tecken från tangentbord till terminalfönster. Använd in_char och out_char från uppgift 7.3. Komplettera programkoden i IntHandler, i uppgift 7.3 och 7.4 så att den vid avbrott från uart_0 "hoppar" med en br-instruktion till den symboliska adressen Uart0Int Avbrott från parallellport de2_pio_keys4. Beskriv hur avbrott kan genereras från KEY3 KEY0 i Nios2:s PIO-enhet de2_pio_keys4. Skriv en programkod, Keys_Int, som använder avbrott och skriver ut en siffra 3, 2, 1 eller 0 varje gång motsvarande knapp KEY3 KEY0 trycks ner och skriver ut tecken E, S, I eller O när knappen släpps. Observera att avbrott ges vid varje växling på någon av KEY3 KEY0 och att utskrift ska göras både då knappen trycks ner och släpps upp. Utforma programmet så att ingen knappnedtryckning "tappas bort", även om användaren trycker på flera knappar samtidigt i oförutsägbara kombinationer. Komplettera programkoden i IntHandler, i uppgift 7.3 och 7.4 så att den vid avbrott från button_pio "hoppar" till den symboliska adressen de2_pio_int. VIKTIG KOMPLETTERANDE INFORMATION OM de2_pio_keys4: På adress 0x840 finns "data-register" där bit 3 0 visar aktuellt värde på KEY3 KEY0. Släppt knapp ger en etta och nedtryckt knapp ger en nolla. KEY3 svarar mot bit 3, KEY2 mot bit 2, KEY1 mot bit 1 och KEY0 mot bit 0. På adress 0x848 finns avbrottsmask (interrupt mask). För att en knapp KEYi ska kunna generera avbrott måste motsvarande bit (av bitarna 3 0) i avbrottsmasken vara ettställd. På adress 0x84C finns "edge capture register". En växling av värde, från 0 till 1 eller från 1 till 0, på en knapp KEYi ger ettställning av motsvarande bit i registret. Om man skriver ett värde, vilket som helst, till Edge Capture Register så nollställs alla bitar i registret, alla avbrottssignaler kvitteras. Obs! Man kan inte nollställa (kvittera) enskilda bitar i Edge Capture Register varje skrivning nollställer alltid alla bitar. Porten de2_pio_keys4 genererar avbrott med index 2. Uppgifter till övning CE_O9, sida 3 (av 9)
4 9.7. Exception med TRAP-instruktion Skriv programkod i Nios-2-assembler som använder en TRAP-instruktion. a) Du ska skriva kod för ett huvudprogram som med instruktionen TRAP "anropar" en "trap handler", som skriver ut en textsträng (nul-terminated string) som finns lagrad i minnet. Vid TRAP-anropet ska adressen till det första tecknet i strängen skickas med som en parameter i register r5 (Ja, i r5 eftersom r4 eventuellt ska användas för annat). b) Du ska skriva koden för Trap-rutinen som ska anropa subrutinen PRTEX, se uppgift 5.4, för att skriva ut textsträngen. Exempel på användbart direktiv: hello:.asciz "Hello World!" # texten lagras som null-terminated ASCII-code 9.8. Avbrott i en avbrottsrutin. Diskutera vilka åtgärder som krävs för att ett avbrott ska kunna tillåtas och hanteras inne i en avbrottsrutin. Vilka åtgärder måste vidtagas i en avbrottsrutin för KEY3 för att kunna släppa fram ett avbrott från knapp KEY0? 9.9. Timeravbrott i avbrottsrutin för timer_1. Antag att timern används för att generera avbrott varje millisekund och att man exakt varje sekund vill anropa en subrutin, WORK, som tar cirka millisekunder att utföra, men olika lång tid vid varje anrop. Diskutera hur man detta kan åstadkommas genom att man låter avbrottsrutinen för timern bli avbruten av timern själv. Uppgifter till övning CE_O9, sida 4 (av 9)
5 DEL2: C-kod för hantering av exceptions int 0 1 Avbrottsrutin 2 3 som gör subrutinanrop (call) till rätt avbrottshanterare null irq00hand irq01hand instr 31 irq31hand Interrupt Vector Table Vektoriserat avbrott med Altera-supplied exception wrapper. Det finns en färdig Exception Handler (Altera-supplied exception wrapper) i den programvara som alltid länkas med vid kompilering i Nios II IDE. Hur fungerar denna Exception Handler? Läs beskrivning i lab-pm för laboration 3, Nios2Int Funktion/subrutin för avbrottshantering. En programmerare som vill använda Alteras färdiga Exception Handler (Alterasupplied exception wrapper) måste skriva en specialiserad funktion/subrutin (i C eller assembler), anpassad till den enhet som ska ge avbrott. Hur ska den funktionen/subrutinen se ut? Vilken/vilka inparametrar krävs och vilken parameter ska returneras. Läs beskrivning i lab-pm för laboration 3, Nios2Int Initialisering av vektoriserat avbrott. Förutsätt användning av Altera-supplied exception wrapper. Hur ska avbrottssystemet initialiseras för att programmerarens funktion/subrutin ska anropas vid avbrott? Kom ihåg att anropa alt_ic_isr_register ( ) Läs beskrivning i lab-pm för laboration 3, Nios2Int. Uppgifter till övning CE_O9, sida 5 (av 9)
6 9.13. Speciellt för laborationerna: funktionen intfix Vad gör funktionen intfix (se bifogad kod) och varför behövs den? / intfix.c Unregisters all interrupt handlers, except for the JTAG UART and timer_0. Written by F Lundevall, re-written Copyright abandoned. This file is in the public domain. / #include <sys/alt_irq.h> / Allow interrupts for JTAG UART (number 0), and for timer_0 (number 1) which is used for the JTAG UART host-connection check. Calling alt_irq_register with some IRQ number, and the last argument set to 0 (NULL), will disable interrupts for that IRQ number. The initfix_int function calls alt_irq_register this way for all IRQ numbers except number 0 (the IRQ number of the JTAG UART), and 1 (the IRQ number of timer_0, used for the JTAG UART host-connection check. Note: to enable (rather than disable) an interrupt, call alt_irq_register with the last argument set to the address of an interrupt-handler function. / #define LOWEST_IRQ_NUMBER (2) #define HIGHEST_IRQ_NUMBER (16) / Additional side-effect, added : disable the interrupt-outputs of serial ports uart_0 and uart_1. To do this properly, their addresses are defined here. / #define UART_0 ( (volatile int ) 0x860 ) #define UART_1 ( (volatile int ) 0x880 ) #define NULL ( (void ) 0) / initfix_int - unregister unused interrupt handlers Returns 0 if successful, a nonzero value otherwise. / int intfix( void ) { / Declare a temporary for checking return values from system-calls and library functions. / register int ret_val_check = 0; register int irq_number; for( irq_number = LOWEST_IRQ_NUMBER; irq_number < HIGHEST_IRQ_NUMBER; irq_number += 1 ) { ret_val_check = alt_ic_irq_disable( 0, irq_number ); } UART_0[3] = UART_1[3] = 0; / Serial ports / return( ret_val_check ); } Uppgifter till övning CE_O9, sida 6 (av 9)
7 9.14. Huvudprogram i C. Skriv ett huvudprogram som anropar lämpliga initialiseringsrutiner för avbrott från serieport uart_0, som har basadress 0x860. Efter initialisering ska huvudprogrammet skriva ut punkter med jämna mellanrum. Förutsätt att initialiseringsrutinen för uart_0 heter uart_0_init Initialisering av serieport uart_0 i C. Skriv initialiseringsrutin i C för avbrott från uart_0. Kalla rutinen för uart_0_init. Avbrott ska göras vid inmatning från tangentbord eller motsvarande, då RxRdy ettställs. Utmatning (TxRDy) ska ej ge avbrott. Förutsätt att avbrottshanteraren för uart_0 heter uart_0_handler Avbrottshanterare för serieport uart_0 i C. Skriv avbrottshanterare i C för avbrott från uart_0. Kalla rutinen för uart_0_handler. Vid avbrott ska det inlästa tecknet "ekas" till skärmen, men med mellanslagstecken (ASCII-kod 0x20) före och efter Placering av subrutiner i C-program. Visa var i huvudprogrammet från uppgift 8.14 som initialiseringsrutinen från uppgift 8.15 ska placeras. Visa också var i huvudprogrammet som avbrottshanteraren från uppgift 8.16 ska placeras. Markera tydligt hur initialiseringsrutin och avbrottshanterare ska placeras i förhållande till varandra. Uppgifter till övning CE_O9, sida 7 (av 9)
8 nios2int/nios2int.c Studera programkoden i nios2int.c (tidigare lab3upg6main.c ) a) Repetera innebörden av varje ord i raden volatile int const de2_pio_reled18_base = (volatile int ) 0x810; b) Studera och diskutera den bifogade koden för funktionen void timerinit_int( void ) { / Declare a local temporary variable for checking return values from system-calls and library functions. / register int ret_val_check; / Disable interrupts for timer_1, if they were enabled. The function alt_irq_disable returns an int, which always has the value 0. We use a type cast to void to tell the compiler that we really want to ignore the return value. / (void) alt_ic_irq_disable( 0, timer_1_intindex ); timer_1_period_low = TIMER_1_TIMEOUT & 0xffff; timer_1_period_high = TIMER_1_TIMEOUT >> 16; timer_1_control = 7; / START bit (must always be a 1) CONT bit (timer restarts on timeout) ITO bit (interrupt on timeout) / } / Set up Altera's interrupt wrapper for interrupts from the timer_1 device. Return value is zero for success, nonzero for failure. / ret_val_check = alt_ic_isr_register( 0, timer_1_intindex, timer_isr, NULL_POINTER, NULL_POINTER ); / If there was an error, terminate the program. / if( ret_val_check!= 0 ) n2_fatal_error(); Uppgifter till övning CE_O9, sida 8 (av 9)
9 c) Studera och diskutera den bifogade koden för funktionen / Interrupt handler for timer_1. The parameters are ignored here, but are required for correct compilation. The type alt_u32 is an Altera-defined unsigned integer type. / void timer_isr( void context ) { timer_1_status = 0; / Acknowledge interrupt / tick( &mytime ); puttime( &mytime ); } 8.19 Eventuella uppgifter för framtiden (överkurs!!!) Modifiera koden för Toggles18-Handler så att man under tiden som BigDeal körs tillåter avbrott från Keys4, från Toggles18 och från Uart0 dvs avbrott med index 2, 3 och 4. (Och varför inte även från Timer med index 10?) Denna uppgift avser att förstärka insikten i behov av, innebörd av och användning av HAL-funktionerna alt_irq_interruptable() och alt_irq_non_interruptable() inklusive behov av inparametrar och returparametrar. Det är antagligen även fruktbart att försöka (be-)skriva den bakomliggande assemblerkoden eller med andra ord till vilken assemblerkod dessa funktioner översättes. Eller ännu mera maskinnära: hur påverkas hårdvaran i Nios2 av dessa 2 rutiner och parametervärden. Dessutom bör alla begravda hundar grävas upp och synas. Det är rimligt att förvänta sig att erbjudandet att använda HAL-funktioner ska underlätta användning av avbrottshantering helst utan att dölja eller försvåra förståelsen av hur det hela hänger ihop. Om programmeraren vill tillåta avbrott i avbrott måste programmeraren vidtaga vissa försiktighetsmått. Exakt vad och varför? Uppgifter till övning CE_O9, sida 9 (av 9)
CE_O9. Exceptions, interrupts, traps. Förberedelser för lab 3, nios2int
IS1200 ösningar till övning CE_O9, 2015 CE_O9. Exceptions, interrupts, traps. Förberedelser för lab 3, nios2int 9.1 Hantering av Exceptions i Nios-2 Vektoriserad hantering av Exceptions. Tre tänkbara orsaker
Läs merCE_O3. Nios II. Inför lab nios2time
IS1200 Exempelsamling till övning CE_O3, 2015 CE_O3. Nios II. Inför lab nios2time 3.1. Logiska operationer (se uppgift 1.2 c) Repetera (eller lär dig) innebörden av de logiska operationerna "bitvis AND",
Läs merÖ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
Läs merÖvning 7. Timer, serieport
Övning 7 Timer, serieport 7.6 timer_1 Memory-Mapped addresses 0x920 status 0x924 control 0x928 periodl 0x92C periodh 0x930 snapl 0x934 snaph 15 0 Run TO (Time-Out) ITO cont start stop timer_1 start D Q
Läs merAVR 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
Läs merCE_O6. Parallell in/utmatning (I/O). Förberedelser till laboration nios2io.
IS1200 Exempelsamling till övning CE_O6, 2015 CE_O6. Parallell in/utmatning (I/O). Förberedelser till laboration nios2io. 6.1. Läs in data från IN-port (skjutomkopplare TOGGLES18) Skriv en subrutin, Get_Data
Läs merTentamen 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
Läs merLö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 merIS1500 Lösningar övning CE_O7 2014. CE_O7. Programmerad in/utmatning. Serieport. Förberedelser till nios2io.
IS1500 ösningar övning CE_O7 2014 CE_O7. Programmerad in/utmatning. Serieport. Förberedelser till nios2io. 6.1. Vad är seriell kommunikation? a) Vad är skillnaden mellan seriell och parallell kommunikation?
Läs merLABORATION. 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 merLö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 merExempelsamling Assemblerprogrammering
Exempelsamling Assemblerprogrammering I uppgifterna nedan utgå från följande programskelett: #include.data var1:.word 12 var2:.word 19 sum: prod:.float 0.set noreorder.text.globl start.ent start
Läs merLaboration 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 merPolling (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 merDatorsystemteknik 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 merDatorsystem 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 merLABORATION. 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 merDatorteknik. 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 merLaboration 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
Läs merAtt skriva till och läsa från terminalfönstret
Att skriva till och läsa från terminalfönstret Oftast används grafiska komponenter i Java för att kommunicera med användaren (användargränssnitt), men det finns objekt i standardbiblioteken för de tillfällen
Läs merLEU240 Mikrodatorsystem
Institutionen för data- och informationsteknik 2011-10-11 LEU240 Mikrodatorsystem Vi har tidigare i olika sammanhang sett att det är önskvärt att kunna använda ett högnivåspråk som C för att skriva program
Läs merTentamen 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,
Läs merMå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 merF5: Högnivåprogrammering
F5: Högnivåprogrammering Parameteröverföring Koppling mellan låg- och högnivåprogrammering Lokala variabler Heapen Datatyper 1 Subrutin, parameteröverföring: 1(3) Via register genom värde Skicka data via
Läs merLö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 merF5: Högnivåprogrammering
1 F5: Högnivåprogrammering Parameteröverföring Koppling mellan låg- och högnivåprogrammering Lokala variabler Heapen Datatyper 1 Subrutin, parameteröverföring: 1(3) Via register genom värde Skicka data
Läs merInstitutionen 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 merHantering av textsträngar och talsträngar. William Sandqvist
Hantering av textsträngar och talsträngar Strängen Hello world! PIC-processorerna lagrar strängkonstanter med bokstäverna inbakade i en följd av instruktioner (en tabell). Man hämtar en bokstav genom att
Läs merDatorteknik 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 merBeskrivning 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 merF8: 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 merF6: 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
Läs merIS1200 Datorteknik. Övning CE_O4 Maskinnära programmering med C Förberedelser till hemlaboration 1
IS1200 Datorteknik Övning CE_O4 Maskinnära programmering med C Förberedelser till hemlaboration 1 1 4.1 Little och big endian 2 Nios II? Nios II är Little-endian (men eftersom det är en soft-processor
Läs merProgrammeringsteknik med C och Matlab
Programmeringsteknik med C och Matlab Kapitel 6: Filhantering Henrik Björklund Umeå universitet 13 oktober 2009 Björklund (UmU) Programmeringsteknik 13 oktober 2009 1 / 22 Textfiler Filer är sekvenser
Läs merStyrteknik: Binära tal, talsystem och koder D3:1
Styrteknik: Binära tal, talsystem och koder D3:1 Digitala kursmoment D1 Boolesk algebra D2 Grundläggande logiska funktioner D3 Binära tal, talsystem och koder Styrteknik :Binära tal, talsystem och koder
Läs merSystemkonstruktion LABORATION REALTIDSPROGRAMMERING
Systemkonstruktion LABORATION REALTIDSPROGRAMMERING Laborationsansvariga: Anders Arvidsson, Björn Lundblad Utskriftsdatum: 2002-10-31 Laboranter: 1 Syfte Denna laboration syftar till att öva användningen
Läs merLösningar till övning CE_O CE_O6. Parallell in/utmatning (I/O). Förberedelser till laboration nios2io.
ösningar till övning CE_O6 2014 CE_O6. Parallell in/utmatning (I/O). Förberedelser till laboration nios2io. 6.1. äs in data från IN-port ( skjutomkopplare TOGGES18) a) ösningsförslag i Nios-II-assembler..equ
Läs merFö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 merMaskinorienterad programmering
Maskinorienterad programmering Sammanfattning Ur innehållet: Vi rekapitulerar kursens syften Vi repeterar kursens lärandemål Vi belyser hur den skriftliga delen av examinationen genomförs. Sammanfattning
Läs merAvbrottshantering. Ö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
Läs merDigital- 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 merTentamen i IS1500/IS1200/2G1518 Datorteknik fredagen den 19 augusti 2011 kl
Tentamen i IS1500/IS1200/2G1518 Datorteknik fredagen den 19 augusti 2011 kl 14.00 19.00 Examinator: Fredrik Lundevall (IS1500), Johan Wennlund (IS1200, 2G1518). Jourhavande lärare: Johan Wennlund. Tentamensuppgifterna
Läs merLaboration Datorteknik TSIU02 2. I/O-programmering
Laboration Datorteknik TSIU02 2. I/O-programmering Stefan Gustafsson version 1.1 1. Inledning Laboration: I/O-programmering Du skall i denna laboration programmera TUTOR till att signalera i Morsekod.
Läs merDatorteknik. 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 merSvar 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 merDigital- 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 merProgramallokering. 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 merA-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Ö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 merDatorteknik TSIU02 Lab 2 Morsesändare v0.7
Inledning För att skriva program i något programspråk förenklar det att ha ett strukturerat angreppssätt. I assembler får man strukturen genom omsorgsfull användning av subrutiner. Som exempel på en mer
Läs merProgrammera i C Varför programmera i C när det finns språk som Simula och Pascal??
Programmera i C Varför programmera i C när det finns språk som Simula och Pascal?? C är ett språk på relativt låg nivå vilket gör det möjligt att konstruera effektiva kompilatorer, samt att komma nära
Läs merAVR 5. Styrning av trafikljus. Digitala system 15 p
Namn: Laborationen godkänd: Digitala system 15 p AVR 5 LTH Ingenjörshögskolan vid Campus Helsingborg Styrning av trafikljus. Syftet med laborationen är att styra en trafikkorsning med hjälp av en mikroprocessor.
Läs merOBS!! Detta är DEL 2 av tentan. För att få ut denna måste du ha lämnat in del 1. Om du inte fått ut del 1 bör du meddela skrivningsvakten. OBS!!
Sid 1 av 8 Datavetenskap Tentamen för DVG A03 Datorsystemteknik, 7,5 hp, del 2 fredag 2009-01-09 kl. 08.15-13.15 Tentamen del 2 består av 4 sidor. Ansvariga lärare: Tillåtna hjälpmedel: Kerstin Andersson
Läs mer4. Maskinnära programmering i C. Förberedelser till hemlaboration 1.
IS1200 ösningar till exempel, övning 4, 2015 4. Maskinnära programmering i C. Förberedelser till hemlaboration 1. 4.1. Big-endian och little-endian När heltal, flyttal och adresser ska lagras i datorns
Läs merDatorprojekt, del 1. Digitala system 15 p
Namn: Laborationen godkänd: Digitala system 15 p L T H I n g e n j ö r s h ö g s k o l a n v i d C a m p u s H e l s i n g b o r g Datorprojekt, del 1 Projektet består i att skapa en klocka där tiden visas
Läs merStudera databladen för LCD på sid 4, 5, 7, 8, 14, 18, 19, 20 och 23. Datablad finns på kurshemsidan.
Namn: Laborationen godkänd: Digitala system 15 p Datorprojekt, del 2 L T H I n g e n j ö r s h ö g s k o l a n v i d C a m p u s H e l s i n g b o r g Projektlaboration 2, skrivning till LCD. Förberedelser:
Läs mer(Lösningsförslag finns sist i denna fil.)
(Lösningsförslag finns sist i denna fil.) Läser externa signaler. Har 64 ingångar (kanaler), från 0 till 63. Kan bara avläsa en ingång i taget. Avlästa värdet positivt 16-bitars tal. Varje läsning tar
Läs merPC-teknik, 5 p LABORATION FILHANTERING
PC-teknik, 5 p LABORATION FILHANTERING Laborationsansvariga: Anders Arvidsson Utskriftsdatum: 2004-09-14 Laborant(er): 1 Syfte Laborationen ska illustrera möjligheten att använda funktioner i DOS för att
Läs merEDA480/EDA485 - Maskinorienterad programmering, tentamen 2006-xx-xx 1(7)
EDA480/EDA485 - Maskinorienterad programmering, tentamen 2006-xx-xx 1(7) 1. Motivation ROM. 8kbyte 2 3 2 10 byte 13 Adressbitar [A12,A0] direkt till ROM-kapsel. RWM. 32kbyte 2 5 2 10 byte 15 Adressbitar
Läs merKompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering
Föreläsning 1 Objektorienterad programmering DD1332 Introduktion till Java Kompilering, exekvering, variabler, styrstrukturer Kompilering och exekvering Ett program måste översättas till datorns språk
Läs merProgrammering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning.
Programmering med Java Programmering med Java Programspråket Java Källkodsexempel Källkod Java API-exempel In- och utmatning Grunderna Ann Pan panda@nada.kth.se Rum 1445, plan 4 på Nada 08-7909690 Game.java
Läs merCPU. 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
Läs mer1 Funktioner och procedurell abstraktion
1 Funktioner och procedurell abstraktion Det som gör programkonstruktion hanterlig och övergripbar och överhuvudtaget genomförbar är möjligheten att dela upp program i olika avsnitt, i underprogram. Vår
Läs merDet 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
Läs merArduinokurs. Kurstillfälle 4
Kurstillfälle 4 CW-generering Det här kan ses som överkurs men kan ändå vara roligt för att kunna generera CW på ett enkelt sätt. Det blir en hel del nytt men vi tar det steg för steg Som alla vet gäller
Läs merStyrteknik : Funktioner och funktionsblock
PLC2A:1 Variabler och datatyper Allmänt om funktioner och funktionsblock Programmering av funktioner Programmering av funktionsblock PLC2A:2 Variabler i GX IEC Developer Global and Local Variables Variables
Läs merPlanering Programmering grundkurs HI1024 HT 2014
Planering Programmering grundkurs HI1024 HT 2014 Föreläsning V36 Föreläsning 1 Vad är programmering? Boken! Kurs-PM Vad är ett program? Kompilerande- Interpreterande Programmeringsmiljö Hello World! Att
Läs merCE_O2. Nios II. Subrutiner med mera.
IS1500 Lösningsförslag till övning CE_O2 2014 CE_O2. Nios II. Subrutiner med mera. 2.1. Binära lagringsformat R-type: (Register-format) ra (5 bit) rb (5 bit) rc (5 bit) operationskod (17 bit) Detta format
Läs merElektroteknik MF1016 föreläsning 9 MF1017 föreläsning 7 Mikrodatorteknik
Elektroteknik MF1016 föreläsning 9 MF1017 föreläsning 7 - Inbyggda system - Analog till digital signal - Utvecklingssystem, målsystem - Labutrustningen - Uppbyggnad av mikrokontroller - Masinkod, assemblerkod
Läs merJohan Karlsson Datavetenskap för teknisk kemi, 10p, moment 1 Datavetenskap Umeå Universitet. Tentamen
Tentamen för teknisk kemi, 10p, moment 1 29 november 1999 Skrivtid 9-15 Hjälpmedel: av följande böcker. - U. Bilting och J. Skansholm: Vägen till C - A. Kelley & I. Pohl: A Book on C Maxpoäng: Gräns för
Läs merAnsvarig 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 merHI1024 Programmering, grundkurs TEN
HI1024 Programmering, grundkurs TEN2 2016-01-09 KTH STH Haninge 8.15-13.00 Tillåtna hjälpmedel: En A4 handskriven på ena sidan med egna anteckningar Kursboken C PROGRAMMING A Modern Approach K. N. King
Läs merHI1024 Programmering, grundkurs TEN2 2015-10-30
HI1024 Programmering, grundkurs TEN2 2015-10-30 KTH STH Haninge 8.15-13.00 Tillåtna hjälpmedel: En A4 handskriven på ena sidan med egna anteckningar Kursboken C PROGRAMMING A Modern Approach K. N. King
Läs merTentamen. 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 merTentamen. 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 merAtt använda pekare i. C-kod
Att använda pekare i C-kod (Bör användas av de som känner sig lite hemma med C-programmering!) Rev 1, 2005-11-23 av Ted Wolfram www.wolfram.se Syfte: Man kan tycka att det är komplicerat att använda pekare
Läs merProgrammering I Tobias Wrigstad fredag, 2009 augusti 28
Programmering I Tobias Wrigstad tobias@dsv.su.se Vad är programmering? Lågnivåspråk och högnivåspråk Kompilering och interpretering Variabler Notation för flödesschema (flow chart) Kontrollstrukturer (conditionals,
Läs merAgenda. Arrayer deklaration, åtkomst Makron Flerdimensionella arrayer Initiering Strängar Funktioner och arrayer. Övningar nu och då
Agenda Arrayer deklaration, åtkomst Makron Flerdimensionella arrayer Initiering Strängar Funktioner och arrayer Övningar nu och då 1 Motivering I de flesta problem ingår att hantera multipla data I de
Läs merDagens program. Programmeringsteknik och Matlab. Objektorienterad programmering. Vad är vitsen med att ha både metoder och data i objekten?
Programmeringsteknik och Matlab Övning 4 Dagens program Övningsgrupp 2 (Sal Q22/E32) Johannes Hjorth hjorth@nada.kth.se Rum 4538 på plan 5 i D-huset 08-790 69 02 Kurshemsida: http://www.nada.kth.se/kurser/kth/2d1312
Läs merStack 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
Läs merTENTAMEN 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Ö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
Läs merProgrammeringsteknik med C och Matlab
Programmeringsteknik med C och Matlab Kapitel 2: C-programmeringens grunder Henrik Björklund Umeå universitet Björklund (UmU) Programmeringsteknik 1 / 32 Mer organisatoriskt Imorgon: Datorintro i lab Logga
Läs merÖvning från förra gången: readword
(9 september 2010 T4.1 ) Övning från förra gången: readword /** readword.c * * int readword(char w[], int n) { * * Läser tecken tills en bokstav påträffas. * Läser och lagrar sedan högst n-1 bokstäver
Läs merLösningsförslag till Tenta i Mikrodator
Lösningsförslag till Tenta i Mikrodator 040117 1. Vilka register finns det i processorn och vad används dessa till? D0 till D7: Dataregister som används för beräkningar A0 till A6: Adressregister som används
Läs merFö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äs merLABORATION DATORTEKNIK Y DATORTEKNIK D
LABORATION DATORTEKNIK Y DATORTEKNIK D Avbrottsprogrammering på M68008 Version: 3.2 203 (OVA) Namn och personnummer Godkänd Till laboranten Inledning Syftet med laborationen är först att ge övning i avbrottsprogrammering
Läs merGU / Chalmers Campus Lindholmen Tentamen Programutveckling LEU 482 / TIG167
GU / Chalmers Campus Lindholmen Tentamen Programutveckling 2016-01-13 LEU 482 / TIG167 Examinator: Henrik Sandklef (0700-909363) Tid för tentamen: 2016-01-13, 08.30 12.30 Ansvarig lärare: Henrik Sandklef,
Läs merÖ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 merLab5 för prgmedcl04 Grafik
Lab5 för prgmedcl04 Grafik Viktigt läs detta först:den här labblydelsen är ganska lång, detta betyder inte att labben tar lång tid.en hel del av lydelsen är anvisning om hur man går tillväga för att kunna
Läs merInledning. Vad är ett datorprogram, egentligen? Olika språk. Problemlösning och algoritmer. 1DV433 Strukturerad programmering med C Mats Loock
Inledning Vad är ett datorprogram, egentligen? Olika språk Problemlösning och algoritmer 1 (14) Varför använda en dator? Genom att variera de program som styr datorn kan den användas för olika uppgifter.
Läs merMaskinorienterad 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 merDatorarkitektur 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
Läs merAnvändarhandledning Version 1.2
Användarhandledning Version 1.2 Innehåll Bakgrund... 2 Börja programmera i Xtat... 3 Allmänna tips... 3 Grunderna... 3 Kommentarer i språket... 4 Variabler... 4 Matematik... 5 Arrayer... 5 på skärmen...
Läs merDigitalt lärande och programmering i klassrummet
Stockholm 2018-02-14 14 februari 2018 Digitalt lärande och programmering i klassrummet Programmera i Python med micro:bit Introduktion I förra lektionen gick vi igenom grunderna i hur man programmerar
Läs merLaborationens mål är att få displayen att visa timmar, minuter och sekunder samt att kunna ställa klockan.
Namn: Laborationen godkänd: Digitala system 15 p L T H I n g e n j ö r s h ö g s k o l a n v i d C a m p u s H e l s i n g b o r g Datorprojekt, del 3 Projektlaboration 3, hantering av klocka. Laborationsuppgifter:
Läs merIntroduktion C-programmering
Introduktion C-programmering Viktor Kämpe C Historik Utvecklades först 1969 1973 av Dennis Ritchcie vid AT&T Bell Labs. Högnivå språk med kontakt mot maskinvara. Ett utav de mest använda språken. 2 C Standarder
Läs merPC-teknik, 5 p LABORATION ASSEMBLERINTRODUKTION
PC-teknik, 5 p LABORATION ASSEMBLERINTRODUKTION Laborationsansvarig: Anders Arvidsson Utskriftsdatum: 2005-08-31 Laborant(er): 1 Syfte Laborationen ska ge studenten möjlighet att genom assemblerinlägg
Läs merProgrammering av inbyggda system 2014/2015
Programmering av inbyggda system 2014/2015 Sammanfattning Kursens syften är att vara en introduktion till konstruktion av små inbyggda system och att ge en förståelse för hur imperativa styrstrukturer
Läs merDataminne 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