Tentamen med lösningsförslag

Storlek: px
Starta visningen från sidan:

Download "Tentamen med lösningsförslag"

Transkript

1 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 av inbyggda system IT DIT152 Programmering av inbyggda system GU Torsdag 2 juni 2016, kl Examinator Roger Johansson, tel Kontaktperson under tentamen: Roger Johansson Tillåtna hjälpmedel Häftet Instruktionslista för CPU12 Quick Guide, Laborationsdator MD407 med tillbehör Inget annat än rättelser och understrykningar får vara införda i häftena. Du får också använda bladet: C Reference Card samt en av böckerna: Vägen till C, Bilting, Skansholm C från början Skansholm The C Programming Language, Kerninghan, Ritchie (även utskrift av PDFversionen, hel eller delvis) Endast överstrykningar och understrykningar får vara införda i boken. 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 Tentamen är anpassad för både det äldre laborationssystemet (MC12) och det nyare (MD407). Varje uppgift föregås av någon av bokstäverna A, B eller C. A: uppgift avser laborationssystem MC12. B: uppgift avser laborationssystem MD407. C: uppgift kan besvaras av alla. Du väljer själv om du vill besvara A eller B-märkta uppgifter. Du ska inte besvara både A och B-märkta uppgifter. Om din lösning innehåller både A och B- märkta uppgifter kommer de A-märkta uppgifterna att bedömas. 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 givits under kursen och tillräckligt dokumenterade. 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. 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 Programmering av inbyggda system - Tentamen 2 juni (9) Uppgift A-1 (8p) Kodningskonventioner (C/assemblerspråk) I denna uppgift ska du förutsätta samma konventioner som i XCC12, (se bilaga 1). Inledningen (parameterlistan och lokala variabler) för en funktion ser ut på följande sätt: void func( char *b, char a ) char c; char *d;... dessutom har följande C-deklarationer gjorts på toppnivå (global synlighet): char *e,f; a) Visa hur variabeldeklarationerna översätts till assemblerdirektiv för HCS12. b) Visa också hur följande funktionsanrop översätts till assemblerkod för HCS12: func( e, f ); c) Visa hur utrymme för lokala variabler skapas och aktiveringspostens utseende (dvs. stacken) i funktionen 'func'. Uppgift A-2 (6p) Assemblerprogrammering Subrutinen Outzero sköter utmatningen av styrsignaler (styrordet) till en kringenhet. Endast en av styrsignalerna kan nollställas åt gången. Porten (DrillControl) är inte läsbar så en kopia av styrordet lagras i vaiabeln DCShadow. Subrutinen Outzero specificeras av följande: ; Subrutin Outzero. ; Läser kopian av borrmaskinens styrord på adress DCShadow. Nollställer en ; av bitarna och skriver det nya styrordet tillbaka till kopian ; DCShadow samt till utporten DrillControl. ; Biten som nollställs ges av innehållet i B-registret (0-7) vid anrop. ; Om (B) > 7 utförs ingenting. ; Anrop: LDAB #bitnummer ; JSR Outzero ; Bitnumrering framgår av följande: b7 b6 b5 b4 b3 b2 b1 b Uppgift A-3 (8p) In och utmatning beskriven i C I denna uppgift ska du bland annat demonstrera hur absolutadressering utförs i C. För full poäng ska du visa hur preprocessordirektiv och ev. typdeklarationer används för att skapa begriplig programkod. Två 8-bitars strömbrytare, är anslutna till adresserna 0x600, 0x601 och två displayenheter som var och en visar en byte i form av två hexadecimala siffror är anslutna till adresserna 0x400 och 0x401 i ett MC12 mikrodatorsystem. Konstruera en funktion void DivModHex( void ) som läser de båda strömbrytarnas inställda värden. Om värdet på adress 0x601 är noll ska FF visas på båda displayenheter. Om värdet på adress 0x601 är skilt från noll ska resultatet från heltalsdivisionen mellan värden på adress 0x600 och 0x601 visas på displayindikator med adress 0x400 och resultatet från restdivisionen av samma tal visas på indikator med adress 0x401. Uppgift A-4 (6p) Avbrott, HCS12 Redogör för hur avbrott går till i ett HCS12-system, med en yttre enhet ansluten till IRQ-ingången på processorn. Ditt svar skall bland annat innehålla en övergripande beskrivning av vad avbrott är och hur det fungerar en beskrivning av de olika programrutiner som är förknippade med avbrott (eventuellt pseudokod / assembler)

