Tentamen med lösningsförslag
|
|
- Camilla Lindberg
- för 6 år sedan
- Visningar:
Transkript
1 Institutionen för data- och informationsteknik CHALMERS TEKNISKA HÖGSKOLA Tentamen med lösningsförslag EDA482 (EDA481) Maskinorienterad programmering D EDA487 (EDA486) Maskinorienterad programmering Z DAT017 (DAT016) Maskinorienterad programmering IT DIT151 Maskinorienterad programmering GU Lördag 2 juni 2018, kl Examinator Roger Johansson, tel Kontaktperson under tentamen: Andreas Wieden, tel Tillåtna hjälpmedel Utgåvor som distribuerats inom ramen för kursen, häftet: Quick Guide, Laborationsdator MD407 med tillbehör Inget annat än understrykningar ( överstrykningar ) får vara införda i dessa häften. Tabellverk eller miniräknare får ej användas. Lösningar anslås senast dagen efter tentamen via kursens hemsida. Granskning Tid och plats anges på kursens hemsida. Allmänt Siffror inom parentes anger full poäng på uppgiften. För full poäng krävs att: redovisningen av svar och lösningar är läslig och tydlig. Ett lösningsblad får endast innehålla redovisningsdelar som hör ihop med en uppgift. lösningen ej är onödigt komplicerad. du har motiverat dina val och ställningstaganden assemblerprogram är utformade enligt de råd och anvisningar som getts under kursen. C-program är utformade enligt de råd och anvisningar som getts under kursen. I programtexterna skall raderna dras in så att man tydligt ser programmens struktur. Betygsättning För godkänt slutbetyg på kursen fordras att både tentamen och laborationer är godkända. Maximal poäng är 50 och tentamenspoäng ger slutbetyg enligt: (EDA/DAT/LEU): 20p betyg 3 < 30p betyg 4 < 40p betyg 5 respektive (DIT): 20p betyg G < 35p VG
2 Uppgift 1 (16p) Maskinorienterad programmering - Tentamen 2 juni (7) I en utställningslokal har man installerat givare vid såväl ingång som utgång, se figuren till höger. Man behöver nu ett mikrodatorbaserat system som håller reda på hur många besökare som befinner sig i lokalen och konstruerar därför en givarkrets med gränssnitt där givarsignalerna ansluts till de åtta minst signifikanta bitarna i port E hos en MD407. De åtta mest signifikanta bitarna i porten ansluts till en sifferindikator där antalet besökare visas. För varje person som passerar en givare ettställs någon av bitarna b0 och b1, Om avbrott från givarkretsen aktiverats ettställs också b7. Bitarna kan återställas genom att en etta skrivs till b6, b2 och/eller b3. Det får förutsättas att inpassering endast kan ske genom ingång och utpassering endast kan ske genom utgång. Anm: r: biten är läsbar, w:biten är skrivbar PE0: biten ettställs vid passage av givare 1. PE1: biten ettställs vid passage av givare 2. PE2: en skrivning av 1 till bit 2 nollställer (återställer) bit 0. PE3: en skrivning av 1 till bit 3 nollställer (återställer) bit 1. PE4: biten sätts till 1 för att aktivera avbrott från givarkretsen. PE6: en skrivning av 1 till bit 6 nollställer (återställer) bit 7. PE7: om avbrott från givarkretsen är aktiverat sätts denna bit till 1 då någon av bitarna b0 eller b1 har satts av givarkretsen. Systemets avbrottstabell har relokerats till adress 0x2001C000. a) (3p) Visa en funktion void init_app(void), där port E initieras för att användas tillsammans med givarkretsen. Alla statussignaler från givarkretsen är flytande och aktivt höga. Ett internt pull-down motstånd ska därför programmeras. Styrsignalerna till givarkretsen ska vara av typen push-pull. b) (4p) Avbrottssignalen från givarkretsen ska kopplas till avbrottsystemet. Funktionen void sensor_irq(void) ska anropas vid varje avbrott. Visa en funktion void init_irq(void)där modulerna SYSCFG, EXTI och NVIC konfigureras för användning med givarkretsens avbrott. Endast de bitar som ska konfigureras får ändras, övriga ska ha kvar sina initialvärden. c) (3p) Deklarera en variabel visitors av heltalstyp och med synlighet bara i källtextfilen. Variabeln används för att ange antalet personer som för tillfället befinner sig i utställningslokalen.visa en avbrottsrutin void sensor_irq(void) som håller reda på antalet samtidiga besökare av utställningen genom att addera/subtrahera in- och utpasseringar och placera resultatet i variabeln. Observera att in- och utpassering kan ske samtidigt. Antalet besökare i utställningen ska skrivas till en visningsenhet. Utskriften ska uppdateras var tionde sekund. d) (3p) Visa hur SYSTICK kan användas för att skapa en blockerande fördröjning om 10 sekunder. Observera att kretsen inte medger så långa fördröjningar, basera därför i stället din lösning på 100ms fördröjning. e) (3p) En utskriftsenhet enligt figuren till höger visar två hexadecimala siffror. Konstruera en funktion void main(void) som visar antalet besökare (max 255 st.) av utställningen. Programmet ska först göra alla nödvändiga initieringar och därefter kontinuerligt visa antalet besökare på visningsenheten. Visningen ska uppdateras var tionde sekynd. Du får använda lösningar från tidigare uppgifter även om du inte gjort dessa.
3 Uppgift 2 (10p) Maskinorienterad programmering - Tentamen 2 juni (7) a) (4p) Följande C-funktion pack packar födelsedata (år, månad dag) i en unsigned int, enligt: year month day int pack( unsigned short year, unsigned short month, unsigned short day) unsigned int rval = year << 9; rval = month << 5; rval = day; return rval; Visa hur funktionen kan kodas i ARM v6 assemblerspråk. Använd GCC:s kompilatorkonventioner. b) (6p) Visa hur adressen till uttrycket: vs[i+8][j+2] evalueras till register R0 i ARM v6 assemblerspråk då följande deklarationer gjors på toppnivå int i,j; short vs[15][32]; Uppgift 3 (8p) För ett fält med tecken (char) kan man definiera en operation rotation vänster på fältet som en operation som placerar fältets första tecken på den sista platsen i fältet, det andra tecknet på den första platsen, det tredje tecknet på den andra platsen o.s.v. Skriv en funktion rotateleft som roterar ett fält med tecken ett godtyckligt antal steg åt vänster. Funktionen skall ha tre parametrar, en pekare till fältet som skall roteras samt två heltal (int) vilka anger fältets längd respektive antalet rotationssteg. Parametrarna ska ges i denna ordning, funktionen har inget returvärde och får inte ha sidoeffekter. Lösningen får inte använda anrop till standardfunktioner från bibliotek, koden får heller inte använda indexering utan måste implementeras med hjälp av pekartyper. Uppgift 4 (6p) a) (4p) Två DIL-strömbrytare och en 7-segments display kopplas enligt: DIL1 till Port E (0-7), DIL2 till Port E (8-15) Display till port D (0-7): Utgå från att alla portar är korrekt initierade och skriv ett program i ARM v6 assemblerspråk som kontinuerlig läser de inställda värdena från DIL-strömbrytarna, adderar dessa och skriver resultatet till displayen. Om summan är större än 255 ska FF skrivas till displayen. b) (1p) Varför behöver vi i bland använda det reserverade ordet volatile? c) (1p) När behöver vi använda så kallade include-guards?
4 Uppgift 5 (10p) Maskinorienterad programmering - Tentamen 2 juni (7) En signalenhet som omvandlar externa signaler är ansluten till en dator. Signalenheten har 512 ingångar (kanaler), numrerade från 0 till 511. Signalenheten kan bara avläsa en ingång i taget. Det avlästa värdet ges som ett positivt 24-bitars tal. Signalenheten kopplas till datorn via ett gränssnitt med följande register: offset status ctrl IRQ ER DN IE IA EN RS r r r rw rw w1 w1 4 channel 8 data 0xC w w w w w w w w w r r r r r r r r r r r r r r r r r r r r r r r r w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w Anm: r: biten är läsbar, w:biten är skrivbar, w1: biten återställs automatiskt till 0 av gränssnittet efter en skrivning 1. ivr IRQ: Interrupt Request. Om avbrott är aktiverat sätts även denna bit till 1 då någon av DN- eller ER- bitarna sätts till 1 av gränssnittet. ER: Error. Vid fel som gör att omvandlingen inte kan fullföljas, sätts denna bit till 1 av gränssnittet. DN: Done, sätts till 1 av gränssnittet då en omvandling är slutförd och dataregistret är klart för avläsning. IE: Interrupt Enable, sätts till 1 för att aktivera avbrottsmekanismen i gränssnittet. Då avbrottsmekanismen är aktiverad genereras ett avbrott till processorn via IRQ-biten i statusregistret. Avbrottet är kopplat till processorn som använder innehållet i ivr som avbrottsvektor för signalenheten. IA: Interrupt Acknowledge, då denna bit sätts till 1 återställs biten IRQ till 0 av signalenhetens gränssnitt. EN: Enable, då 1 skrivs till denna bit aktiveras signalenheten och en omvandling startas. RS: Reset, då 1 skrivs till denna bit återställs signalenheten. Detta måste göras inför varje omvandling. En omvandling börjar med att signalenheten återställs och aktiveras. Därefter kontrolleras statusregistret och då omvandlingen är klar kan resultatet läsas från dataregistret. Då signalenheten används med avbrott måste vektor registret (ivr) först ha initierats med adressen till avbrottsfunktionen. a) (6p) Visa hur gränssnittet kan avbildas med en struct-typ (SIGUNIT). Signalenhetens register har placerats med start på adress 0xF i minnet. Visa också hur du definierar en konstant som en pekare (SIGUNITP) som sedan kan användas för att adressera signalenhetens olika register (ctrl, status, channel, data, ivr ). Ledning: gör först en typdefinition av funktionspekaren till en avbrottsfunktion. Visa dessutom tydliga definitioner av de enskilda bitarna som används i gränssnittet. b) (4p) Konstruera en funktion int read(unsigned short channel, unsigned int *value) som: 1. startar en omvandling från kanal channel. 2. väntar tills omvandlingen är klar. 3. om fel uppstått, returnerar funktionen värdet -1, annars returnerar funktionen värdet 0 och värdet som avlästs via signalenheten returneras via parametern value. Typer och definitioner från uppgift a) ska användas. För full poäng ska du alltså också visa hur preprocessordirektiv och typdeklarationer används för att skapa begriplig programkod samt tydligt ange i vilken typ av fil (.h, eller.c) varje lösningsdel ska placeras.
5 Lösningsförslag Uppgift 1a: Maskinorienterad programmering - Tentamen 2 juni (7) #define GPIO_E_BASE 0x /* MD407 port E */ #define GPIO_E_MODER ((volatile unsigned int *) (GPIO_D_BASE)) #define GPIO_E_OTYPER ((volatile unsigned short *) (GPIO_D_BASE+0x4)) #define GPIO_E_PUPDR ((volatile unsigned int *) (GPIO_D_BASE+0xC)) #define GPIO_E_IDR ((volatile unsigned char *) (GPIO_D_BASE+0x10)) #define GPIO_E_ODR_LOW ((volatile unsigned char *) (GPIO_D_BASE+0x14)) #define GPIO_E_ODR_HIGH ((volatile unsigned char *) (GPIO_D_BASE+0x15)) void init_app( void ) *GPIO_E_MODER = 0x ; *GPIO_E_OTYPER = 0; /* använd push/pull */ *GPIO_D_PUPDR = 0x A; /* Flytande, aktivt höga -> pull down */ Uppgift 1b: #define SYSCFG_EXTICR2 ((volatile unsigned int *) 0x C) #define EXTI_IMR ((volatile unsigned int *) 0x40013C00) #define EXTI_FTSR ((volatile unsigned int *) 0x40013C0C) #define EXTI_RTSR ((volatile unsigned int *) 0x40013C08) #define EXTI_PR ((volatile unsigned int *) 0x40013C14) #define NVIC_ISER0 ((volatile unsigned int *) 0xE000E100) void init_irq( void ) /* IRQ är ansluten till PE7, dvs. EXTI7 ska användas */ *SYSCFG_EXTICR2 &= 0x0FFF; /* PE7->EXTI7 */ *SYSCFG_EXTICR2 = 0x4000; *EXTI_IMR = (1<<7); /* aktivera avbrott EXTI7 */ *EXTI_RTSR = (1<<7); /* aktivera trigger på positiv flank */ *EXTI_FTSR &= ~(1<<7); /* deaktivera trigger på negativ flank */ *NVIC_ISER0 = (1<<23); /* aktivera avbrott i NVIC */ *( (void (**) (void)) 0x2001C09C) = sensor_irq; /* sätt avbrottsvektor */ Uppgift 1c: void sensor_irq( void ) if( *GPIO_E_IDR & 1 ) /* inpassering */ visitors++; *GPIO_E_ODR_LOW = (1<<2); if( *GPIO_E_IDR & 2 ) /* utpassering */ visitors--; *GPIO_E_ODR_LOW = (1<<3); *GPIO_E_ODR_LOW = (1<<6); *EXTI_PR = (1<<7); Uppgift 1d: #define STK_CTRL ((volatile unsigned int *)(0xE000E010)) #define STK_LOAD ((volatile unsigned int *)(0xE000E014)) #define STK_VAL ((volatile unsigned int *)(0xE000E018)) void delay10sec( void ) for( int i = 0; i < 100; i++) /* SystemCoreClock = */ *STK_CTRL = 0; *STK_LOAD = ( ( ) -1 ); *STK_VAL = 0; *STK_CTRL = 5; while( (*SysTickCtrl & 0x10000 )== 0 ); *STK_CTRL = 0; Uppgift 1e: static unsigned int visitors; void main( void ) visitors = 0; init_app(); init_irq(); while(1) *GPIO_E_ODR_HIGH = (unsigned char) visitors; delay_10sec();
6 Uppgift 2a: pack: LSL R0 <- year<<9; LSL R1 <- month<<5 ORR R0 <- (year<<9) (month<<5) ORR R0 <- (year<<9) (month<<5) day BX LR return ((year<<9) (month<<5) day) Uppgift 2b: LDR R0 <- i ADD R0 <- i+8 LSL R0 <- (i+8) * 32 LDR R1 <- j ADD R1 <- j+2 ADD R0 <- (i+8) * 32 + j+2 LSL R0 <- ((i+8) * 32 + j+2) * sizeof(short) LDD R1 <- &vs ADD R0 <- &vs + ((i+8) * 32 + j+2) * sizeof(short) Uppgift 3: void rotateleft(char *f, int l, int steps) int i char *current, *next, save; for (;steps > 0; steps--) current = next = f; next++; i = l; save = *current; /* kommer att bli det sista elementet */ while( i>1 ) /* för alla element utom det sista... */ *current++ = *next++; /* skifta element vänster */ i--; *current = save; /* sista element på plats */ Uppgift adressen till port D:s ut-dataregister till R5 LDR adressen till port E:s in-dataregister till R6 LDR R6,=0x main: LDRB R0,[R6] LDRB R1,[R6,#1] ADD R0,R0,R1 CMP R0,#255 BLE main_2 MOV R0,#0xFF main_2: STRB R0,[R5] B main Uppgift 4b: Maskinorienterad programmering - Tentamen 2 juni (7) För att undvika att kompilatorn optimerar bort skrivningar/läsningar som den tror är överflödiga. Optimeraren vet inte att en viss minnesadress är en port där skrivningar/läsningar ger sidoeffekter utanför dess synfält Uppgift 4c: Då en.c-fil inkluderar en och samma.h-fil flera gånger - tex genom andra.h-filer. Uppgift 5a: typedef void (*interrupt_function) (void); typedef struct volatile unsigned char ctrl; volatile unsigned char status; short unused0; volatile unsigned short channel; short unused1; volatile unsigned int data; volatile interrupt_function ivr; SIGUNIT; #define SIGUNITP ( ( SIGUNIT *) 0xF ) #define RS (1<<0) #define EN (1<<3) #define IA (1<<6) #define IE (1<<7) #define DN (1<<0) #define ER (1<<2) #define IRQ (1<<4)
7 Maskinorienterad programmering - Tentamen 2 juni (7) Uppgift 5b: int read ( unsigned short channel, unsigned int *result ) SIGUNITP->ctrl = RS; /* återställ signalenheten */ SIGUNITP->channel = channel; SIGUNITP->ctrl = EN; /* aktivera... */ while( (SIGUNITP->status & DN )== 0) ; /* vänta tills klar..*/ if(sigunitp->status & ER ) return -1; /* returnera kod FEL */ *result = SIGUNITP->data; /* returnera värde */ return 0; /* returnera kod OK */
Tentamen med lösningsförslag
Institutionen för data- och informationsteknik CHALMERS TEKNISKA HÖGSKOLA Tentamen med lösningsförslag EDA482 (EDA481) Maskinorienterad programmering D EDA487 (EDA486) Maskinorienterad programmering Z
Tentamen med lösningsförslag
Institutionen för data- och informationsteknik CHALMERS TEKNISKA HÖGSKOLA Tentamen med lösningsförslag DAT017 (DAT016) Maskinorienterad programmering IT EDA482 (EDA481) Maskinorienterad programmering D
Tentamen med lösningsförslag
Institutionen för data- och informationsteknik CHALMERS TEKNISKA HÖGSKOLA Tentamen med lösningsförslag DAT017 (DAT016) Maskinorienterad programmering IT EDA482 (EDA481) Maskinorienterad programmering D
Tentamen med lösningsförslag
Institutionen för data- och informationsteknik CHALMERS TEKNISKA HÖGSKOLA Tentamen med lösningsförslag DAT017 (DAT016) Maskinorienterad programmering IT EDA482 (EDA481) Maskinorienterad programmering D
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)
Tentamen med lösningsförslag
Institutionen för data- och informationsteknik CHALMERS TEKNISKA HÖGSKOLA Tentamen med lösningsförslag EDA481 Programmering av inbyggda system D EDA486 Programmering av inbyggda system Z DAT016 Programmering
Tentamen med lösningsförslag
Institutionen för data- och informationsteknik CHALMERS TEKNISKA HÖGSKOLA Tentamen med lösningsförslag EDA482 (EDA481) Maskinorienterad programmering D EDA487 (EDA486) Maskinorienterad programmering Z
(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
Tentamen med lösningsförslag
Institutionen för data- och informationsteknik CHALMERS TEKNISKA HÖGSKOLA Tentamen med lösningsförslag EDA481 Programmering av inbyggda system D EDA486 Programmering av inbyggda system Z DAT016 Programmering
Tentamen med lösningsförslag
Institutionen för data- och informationsteknik CHALMERS TEKNISKA HÖGSKOLA Tentamen med lösningsförslag LEU500 Maskinorienterad programmering Måndag 13 mars 2017, kl. 14.00-18.00 Examinator Lars Bengtsson
Assemblerprogrammering för ARM del 3
Assemblerprogrammering för ARM del 3 Ur innehållet Fält och sammansatta typer (poster) Pekarvariabler och pekarkonstanter Pekararitmetik, operationer på fält Läsanvisningar: Arbetsbok kap 2 Quick-guide,
Tentamen med lösningsförslag
Institutionen för data- och informationsteknik CHALMERS TEKNISKA HÖGSKOLA Tentamen med lösningsförslag LEU500 Maskinorienterad programmering Måndag 16 mars 2015, 14.00-18.00 Examinator Roger Johansson,
Tentamen med lösningsförslag
Institutionen för data- och informationsteknik CHALMERS TEKNISKA HÖGSKOLA Tentamen med lösningsförslag DAT017 Maskinorienterad programmering IT DIT151 Maskinorienterad programmering GU EDA481 Programmering
Tentamen med lösningsförslag
Institutionen för data- och informationsteknik CHALMERS TEKNISKA HÖGSKOLA Tentamen med lösningsförslag EDA482 Maskinorienterad programmering D EDA487 Maskinorienterad programmering Z DAT017 Maskinorienterad
Tentamen med lösningsförslag
Institutionen för data- och informationsteknik CHALMERS TEKNISKA HÖGSKOLA Tentamen med lösningsförslag EDA481 Programmering av inbyggda system D EDA486 Programmering av inbyggda system Z DAT016 Programmering
Demonstration och konsultation Arbetsbokens avsnitt 7 Händelsestyrt processbyte Förberedande inför laboration 4
Avbrott Demonstration och konsultation Arbetsbokens avsnitt 7 Händelsestyrt processbyte Förberedande inför laboration 4 Demonstrationsövning 5 1 Arbetsbok avsnitt 7: Undantag, avbrott - Uppgift 41 + enable_interrupt
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
Tentamen med lösningsförslag
Institutionen för data- och informationsteknik CHALMERS TEKNISKA HÖGSKOLA Tentamen med lösningsförslag DAT017 Maskinorienterad programmering IT DIT151 Maskinorienterad programmering GU EDA481 Programmering
Tentamen med lösningsförslag
Institutionen för data- och informationsteknik CHALMERS TEKNISKA HÖGSKOLA Tentamen med lösningsförslag EDA481 Programmering av inbyggda system D EDA486 Programmering av inbyggda system Z DAT016 Programmering
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
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
Tentamen med lösningsförslag
Institutionen för data- och informationsteknik CHALMERS TEKNISKA HÖGSKOLA Tentamen med lösningsförslag Programmering av inbyggda system Exempel 2 Examinator Roger Johansson, tel. 772 57 29 Kontaktpersoner
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"
Tentamen med lösningsförslag
Institutionen för data- och informationsteknik CHALMERS TEKNISKA HÖGSKOLA Tentamen med lösningsförslag EDA482 Programmering av inbyggda system D EDA487 Programmering av inbyggda system Z DAT017 Maskinorienterad
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
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
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
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
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
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
Enkla datatyper minne
Enkla datatyper minne 143.56 sant Sonja A falskt 18 1999-10-29 Bertil Gralvik, KTH Ingenjörsskolan 1 Addera två tal Algoritmen Summera tal Mata in två tal Beräkna Skriv ut resultat Mata in tal 1 Mata in
Ulf Assarsson. Grundläggande C-programmering del 2 Pekare och Arrayer. Läromoment:
Grundläggande C-programmering del 2 Pekare och Arrayer Ulf Assarsson Läromoment: Pekare Absolutadressering (portar): typedef, volafle, #define Arrayer av pekare, arrayer av arrayer Hemuppgi9er: v2. Föregående
LEU240 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
Assemblerprogrammering för ARM del 1
Assemblerprogrammering för ARM del 1 Ur innehållet: Ordlängder och heltalstyper i C Variabeldeklarationer Programkonstruktioner Tilldelningar Uttrycksevaluering Ovillkorliga programflöden Funktion med
Grundläggande C-programmering del 2 Pekare och Arrayer. Ulf Assarsson
Grundläggande C-programmering del 2 Pekare och Arrayer Ulf Assarsson Läromoment: Pekare Absolutadressering (portar): typedef, volatile, #define Arrayer av pekare, arrayer av arrayer Hemuppgifter: v2. Föregående
EDA480/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
Grundläggande C-programmering del 2 Pekare och Arrayer. Ulf Assarsson
Grundläggande C-programmering del 2 Pekare och Arrayer Ulf Assarsson Läromoment: Pekare Absolutadressering (portar): typedef, volatile, #define Arrayer av pekare, arrayer av arrayer Hemuppgifter: v2. Föregående
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
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.
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
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
Maskinorienterad 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
Assemblerprogrammering för ARM del 1
Assemblerprogrammering för ARM del 1 Ur innehållet: Assemblerspråk Ordlängder och heltalstyper i C Variabeldeklarationer Programkonstruktioner Tilldelningar Uttrycksevaluering Ovillkorliga programflöden
Tentamen med lösningsförslag
Institutionen för data- och informationsteknik CHALMERS TEKNISKA HÖGSKOLA Tentamen med lösningsförslag Programmering av inbyggda system Exempel 1 Examinator Roger Johansson, tel. 772 57 29 Kontaktpersoner
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
Tentamen med lösningsförslag
Institutionen för data- och informationsteknik CHALMERS TEKNISKA HÖGSKOLA Tentamen med lösningsförslag EDA481 Programmering av inbyggda system D EDA486 Programmering av inbyggda system Z DAT016 Programmering
Att 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
*Pekarvärden *Pekarvariabler & *
*Pekarvärden *Pekarvariabler & * Motivering Pekare är ett fundamentalt koncept i C (och C++) Multipla returvärden från funktioner. Arrayer hanteras via pekare Dynamiskt minne (kommer i slutet av kursen)
Agenda. 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
Tentamen med lösningsförslag
Institutionen för data- och informationsteknik CHALMERS TEKNISKA HÖGSKOLA Tentamen med lösningsförslag LEU500 Maskinorienterad programmering, DAI,EI,MEI Fredag 19 augusti 2016, kl. 8.30-12.30 Examinator
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
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
TENTAMEN I PROGRAMMERING. På tentamen ges graderade betyg:. 3:a 24 poäng, 4:a 36 poäng och 5:a 48 poäng
TENTAMEN I PROGRAMMERING Ansvarig: Jan Skansholm, tel 7721012 Betygsgränser: Hjälpmedel: Sammanlagt maximalt 60 poäng. På tentamen ges graderade betyg:. 3:a 24 poäng, 4:a 36 poäng och 5:a 48 poäng Skansholm,
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
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ö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
Datatyper och kontrollstrukturer. Skansholm: Kapitel 2) De åtta primitiva typerna. Typ Innehåll Defaultvärde Storlek
De åtta primitiva typerna Java, datatyper, kontrollstrukturer Skansholm: Kapitel 2) Uppsala Universitet 11 mars 2005 Typ Innehåll Defaultvärde Storlek boolean true, false false 1 bit char Tecken \u000
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
Skriv i mån av plats dina lösningar direkt i tentamen. Skriv ditt kodnummer längst upp på varje blad.
5(16) Tentamen på kurserna Programmeringsteknik med C och Matlab Programmering i C Tid: 2/11-11, kl. 9-13 Lärare: Jonny Pettersson Totalt: 60 poäng Betyg 3: 30 poäng Betyg 4: 39 poäng Betyg 5: 48 poäng
Johan 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
Tentamen i Programmering
LUNDS TEKNISKA HÖGSKOLA 1(5) Institutionen för datavetenskap Tentamen i Programmering EDAA65/EDA501/EDAA20 M MD W BK L 2018 05 30, 8.00 13.00 Preliminärt ger uppgifterna 7 + 14 + 6 + 9 + 4 = 40 poäng.
Tentamen *:58/ID100V Programmering i C Exempel 3
DSV Tentamen *:58/ID100V Sid 1(5) Tentamen *:58/ID100V Programmering i C Exempel 3 Denna tentamen består av fyra uppgifter som tillsammans kan de ge maximalt 22 poäng. För godkänt resultat krävs minst
Styrteknik: MELSEC FX och numeriska värden
PLC2C:1 MELSEC FX I kursen styrteknik används styrsystemet FX1S som är ett litet system i MELSEC FX-serien. Vår version av FX1S har endast digitala in- och utgångar men oftast finns det både digitala och
Tentamen i. för D1 m fl, även distanskursen. lördag 26 februari 2011
1 of 7 Örebro universitet Akademin för naturvetenskap och teknik Thomas Padron-McCarthy (thomas.padron-mccarthy@oru.se) Tentamen i Programmering grundkurs och Programmering C för D1 m fl, även distanskursen
Programmering 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
Ö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
Seriekommunikation. Ur innehållet: Nätverkstopologier Nätverksprotokoll Asynkron/synkron seriell överföring Programmering av USART-krets
Seriekommunikation Ur innehållet: Nätverkstopologier Nätverksprotokoll Asynkron/synkron seriell överföring Programmering av USART-krets Läsanvisningar: Arbetsbok kapitel 7 Seriekommunikation 1 Parallell
Programmera 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
Tentamen. EDA432 Digital- och datorteknik, It DIT790 Digital- och datorteknik, GU. Onsdag 12 Januari 2011, kl
Institutionen för data- och informationsteknik CHALMERS TEKNISKA HÖGSKOLA Tentamen EDA432 Digital- och datorteknik, It DIT790 Digital- och datorteknik, GU Onsdag 12 Januari 2011, kl. 14.00-18.00 Examinatorer
Datorprojekt, 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
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
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
Programmering, grundkurs, 8.0 hp HI1024, HI1900 etc., Tentamen TEN1. Måndagen den 10 januari 2011,
Programmering, grundkurs, 8.0 hp HI1024, HI1900 etc., Tentamen TEN1 Måndagen den 10 januari 2011, 8.15 12.15 Tentamen består av två delar, del A och del B. Del A innehåller 10 kryssfrågor på olika teman
Ö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
Tentamen med lösningsförslag
Institutionen för data- och informationsteknik CHALMERS TEKNISKA HÖGSKOLA Tentamen med lösningsförslag EDA481 Programmering av inbyggda system D EDA486 Programmering av inbyggda system Z DIT152 Programmering
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
LEU500-Maskinorienterad programmering LP3-2016/2017
LEU500- LP3-2016/2017 Sammanfattning Ur innehållet: Vi rekapitulerar kursens syften Vi repeterar kursens lärandemål Vi granskar utförandet av examination Vi följer upp föregående års kursvärdering Sammanfattning
Högskolan Dalarna sid 1 av 7 DI-institutionen Hans-Edy Mårtensson Sten Sundin
Högskolan Dalarna sid 1 av 7 DI-institutionen Hans-Edy Mårtensson Sten Sundin TENTAMEN I IKB007 INTERNETPROGRAMMERING MED JAVA, 5p för SY2 2001-03-16, kl 14.00-18.00 Hjälpmedel: Inga hjälpmedel är tillåtna
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,
Maskinorienterad programmering, IT2
Maskinorienterad programmering, IT2 Laboration nr 5 C-programmering Prioritetskö Förberedelser Läs noga igenom uppgifterna så att du förstår vad du skall göra och hur problemen skall lösas. Gör en skiss
Tentamen. EDA485 Maskinorienterad programmering Z DAT015 Maskinorienterad programmering IT. Tisdag xx yyyy 2006, kl. 8.30-12.
EDA485 Maskinorienterad programmering Z DAT015 Maskinorienterad programmering IT Tentamen Tisdag xx yyyy 2006, kl. 8.30-12.30 i V-salar Examinatorer Rolf Snedsböl, tel. 772 1665 Jan Skansholm, tel. 772
Programmering C: Tentamen of 5 Prioritet och associativitet hos operatorerna i C De viktigaste operatorerna: Prioritet Kategori Operator
Programmering C: Tentamen 2008-05-31 1 of 5 Örebro universitet Institutionen för teknik Thomas Padron-McCarthy (Thomas.Padron-McCarthy@tech.oru.se) Tentamen i Programmering grundkurs och Programmering
Elektroteknik 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
Studera 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:
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
OBJEKTORIENTERAD PROGRAMVARUUTVECKLING. Övningstentamen 1
Institutionen för Data- och informationsteknik JSk TENTAMEN OBJEKTORIENTERAD PROGRAMVARUUTVECKLING Övningstentamen 1 OBS! Det kan finnas kurser med samma eller liknande namn på olika utbildningslinjer.
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,
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
HI1024, Programmering, grundkurs, 8hp KTH STH TENTAMEN. HI1024:TEN2 - Praktisk tentamen Tid: Fredagen den 21 oktober 2011,
KTH STH TENTAMEN HI1024:TEN2 - Praktisk tentamen Tid: Fredagen den 21 oktober 2011, 8.15-13.15 Gamla kurskoder: HI1900, 6E2950, etc. Examinator: Johnny Panrike Rättande lärare: Nicklas Brandefelt, Johnny
Ö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
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
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ösningar till tentauppgifterna sätts ut på kurssidan på nätet idag kl 19. Omtentamen i Programmering C, 5p, fristående, kväll, 040110.
1(8) ÖREBRO UNIVERSITET INSTITUTIONEN FÖR TEKNIK Lösningar till tentauppgifterna sätts ut på kurssidan på nätet idag kl 19. Denna tenta kommer att vara färdigrättad On 14/1-04 och kan då hämtas på mitt
6 Lågnivåprogrammering
6 Lågnivåprogrammering När språket C konstruerades hade man som en av målsättningarna att språket skulle kunna hantera programmering på lågnivå. Med lågnivå menas det som man tidigare behövt använda assemblerprogrammering
Tentamen i. Programmering i språket C
1 of 6 Örebro universitet Akademin för naturvetenskap och teknik Thomas Padron-McCarthy (thomas.padron-mccarthy@oru.se) Tentamen i Programmering i språket C för D1 m fl, även distanskursen lördag 25 februari
Demonstration och konsultation Arbetsbokens avsnitt 5 och 6 LCD Grafisk display Introduktion till laboration 3
LCD Display och Grafik Demonstration och konsultation Arbetsbokens avsnitt 5 och 6 LCD Grafisk display Introduktion till laboration 3 Målsättning: Efter lektionen ska alla självständigt kunna slutföra
Programmering av inbyggda system. Kodningskonventioner. Viktor Kämpe
Kodningskonventioner Viktor Kämpe Varför kodningskonventioner? Förståelse för Skillnaden mellan lokala/globala variabler. Funktionsargument. Returvärde. Möjliggör Mix av assembler och C. Kodningskonventioner/VK
Maskinorienterad programmering
Institutionen för data- och informationsteknik Avdelningen för datorteknik TENTAMEN KURSNAMN Maskinorienterad programmering PROGRAM: Dataingenjör och elektroingenjör åk 1/ lp 3 Mekatronikingenjör åk 2/
HI1024 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
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