3 Uppgift B-1 (10p) En ljusdiod har anslutits till en pinne hos port D enligt figuren till höger. Programmering av inbyggda system - Tentamen 2 juni (9) Skriv ett program, i C, som kontinuerligt tänder dioden under en halv sekund och därefter släcker den under en halv sekund. Din lösning ska fördelas på följande deluppgifter: a) Visa hur SysTick kan användas för att skapa en (blockerande) fördröjning om 1ms, med funktionen void delay_1ms( void);. Systemets klockfrekvens är 168 MHz. (6p) b) Skriv en funktion void init_app( void ); som sätter upp port D, bit 0 som utsignal, pushpull. Övriga inställningar i porten ska behållas, dvs. får inte ändras av initieringen. (2p). c) Skriv huvudprogrammet som får dioden att blinka. Du kan använda delay_1ms() och init_app() även om du inte besvarat a) och/eller b). (2p) Uppgift B-2 (6p) 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): Skriv ett program i ARM/Thumb assemblerspråk som: Initierar portar D och E. 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. Uppgift B-3 (8p) Förbered en enkel applikation som använder PE2 hos MD407 som avbrottsingång. Beskriv initieringsfunktioner och avbrottshantering, dvs. färdigställ följande: void irq_handler ( void ) Om avbrott från EXTI2: kvittera avbrott från EXTI2 void enable_interrupt( void ) Nollställ processorns avbrottsmask void app_init ( void ) Koppla PE2 till avbrottslina EXTI2; Konfigurera EXTI2 för att generera avbrott; Konfigurera för avbrott på negativ flank Sätt upp avbrottsvektor Konfigurera de bitar i NVIC som kontrollerar den avbrottslina som EXTI2 kopplats till Uppgift B-4 (4p) Visa hur en GPIO-modul kan beskrivas med en sammansatt datatyp struct, i C.

4 Programmering av inbyggda system - Tentamen 2 juni (9) Uppgift C-5 (6p) Programmering med pekare Skriv C-funktionen char *strrchr(const char *str, int c). Funktionen ingår i standard C biblioteket och specificeras av följande: Description: The C library function char *strrchr(const char *str, int c) searches for the last occurrence of the character c (an unsigned char) in the string pointed to, by the argument str. Declaration: Following is the declaration for strrchr() function. char *strrchr(const char *str, int c) Parameters str -- This is the C string. c -- This is the character to be located. It is passed as its int promotion, but it is internally converted back to char. Return Value: This function returns a pointer to the last occurrence of character in str. If the value is not found, the function returns a null pointer. Du får inte använda dig av indexering, utan måste utnyttja pekare. Du får inte anropa någon annan standardfunktion. Du måste alltså skriva all kod själv. Uppgift C-6 (16p) Maskinnära programmering i C a) Varför behöver vi i bland använda det reserverade ordet volatile? (2p) b) När behöver vi använda så kallade include-guards? (2p) c) Ange 2D-index för talvärdet 10 i följande deklaration. (1p) int arrayofarrays[3][4] = 1,2,3,4, 5,6,7,8, 9,10,11,12 ; d) En signalenhet som läser externa signaler är ansluten till en dator. Signalenheten har 64 ingångar (kanaler), numrerade från 0 till 63. Signalenheten kan bara avläsa en ingång i taget. Det avlästa värdet ges som ett positivt 16-bitars tal. Signalenheten kopplas till datorn via ett dataregister och ett styrregister. Dessa register består båda av 16-bitar och de har de oktala adresserna resp Dataregistret innehåller det avlästa värdet. Styrregistret används för att initiera avläsningar och kontrollera signalenhetens tillstånd. Styrregistret innehåller följande bitar: b 15 b 14 b 13 b 12 b 11 b 10 b 9 b 8 b 7 b 6 b 5 b 4 b 3 b 2 b 1 b 0 Channel number Error Done Start b 15 b 14 b 13 b 12 b 11 b 10 b 9 b 8 b 7 b 6 b 5 b 4 b 3 b 2 b 1 b 0 Bit Namn Användning 0 start När en etta skrivs i detta startas en avläsning 7 Done Skall sättas till 0 före avläsningen. Sätts automatiskt till 1 när avläsningen är klar Channel number Här anger man vilken av de 64 ingångarna som skall avläsas. 15 Error Sätts till 1 av signalenheten om avläsningen misslyckades. När man skriver i styrregistret måste man skriva alla 16-bitarna på en gång. Skriv en modul (med en.h fil: sig_reader.h och en.c fil: sig_reader.c) som innehåller två C-funktioner, sig_read, som initierar avläsning och sig_get_value som ger det avlästa värdet som resultat. Du måste också skriva de definitioner av typer och portar som behövs. Dessa definitioner ska placeras i headerfilen. Funktionen sig_read skall som parameter få numret på den ingång som skall avläsas. Detta värde skall ligga i intervallet 0 till 63. Om ett felaktigt värde ges skall ingen avläsning initieras. Resultattypen skall vara void. Funktionen sig_get_value skall ge värdet -1 om avläsningen ännu inte är klar och värdet -9 om avläsningen misslyckades. Dessa två värden skall definieras som makron med namnen BUSY resp. ERROR i.h filen så att det anropande programmet kan använda dessa.

5 Programmering av inbyggda system - Tentamen 2 juni (9) Bilaga 1: Kompilatorkonvention XCC12: Parametrar överförs till en funktion via stacken och den anropande funktionen återställer stacken efter funktionsanropet. Då parametrarna placeras på stacken bearbetas parameterlistan från höger till vänster. Lokala variabler översätts i den ordning de påträffas i källtexten. Prolog kallas den kod som reserverar utrymme för lokala variabler. Epilog kallas den kod som återställer (återlämnar) utrymme för lokala variabler. Den del av stacken som används för parametrar och lokala variabler kallas aktiveringspost. Beroende på datatyp används för returparameter HC12:s register enligt följande tabell: Storlek Benämning C-typ Register 8 bitar byte char B 16 bitar word short int och pekartyp D 32 bitar long float long int float Y/D Bilaga 2: Assemblerdirektiv för MC68HC12. Assemblerspråket använder sig av mnemoniska beteckningar som tillverkaren Freescale specificerat för maskininstruktioner och instruktioner till assemblatorn, s.k. pseudoinstruktioner eller assemblerdirektiv. Pseudoinstruktionerna framgår av följande tabell: Direktiv Förklaring ORG N Placerar den efterföljande koden med början på adress N (ORG för ORiGin = ursprung) L: RMB N Avsätter N bytes i följd i minnet (utan att ge dem värden), så att programmet kan använda dem. Följden placeras med början på adress L. (RMB för Reserve Memory Bytes) L: EQU N Ger label L konstantvärdet N (EQU för EQUates = beräknas till) L: FCB N1,N2.. Avsätter i följd i minnet en byte för varje argument. Respektive byte ges konstantvärdet N1, N2 etc. Följden placeras med början på adress L. (FCB för Form Constant Byte) L: FDB N1,N2.. Avsätter i följd i minnet ett bytepar (två bytes) för varje argument. Respektive bytepar ges konstantvärdet N1, N2 etc. Följden placeras med början på adress L. (FDB för Form Double Byte) L: FCS "ABC" Avsätter en följd av bytes i minnet, en för varje tecken i teckensträngen "ABC". Respektive byte ges ASCII-värdet för A, B, C etc. Följden placeras med början på adress L. (FCS för Form Caracter String) Bilaga 3: Assemblerdirektiv för ST32F407. Direktiv Förklaring L:.SPACE N Avsätter N bytes i följd i minnet (utan att ge dem värden), så att programmet kan använda dem. Följden placeras med början på adress L. L:.BYTE N1,N2.. Avsätter i följd i minnet en byte för varje argument. Respektive byte ges konstantvärdet N1, N2 etc. Följden placeras med början på adress L. L:.HWORD N1,N2.. Avsätter i följd i minnet ett 16 bitars ord för varje argument. Respektive ord ges konstantvärdet N1, N2 etc. Följden placeras med början på adress L. L:.WORD N1,N2.. Avsätter i följd i minnet ett 32 bitars ord för varje argument. Respektive ord ges konstantvärdet N1, N2 etc. Följden placeras med början på adress L..ALIGN Garanterar att påföljande adress är jämnt delbar med 4 ( word aligned )

6 Lösningsförslag Uppgift A-1: a) _e RMB 2 _f RMB 1 Programmering av inbyggda system - Tentamen 2 juni (9) b) LDAB PSHB LDD PSHD JSR LEAS _f _e _func 3,SP c) LEAS -3,SP 7,SP _a _b ökande adress 5,SP PC 2,SP 0,SP _c _d SP Uppgift A-2: ; Bitmask för bitnummer 0-7 BitMask FCB 1,2,4,8,$10,$20,$40,$80 Outzero: CMPB #7 BHI Outzero_Exit PSHA PSHX LDX #BitMask LDAA B,X COMA ; Denna bit ska nollställas... ANDA DCShadow STAA DCShadow STAA DrillControl PULX PULA Outzero_Exit: RTS Uppgift A-3: typedef unsigned char *port8ptr; #define ML4OUT_ADR1 0x400 #define ML4OUT_ADR2 0x401 #define ML4IN_ADR1 0x600 #define ML4IN_ADR2 0x601 #define ML4OUT1 *((port8ptr) ML4OUT_ADR1) #define ML4OUT2 *((port8ptr) ML4OUT_ADR2) #define ML4IN1 *((port8ptr) ML4IN_ADR1) #define ML4IN2 *((port8ptr) ML4IN_ADR2) void DivModHex( void ) unsigned char q,r,pa; pa = ML4IN2; if( pa!= 0 ) q = ML4IN1/pa; r = ML4IN1%pa; else q = 0xFF; r = 0xFF; ML4OUT1 = q; ML4OUT2 = r;

7 Programmering av inbyggda system - Tentamen 2 juni (9) Uppgift A-4: Ett sätt att avbryta processorns normala exekvering. Händelseförloppet vid ett avbrott. 1. Processorn vars I-flagga är nollställd känner att IRQ är aktiverad. 2. Processorn sparar alla register på stacken. I-flaggan ettställs. Därefter läser processorn startadressen för avbrottsrutinen från den aktuella avbrottsvektorn som placeras i PC 3. Avbrottsrutinen startas 4. Avbrottsrutinen avslutas med instruktionen RTI dvs 5. register innehållen återställs från stacken (Restore Status) Återhopp till huvudprogram med en nollställd I-flagga. 6. Därmed återstartas huvudprogrammet där det blev avbrutet. Programrutiner: (Initieringsrutin och Avbrottsrutin) Huvudprogram 1 Avbrott Avbrottsrutin 3 Betjäna avbrottet 4 RTI * Initieringsrutin (En generell) IrqInit --- Init eventuella variabler som ingår i avbrottsrutinen --- Nollställ avbrottsvippan LDX #IrqRutin Initiera avbrottsvektor STX $FFF2 CLI Aktivera avbrottsmekanismen * Avbrottsrutin IrqRutin: En generell avbrottsrutin IrqRutin --- Kvitteta avbrott --- Betjäna (Serva) Avbrottet rti Uppgift B-1: a) #define SysTickCtrl ((volatile unsigned int *)(0xE000E010)) #define SysTickLoad ((volatile unsigned int *)(0xE000E014)) #define SysTickVal ((volatile unsigned int *)(0xE000E018)) void delay_1ms( void ) /* SystemCoreClock = */ *SysTickCtrl = 0; *SysTickLoad = ( (168000) -1 ); *SysTickVal = 0; *SysTickCtrl = 5; while( (*SysTickCtrl & 0x10000 )== 0 ); *SysTickCtrl = 0; b) void init_app( void ) /* PORT D */ *portbargraphmoder &= ~3; /* återställ bit 0 mode */ *portbargraphmoder = 5; /* bit 0 sätts som utgång */ *portbargraphotyper &= ~1; /* återställ bit 0 typ, är nu push/pull */ c) void main(void) int i; init_app(); while(1) *portbargraphodrlow = 0; for(i=0;i<500;i++) delay_1ms(); *portbargraphodrlow = 0xFF; for(i=0;i<500;i++) delay_1ms();

8 Uppgift B-2: initiera port D0-D7 som utport LDR R0,=0x LDR R1,=0x40020C00 STR initiera port E0-E15 som inport LDR R0,=0 LDR R1,=0x STR adressen till port D:s ut-dataregister till R5 LDR adressen till port E:s in-dataregister till R6 LDR R6,=0x Programmering av inbyggda system - Tentamen 2 juni (9) main: LDRB LDRB ADD CMP BLE MOVW main_2: STRB B R0,[R6] R1,[R6,#1] R0,R0,R1 R0,#255 main_2 R0,#0xFF R0,[R5] main Uppgift B-3: #define EXTI_PR 0x40013C14 #define EXTI2_IRQ_BPOS (1<<2) #define EXTI3_IRQVEC 0x2001C060 #define NVIC_EXTI2_IRQ_BPOS (1<<8) void irq_handler ( void ) /* Om avbrott från EXTI2: kvittera avbrott från EXTI2 */ if( *((unsigned int *) EXTI_PR) & EXTI2_IRQ_BPOS ) *((unsigned int *) EXTI_PR) = EXTI2_IRQ_BPOS; void enable_interrupt( void ) /* Nollställ processorns avbrottsmask */ asm ( " cpsie i\n" /* set I=0 */ ); eller: void enable_interrupt ( void ) attribute ( ( naked ) ) ; void enable_interrupt( void ) /* Nollställ processorns avbrottsmask */ asm ( " cpsie i\n" /* set I=0 */ " bx lr\n" ); void app_init ( void ) /* Koppla PE2 till avbrottslina EXTI2 */ *((unsigned int *) SYSCFG_EXTICR1) = 0x0400; /* Konfigurera EXTI2 för att generera avbrott */ *((unsigned int *) EXTI_IMR) = EXTI2_IRQ_BPOS; /* Konfigurera för avbrott på negativ flank */ *((unsigned int *) EXTI_FTSR) = EXTI2_IRQ_BPOS; /* Sätt upp avbrottsvektor */ *((void (**)(void) ) EXTI2_IRQVEC ) = irq_handler; /* Konfigurera den bit i NVIC som kontrollerar den avbrottslina som EXTI2 kopplats till */ *((unsigned int *) NVIC_ISER0) = NVIC_EXTI3_IRQ_BPOS;

9 Uppgift B-4: Programmering av inbyggda system - Tentamen 2 juni (9) typedef struct _gpio volatile unsigned int moder; volatile unsigned int otyper; // +0x4 volatile unsigned int ospeedr; // +0x8 volatile unsigned int pupdr; // +0xc volatile unsigned int idr; // +0x10 volatile unsigned int odr; // +0x14 volatile unsigned int bsrr; // +0x18 volatile unsigned int lckr; // +0x1C volatile unsigned int afrl; // +0x20 volatile unsigned int afrh; // +0x24 GPIO; Uppgift C-5: char *strrchr(const char *s, int c) char *result; result = (char *) 0; do if (*s == (char) c) result = s; while (*s++!= 0); return(result); Uppgift C-6 a) 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 b) Då en.c-fil inkluderar en och samma.h-fil flera gånger - tex genom andra.h-filer. c) [2][1] d) // Filen sig.h typedef unsigned short int port; typedef unsigned short int *portptr; #define SIGDATA_ADR #define SIGCTRL_ADR #define SIGDATA *((portptr) SIGDATA_ADR) #define SIGCTRL *((portptr) SIGCTRL_ADR) #define start #define done #define channel #define error 0x0001 0x0080 0x3f00 0x8000 // Filen sig_reader.h #define BUSY -1 #define ERROR -9 extern void sig_read(int channel); extern int sig_get_value(void); // Filen sig_reader.c #include "sig_reader.h" #include "sig.h" void sig_read(int chan) port shadow = 0; if (chan >= 0 && chan <= 63) shadow = start; chan <<= 8; shadow = chan; SIGCTRL = shadow; int sig_get_value(void) if (SIGCTRL & error) return ERROR; else if (SIGCTRL & done) return SIGDATA; else return BUSY;

Tentamen med lösningsförslag

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

Läs mer

Tentamen med lösningsförslag

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äs mer

Tentamen med lösningsförslag

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

Läs mer

Tentamen med lösningsförslag

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

Läs mer

Tentamen med lösningsförslag

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

Läs mer

Tentamen med lösningsförslag

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,

Läs mer

Tentamen med lösningsförslag

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

Läs mer

Tentamen med lösningsförslag

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äs mer

Tentamen med lösningsförslag

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

Läs mer

Tentamen med lösningsförslag

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

Läs mer

Tentamen med lösningsförslag

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äs mer

Tentamen. DAT015 Maskinorienterad programmering IT DIT151 Maskinorienterad programmering GU. Tisdag 15 december 2009, kl

Tentamen. DAT015 Maskinorienterad programmering IT DIT151 Maskinorienterad programmering GU. Tisdag 15 december 2009, kl Institutionen för data- och informationsteknik CHALMERS TEKNISKA HÖGSKOLA Tentamen DAT015 Maskinorienterad programmering IT DIT151 Maskinorienterad programmering GU Tisdag 15 december 2009, kl. 08.30-12.30

Läs mer

Tentamen med lösningsförslag

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

Läs mer

Tentamen med lösningsförslag

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

Läs mer

(Lösningsförslag finns sist i denna fil.)

(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 mer

Tentamen med lösningsförslag

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

Läs mer

Tentamen med lösningsförslag

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

Läs mer

Tentamen med lösningsförslag

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

Läs mer

Tentamen med lösningsförslag

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

Läs mer

Maskinorienterad programmering

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/

Läs mer

Tentamen med lösningsförslag

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

Läs mer

Tentamen med lösningsförslag

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

Läs mer

Tentamen. EDA485 Maskinorienterad programmering Z DAT015 Maskinorienterad programmering IT. Tisdag xx yyyy 2006, kl. 8.30-12.

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

Läs mer

Maskinorienterad programmering

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

Läs mer

Tentamen med lösningsförslag

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

Läs mer

Tentamen med lösningsförslag

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

Läs mer

EDA480/EDA485 - Maskinorienterad programmering, tentamen 2006-xx-xx 1(7)

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

Läs mer

LEU240 Mikrodatorsystem

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

Läs mer

Tentamen med lösningsförslag

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

Läs mer

Tentamen med lösningsförslag

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 3 Examinator Roger Johansson, tel. 772 57 29 Kontaktpersoner

Läs mer

Maskinorienterad programmering

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/

Läs mer

Maskinorienterad programmering. Mekatronikingenjör åk 2/ lp 3. Lars-Eric Arebrink. Av institutionen utgiven. Lars-Eric Arebrink

Maskinorienterad programmering. Mekatronikingenjör åk 2/ lp 3. Lars-Eric Arebrink. Av institutionen utgiven. Lars-Eric Arebrink 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/

Läs mer

Maskinorienterad programmering. Mekatronikingenjör åk 2/ lp 3. Lars-Eric Arebrink. Av institutionen utgiven. vid flera tillfällen.

Maskinorienterad programmering. Mekatronikingenjör åk 2/ lp 3. Lars-Eric Arebrink. Av institutionen utgiven. vid flera tillfällen. 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/

Läs mer

Tentamen med lösningsförslag

Tentamen med lösningsförslag Institutionen för data- och informationsteknik CHALMERS TEKNISKA HÖGSKOLA Tentamen med lösningsförslag DAT015 Maskinorienterad programmering IT DIT151 Maskinorienterad programmering GU Fredag 9 april 2010,

Läs mer

Tentamen med lösningsförslag

Tentamen med lösningsförslag Institutionen för data- och informationsteknik CHALMERS TEKNISKA HÖGSKOLA Tentamen med lösningsförslag DAT016 Programmering av inbyggda system IT DIT152 Programmering av inbyggda system GU Tisdag 17 december

Läs mer

Digital- och datorteknik

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

Läs mer

Programmering av inbyggda system. Kodningskonventioner. Viktor Kämpe

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

Läs mer

Tentamen. EDA432 Digital och datorteknik IT INN790 Digital och datorteknik GU. Måndag 23 oktober 2006, kl i V-salar

Tentamen. EDA432 Digital och datorteknik IT INN790 Digital och datorteknik GU. Måndag 23 oktober 2006, kl i V-salar EDA432 Digital och datorteknik IT INN790 Digital och datorteknik GU Tentamen Måndag 23 oktober 2006, kl. 08.30 12.30 i V-salar Examinatorer Rolf Snedsböl, tel. 772 1665 Kontaktpersoner under tentamen Som

Läs mer

Exempel på tentamen 1

Exempel på tentamen 1 Maskinorienterad programmering - har du uppnått kursmålen Exempel på tentamen Tisdag xx januari 2005, kl. 08.30-2.30 i M-salar Examinatorer Stig-Göran Larsson, tel. 772 693 Jan Skansholm, tel. 772 02 Kontaktpersoner

Läs mer

Digital- och datorteknik

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

Läs mer

Digital- och datorteknik

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

Läs mer

Tentamen med lösningsförslag

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

Läs mer

Programmering av inbyggda system 2014/2015

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

Läs mer

Assemblerprogrammering, ARM-Cortex M4 del 3

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

Läs mer

Maskinorienterad programmering

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

Läs mer

Maskinorienterad programmering

Maskinorienterad programmering Institutionen för data- och informationsteknik Avdelningen för datorteknik TENTAMEN(med svar och vissa lösningsförslag) KURSNAMN Maskinorienterad programmering PROGRAM: Dataingenjör och elektroingenjör

Läs mer

Tentamen. EDA485 Maskinorienterad programmering Z. Måndag 6 mars 2006, kl i V-salar

Tentamen. EDA485 Maskinorienterad programmering Z. Måndag 6 mars 2006, kl i V-salar EDA485 Maskinorienterad programmering Z Tentamen Måndag 6 mars 2006, kl. 14.00-18.00 i V-salar Examinatorer Rolf Snedsböl, tel. 772 1665 Jan Skansholm, tel. 772 1012 Kontaktpersoner under tentamen Som

Läs mer

Demonstration och konsultation Arbetsbokens avsnitt 7 Händelsestyrt processbyte Förberedande inför laboration 4

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

Läs mer

Grundläggande C-programmering del 2 Pekare och Arrayer. Ulf Assarsson

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

Läs mer

Extrauppgifter för CPU12

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

Läs mer

Assemblerprogrammering - fördjupning

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

Läs mer

GPIO - General Purpose Input Output

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

Läs mer

Ulf Assarsson. Grundläggande C-programmering del 2 Pekare och Arrayer. Läromoment:

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

Läs mer

Tentamen med lösningsförslag

Tentamen med lösningsförslag Institutionen för data och informationsteknik CHALMERS TEKNISKA HÖGSKOLA Tentamen med lösningsförslag DAT015 Maskinorienterad programmering IT EDA480 Maskinorienterad programmering D EDA485 Maskinorienterad

Läs mer

Grundläggande C-programmering del 2 Pekare och Arrayer. Ulf Assarsson

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

Läs mer

Programmering i maskinspråk (Maskinassemblering)

Programmering i maskinspråk (Maskinassemblering) Programmering i maskinspråk (Maskinassemblering) Programutveckling i assemblerspråk Begreppet assemblerspråk introduceras i häftet Ext-20. En del korta programavsnitt skrivs med assemblerspråk i övningsuppgifterna

Läs mer

EDA Digital och Datorteknik

EDA Digital och Datorteknik Digital och Datorteknik EDA45 200/20 EDA 45 - Digital och Datorteknik Dagens föreläsning:, Extra material Ext 8 Ur innehållet: Programmerarens bild av FLEX Instruktionsuppsättning Register åtkomliga för

Läs mer

Assemblerprogrammering för ARM del 2

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

Läs mer

Tentamen. EDA432 Digital- och datorteknik, It DIT790 Digital- och datorteknik, GU. Onsdag 12 Januari 2011, kl

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

Läs mer

Tentamen. DAT015 Maskinorienterad programmering IT. Fredag 21 april 2006, kl i V-salar

Tentamen. DAT015 Maskinorienterad programmering IT. Fredag 21 april 2006, kl i V-salar DAT015 Maskinorienterad programmering IT Tentamen Fredag 21 april 2006, kl. 14.00-18.00 i V-salar Examinatorer Rolf Snedsböl, tel. 0734 30 93 79 Jan Skansholm, tel. 0707 16 32 30 Kontaktpersoner under

Läs mer

Digital- och datorteknik. Mekatronik-, data- och elektroingenjör Åk 1/ lp 1o2. Lars-Eric Arebrink. Av institutionen utgiven. vid flera tillfällen

Digital- och datorteknik. Mekatronik-, data- och elektroingenjör Åk 1/ lp 1o2. Lars-Eric Arebrink. Av institutionen utgiven. vid flera tillfällen Institutionen för data- och informationsteknik Avdelningen för datorteknik TENTAMEN KURSNAMN Digital- och datorteknik PROGRAM: KURSBETECKNING Mekatronik-, data- och elektroingenjör Åk / lp o2 LEU43 EXAMINATOR

Läs mer

Maskinorienterad programmering

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

Läs mer

Assemblerprogrammeringsuppgifter för FLIS-processorn

Assemblerprogrammeringsuppgifter för FLIS-processorn 1 (2013-05-02) Assemblerprogrammeringsuppgifter för FLIS-processorn 1. I simulatorn för FLISP-datorn kan man ansluta strömbrytarmodulen DIPSWITCH till en inport och sifferindikatorn 7-SEGMENT till en utport.

Läs mer

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

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

Läs mer

Fortsä'ning Pekare. Ulf Assarsson. Originalslides av Viktor Kämpe

Fortsä'ning Pekare. Ulf Assarsson. Originalslides av Viktor Kämpe Fortsä'ning Pekare Ulf Assarsson Originalslides av Viktor Kämpe Pekare och Arrayer/VK 2 Pekare och Arrayer/VK 3 Förra föreläsningen Pekare Bll data Arrayer fix storlek och adress Dynamisk minnesallokering

Läs mer

Digital- och datorteknik

Digital- och datorteknik Institutionen för data- och informationsteknik Avdelningen för datorteknik TENTAMEN KURSNAMN Digital- och datorteknik PROGRAM: KURSBETECKNING Mekatronikingenjör (samt data- och elektroingenjör) Åk / lp

Läs mer

LEU500-Maskinorienterad programmering LP3-2016/2017

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

Läs mer

Enkla datatyper minne

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

Läs mer

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

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

Läs mer

Assemblerprogrammets struktur; exempel

Assemblerprogrammets struktur; exempel Maskinorienterad Programmering 2010/11 Maskinnära programmering en introduktion Ur innehållet: Assemblatorn, assemblerspråk Datatyper Tilldelningar, l i unära och binära operationer Permanenta/tillfälliga

Läs mer

Assemblerprogrammering del 1

Assemblerprogrammering del 1 Assemblerprogrammering del 1 Dagens föreläsning behandlar: Kompendiet kapitel 9 Arbetsboken kapitel 15 Ur innehållet: Assemblerspråket Programmerarens bild Assemblering/disassemblering Funktion: Översätter

Läs mer

Programmering av inbyggda system 2012/2013. Kodningskonventioner och programbibliotek. maskinnära programmering i C och assemblerspråk

Programmering av inbyggda system 2012/2013. Kodningskonventioner och programbibliotek. maskinnära programmering i C och assemblerspråk 2012/2013 Kodningskonventioner och programbibliotek Ur innehållet: Kodningskonventioner maskinnära programmering i C och assemblerspråk Programbibliotek 32-bitars operationer med 16 bitars processor Kodningskonventioner

Läs mer

Digital- och datorteknik

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

Läs mer

Assemblerprogrammering för ARM del 3

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,

Läs mer

Avbrottshantering. Övningsuppgifter Lösningsförslag Uppgift (Reservation för diverse fel!)

Avbrottshantering. Övningsuppgifter Lösningsförslag Uppgift (Reservation för diverse fel!) Avbrottshantering Övningsuppgifter 2013 Lösningsförslag Uppgift 1-19 (eservation för diverse fel!) 1 Koppling: Q 1 Till bit 0 INPOT ÖKA A 1 /W 1 Write 8FF 16 NOLLA Write 8FFF 16 Q 2 1 Q 2 Till bit 1 INPOT

Läs mer

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?? 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 mer

Maskinorienterad Programmering 2010/11

Maskinorienterad Programmering 2010/11 Maskinorienterad Programmering 2010/11 Maskinnära programmering en introduktion Ur innehållet: Assemblatorn, assemblerspråk Datatyper Tilldelningar, l i unära och binära operationer Permanenta/tillfälliga

Läs mer

Avbrottshantering. Övningsuppgifter

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

Läs mer

Maskinorienterad programmering

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

Läs mer

Maskinorienterad Programmering LP2-2017/2018

Maskinorienterad Programmering LP2-2017/2018 Maskinorienterad Programmering LP2-2017/2018 Syften, målsättningar, kurslitteratur och genomförande Översikt av laborationer Introduktion till ARM-processorn och till laborationssystemet 1 Kursens hemsida

Läs mer

Programexempel för FLEX

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

Läs mer

Övningsuppgifter STYRNING - i Mikrodatorteknik för U2 2010

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

Läs mer

Laboration 4: Knappstuds Drivrutiner för att eliminera störningar.

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

Läs mer

Digital- och datorteknik

Digital- och datorteknik Institutionen för data- och informationsteknik Avdelningen för datorteknik TENTAMEN KRSNAMN Digital- och datorteknik PROGRAM: KRSBETECKNING EXAMINATOR Data-, elektro- och mekatronikingenjör Åk / lp och

Läs mer

Assemblerprogrammering

Assemblerprogrammering 2012-02-14 Assemblerprogrammering Övningsuppgifter 2011 Lösningar (Med reservation för diverse fel!) 1. Hur många E-klockperioder använder CPU12 (HCS12) för att köra programsekvensen nedan? ORG $1000 LDAA

Läs mer

TENTAMEN (med svar och vissa lösningar)

TENTAMEN (med svar och vissa lösningar) Institutionen för data- och informationsteknik Avdelningen för datorteknik TENTAMEN (med svar och vissa lösningar) KURSNAMN Maskinorienterad programmering PROGRAM: Dataingenjör och elektroingenjör åk 1/

Läs mer

GPIO - General Purpose Input Output

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

Läs mer

Assemblerprogrammering del 3

Assemblerprogrammering del 3 Assemblerprogrammering del 3 Dagens föreläsning behandlar: Kompendiet kapitel 9 och 10.4 Arbetsboken kapitel 16 Ur innehållet: Modularisering, subrutiner och strukturerad programutveckling (flödesdiagram)

Läs mer

Undantag, avbrott. Avsnitt 7. Undantag, avbrott

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

Läs mer

Exempel 3 på Tentamen

Exempel 3 på Tentamen Institutionen för data- och informationsteknik CHALMERS TEKNISKA HÖGSKOLA Exempel 3 på Tentamen Grundläggande datorteknik Examinator Kontaktperson under tentamen Tillåtna hjälpmedel Häfte Instruktionslista

Läs mer

Lösningar till tentamen i EIT070 Datorteknik

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

Läs mer

Digital- och datorteknik

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

Läs mer

Svar till Övning3 Datorteknik, HH vt12 Avbrott och timers

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

Läs mer

Fortsä'ning Pekare. Ulf Assarsson. Originalslides av Viktor Kämpe

Fortsä'ning Pekare. Ulf Assarsson. Originalslides av Viktor Kämpe Fortsä'ning Pekare Ulf Assarsson Originalslides av Viktor Kämpe Pekare och Arrayer/VK 2 Pekare och Arrayer/VK 3 Förra föreläsningen Pekare Bll data Arrayer fix storlek och adress Dynamisk minnesallokering

Läs mer

CHALMERS TEKNISKA HÖGSKOLA

CHALMERS TEKNISKA HÖGSKOLA Institutionen för data- och informationsteknik CHALMERS TEKNISKA HÖGSKOLA Tentamen EDA217 Grundläggande Datortekik, Z EDA433 Grundläggande Datortekik, IT EDA452 Grundläggande Datortekik, D DIT790 Digital-

Läs mer

Tentamen. EDA432 Digital- och datorteknik, IT DIT790 Digital- och datorteknik, GU. Måndag 18 Oktober 2010, kl

Tentamen. EDA432 Digital- och datorteknik, IT DIT790 Digital- och datorteknik, GU. Måndag 18 Oktober 2010, kl Institutionen för data- och informationsteknik CHALMERS TEKNISKA HÖGSKOLA Tentamen EDA432 Digital- och datorteknik, IT DIT790 Digital- och datorteknik, GU Måndag 18 Oktober 2010, kl. 8.30-12.30 Examinatorer

Läs mer

Laborationsmoment t 2 - En Borrautomat

Laborationsmoment t 2 - En Borrautomat Maskinorienterad Programmering 2/2 Laborationsmoment t 2 - En Borrautomat t Genomgång g av laborationer: Programutveckling i assembler Tangentbord för borrkommando Operatör Mikrodator Anpassnings- elektronik

Läs mer

Styrenheten 9/17/2011. Styrenheten - forts Arb s 120. LV4 Fo10. Aktivera Kursens mål: Kap 7 Blå

Styrenheten 9/17/2011. Styrenheten - forts Arb s 120. LV4 Fo10. Aktivera Kursens mål: Kap 7 Blå Aktivera Kursens mål: LV4 Fo10 Konstruera en dator mha grindar och programmera denna Aktivera Förra veckans mål: Koppla samman register och ALU till en dataväg Minnets uppbyggnad och anslutning till datavägen

Läs mer

Övning2 Datorteknik, HH vt12 - Programmering

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

Läs mer