Oppgave 5. Mikrokontroller. Gruppe GF506: Per Christian Henden

Størrelse: px
Begynne med side:

Download "Oppgave 5. Mikrokontroller. Gruppe GF506: Per Christian Henden"

Transkript

1 Oppgave 5 Mikrokontroller Gruppe GF502: Marianne Andersson Kyrre Giertsen Gruppe GF506: Per Christian Henden SIE4005 DIGITALTEKNIKK OG DATAMASKINER NTNU 2001

2

3 Mikrokontroller

4

5 Sammendrag 1. Tema Laboratorieoppgave 5 i faget Digitalteknikk og Datamaskiner gikk ut på å kort undersøke virkemåten til en mikrokontroller av 8051-familien. 2. Problemstilling Det skulle skrives Assemblykode for kommunikasjon med tilknyttede inn- og utenheter. Dette skulle gjøres på to forskjellige måter; ved polling og ved avbrudd. Deretter skulle ekvivalente rutiner i høynivåspråket C og lavnivåspråket Assembler sammenlignes. 3. Resultater Vi greide å løse alle oppgavene. Under arbeidet fant vi at C-ekvivalenten kompilert til Assembler tok opp mange flere kodelinjer. I ett tilfelle så vi at 3 C-kodelinjer vi skrev ble gjort om til 10 Assembly-kodelinjer.

6

7 Innhold 1 Innledning 2 2 Bakgrunnsteori GT-kort Tastatur /8051 mikrokontroller Registre og I/O enheter Instruksjonssett Polling og avbrudd Stakk Keil PK Arbeidsbeskrivelse Oppgave Oppgave Oppgave Resultater Oppgave Oppgave Oppgave Konkluksjon 14 6 Utstyr 15 7 Tilbakemelding 15

8

9 1 INNLEDNING 1 Innledning Oppgaven gikk ut på å programmere en 8031 mikrokontroller ved hjelp av utviklingsmiljøet Keil PK51. Programmeringsspråkene C og Assembler skulle brukes i dette arbeidet, og en sammenligning av språkene skulle gjøres. Det var nødvendig å sette seg inn i instruksjonssettet og virkemåten til 8051-familien for å gjøre oppgavene. Mikrokontrolleren var koblet til et GT-kort 1. GT-kortet hadde blant annet skjerm og tastatur. Vi hadde tre oppgaver: 1. Programmere en rutine for å lese ett tegn fra tastatur og presentere det på skjermen til GT-kortet ved å bruke polling. 2. Bruke rutinen fra oppgave 1 sammen med en avbruddsrutine i et større program. 3. Undersøke et C-program med hensyn på generert Assemblykode for gitt C-kodebit. Vi skrev inn koden på datamaskina, kompilerte, simulerte og lastet ned koden til GT- kortet for så å teste programmet. I seksjon 3 på side 8 beskrives det hvordan vi i detalj gjennomførte arbeidet. 1 Detaljer om GT-kortet og teori bak avbrudd og polling kommer i neste seksjon 2

10 2 BAKGRUNNSTEORI 2 Bakgrunnsteori 2.1 GT-kort På labben bruker vi et spesialdesignet GT-kort, avbildet på figur 1. GT-kortet inneholder disse hovedkomponentene: Xess-kort, tastatur og brytere, to typer LCDdisplay, lysdioder, inn- og ut-porter og Codec 2. Xess-kortet inneholder blant annet mikrokontrolleren (8031), som denne rapporten hovedsaklig dreier seg om. Det inneholder også FPGA 3, ram 4 og kontakter for strøm og dataoverføring fra PC. Figur 1: GT-kort 2 Coder-Decoder. Behandler lydsignal fra mikrofon og sender ut på høyttaler-utgang 3 Field Programmable Gate Array, en brikke med programmerbar logikk 4 Random Access Memory, mikrokontrollerens program lagres her 3

11 /8051 mikrokontroller 2 BAKGRUNNSTEORI Tastatur Tastaturet krever ekstra oppmerksomhet. Det er en forskjell på signalet som sendes når vi trykker på en vilkårlig tast, og symbolet som er påmerket den tasten. For eksempel gir en 7 på tastaturet signalet 8, se figur 2 og 3. Vi trenger altså å konvertere verdiene vi får fra tastaturet om vi skal behandle dem matematisk eller vise dem på et av GT-kortets LCD-skjermer. Vi realiserer dette programmeringsmessig ved å lagre en tabell over hva de forskjellige interne verdiene tilsvarer for å så gjøre oppslag i denne. Konkret bruker vi formelen adresse = startadresse + index, hvor index er den verdien vi får av å trykke på knapp nummer index og startadresse er der konverteringstabellen starter i minnet. På den utregnede adressa vil vi da finne den "riktige" verdien for tastetrykket. Figur 2: Tastaturet på GT-kortet /8051 mikrokontroller En mikrokontroller er en liten prosessor som har forskjellige inn- og ut-enheter på samme brikke, og kan programmeres til å utføre flere forskjellige funksjoner familien av mikrokontrollere er verdens mest brukte. Over halvparten av alle verdens prosessorer er av denne typen. Den ble først lansert av Intel i 1980 og er senere produsert av en rekke leverandører i ulike varianter. Vår variant heter 8031 og har den forskjellen fra 8051 at den ikke har noen ROM, som typisk brukes for lagring av program. Den består av en sentral prosesseringsenhet (CPU), intern 4

12 2 BAKGRUNNSTEORI /8051 mikrokontroller RAM (128 byte), 4 stk. 8-bits I/O-porter, en serieport for seriell overføring, to tellere, avbruddskontroll og busskontroll. Den kan adressere 64Kbyte minne og kjører på en frekvens på 6.17 Mhz Registre og I/O enheter Figur 3 på neste side er en skjemategning av GT-labkortet med eksternt minne og I/O enheter. Alle I/O-enheter må tilordnes adresser som man kan lese inn til minnet og adresser og prosessere hvis man trenger det. På samme måten kan man skrive ut til denne adressen om enheten tillater dette. I vårt tilfelle brukte vi GT-kortets tastatur som INN-enhet og syvsegment-displayet som UT-enhet. I oppgave 3 benyttet vi også LCD-displayet til utskrift. Her følger en tabell over de enkelte I/O-enhetenes adresser: Adresse (HEX) Enhet Adresse (HEX) Enhet 8000 LCD-disp. Write code 9000 Tastatur, Read 8100 LCD-disp. Write data A000 Logikk R/W 8200 LCD-disp. Read code B000 Relé, Write 8300 LCD-disp. Read data F004 7-segmentdisplay Tabell 1: adresser for I/O enheter I Assembler kan vi definere konstanter. Det forenkler koden om vi definerer IO-adressene til konstanter. For eksempel: TASTATUR EQU 09000H gjør det mulig å bruke #TASTATUR for å referere til tastaturet. Den nedre delen av det interne minnet (0x00 til 0x29) til mikrokontrolleren brukes til en rekke spesielle registre, se tabell 2 på side 7. Området 0x30 til 0x7E kan brukes til datalagring. Vanligvis vil vi lagre stakken 5 her. I vårt oppsett hadde mikrokontrolleren adgang til 32Kbyte eksternt minne på GT-kortet. Der lagret vi programmer. Den siste, øvre delen av det intene minnet (0x7F til 0xFF) brukes til en rekke spesielle registre. Dette minneområdet kalles SFR 6. De registrene vi kommer til å manipulere er gjengitt i tabell 2 på side 7. 5 Forklaring i 2.4 på side 8 6 Spesial Functions Register 5

13 /8051 mikrokontroller 2 BAKGRUNNSTEORI Figur 3: Hva mikrokontrolleren er koblet til Fordi kontrolleren bare har 8-bits registre må vi gjøre et "triks" når vi skal aksessere I/O enhetene koblet til mikrokontrolleren. Det er fordi disse har 16-bits adresser. Vi lagrer de første åtte bit-ene i ett register (DPH) og de åtte siste bitene i ett annet register (DPL). Dette sammensatte registeret er på 16bit og kalles DPTR Instruksjonssett Figur 4 på side 16 inneholder et utdrag av instruksjonssettet til 8051/8031 mikrokontrolleren. For eksempel kan instruksjoner se slik ut: MOV Rn,#01H MOV Rn,Rm ADD Rn,Rm MOVX hvor n og m er registernummer fra 0 til 7. 6

14 2 BAKGRUNNSTEORI 2.3 Polling og avbrudd Register Forklaring Adresse SP Stakkpeker 81H DPL Datapeker lav 82H DPH Datapeker høy 83H TCON Timer register 88H IE Interrupt Enable register A8H A Akkumulator E0H Tabell 2: Spesielle registre For å plassere en instruksjonssekvens et bestemt sted i minnet brukes direktivet ORG. ORG 0003H betyr at de etterfølgende instruksjonene blir plassert fra 0x003 og oppover. 2.3 Polling og avbrudd Ved polling kjører datamaskinen et program i løkke hele tiden. Den utfører kun det spesielle programmet. En ulempe med det er at vi ikke får gjort noe annet enn de spesielle handlingene inni løkka. Avbrudd, derimot, er en ordning som tilrettelegger for at utførelsen av et program kan bli avbrutt for å gjøre spesielle operasjoner. I vårt tilfelle skriver vi tall til skjermen når noen trykker på en tast kan håndtere to eksterne avbrudd. Disse er satt til INT0 og INT1. Disse avbruddene må "skrus på" før prosessoren tar hensyn til dem. Dette gjøres ved å sette bit-ene IE (interrupt enable) og TCON (timer register). Avbruddet INT0 skjer når noen trykker på tastaturet. Vi skrudde på denne funksjonaliteten ved å sette EX0 bit-et. Vi satte også IT0 i TCON registeret, slik at prosessoren skulle "lytte" på negative flanke. I IE registeret måtte bit 7 (EA - enable interrupts) settes. TCON: TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 IE: EA ET2 ES ET1 EX1 ET0 EX0 Når et avbrudd inntreffer vil mikrokontrolleren gå til en forhåndsdefinert plass i programminnet der avbruddrutinen for det aktuelle avbruddet er definert til å 7

15 2.4 Stakk 3 ARBEIDSBESKRIVELSE ligge. Avbruddet vi skal bruke (INT0) er tildelt plassen 0x03 i minnet. Neste forhåndsdefinerte avbruddsrutine er TF0 på adresse 0x0B. Det betyr at vår avbruddsrutine for INTO ikke kan ta opp mer enn 8 instruksjoner for å ikke kollidere med TF0. Instruksjonssekvensen vi skulle bruke var lengre enn dette. Dette problemet løste vi ved å legge inn et "hopp" (jump) til et annet sted i minnet for å få kjørt alle de instruksjonene vi ville. Merk: Vi kunne ha skrevet over avbruddsområdet til TF0 i dette tilfellet fordi vi ikke brukte TF0, men løsningen med hopp er mer generell. 2.4 Stakk En stakk er en LIFO 7 kø. Det er en datatype som har den egenskapen at man bare kan manipulere det øverste (siste som ble lagt på) elementet. Å legge til et element på stakken kalles en PUSH operasjon, og å ta ut det øverste elementet kalles en POP operasjon. Stakken har ingen fast plass i minnet på 8031, men stakkpekeren har fast posisjon i SFR. Vi setter stakkpekeren til adressa nederste element i stakken ligger på. Når vi legger noe på stakken må vi bruke minneadressen til elementet. For eksempel vil PUSH 82H legge DPL på stakken. 2.5 Keil PK51 På labben bruker vi et utviklingsmiljø laget av Keil Software, kalt Keil PK51, for å programmere 8031 kontrolleren. Det inneholder blant annet editor og debugger. Vi kan skrive både Assembly- og c-kode og kompilere denne til en hex-fil 8, som kan lastes ned til mikrokontrollerens minne (ekstern RAM på GT-kortet). Det er mulig å kompilere C-kode til Assembler. Debuggeren gjør det mulig å observere registre, programminne, dataminne, RAM og mer under hele kjøringen av programmet. 3 Arbeidsbeskrivelse I de følgende avsnittene beskrives det hvordan vi i detalj gjennomførte arbeidet. 7 Last In First Out 8 Fil som innholder maskinkode på binær form 8

16 3 ARBEIDSBESKRIVELSE 3.1 Oppgave Oppgave 1 Oppgave 1 gikk ut på å lage en assemblyrutine som skulle gå i en evig løkke og lese tastaturet på GT- labkortet hele tiden. Dette kalles polling. Den skulle også skrive ut verdien som ble påtrykket tastaturet til syvsegmentsdisplayet. Følgende pseudokode var gitt til oppgaven: LOOP: Les tastatur. Filtrer bort 4MSB(null ut). Beregn oppslagsadresse i konverteringstabell. Gjør oppslag. Skriv verdi til 7- segmentdisplay. Hopp til LOOP. Vi skulle altså lage en løkke som oppfylte kravsspesifikasjonene gitt i pseudokoden, og sette inn denne på gitt plass i assemblyprogrammet gitt i oppgaven. Vi begynte med å kopiere katalogen lab5 til vårt område, og åpnet prosjektet lab5_1.prj i programmet KEIL. Så åpnet vi filen LAB5_A51 i prosjektet. I denne fila fantes et mangelfullt assemblyprogramm for oppgave 1. Ved hjelp av utdraget fra instruksjonssettet til mikrokontroller 8051/ 8031 som var gitt i labheftet, lagde vi følgende assemblykode for å løse oppgaven: 1 CLR A 2 MOV DPTR, # TASTATUR 3 MOVX 4 ANL A, # 0 FH 5 ADD A, R2 6 MOV R1, A 7 MOV 8 MOV DPTR, # SYVSEGM 9 A 10 JMP LOOP Forklaring: 1. Sletter evt. innhold i akkumulatoren 2. Laster DPTR med adressa til tastaturet 9

17 3.2 Oppgave 2 3 ARBEIDSBESKRIVELSE 3. Last data fra det DPTR peker på til akkumulator 4. Logisk and med for å filtere ut de fire første bit-ene 5. Legger innholdet i register R2 til det som er i akk. og lagrer resultatet i akkumulator. 6. Laster akkumulatoren til register R1 7. Laster det som adressa lagret i R1 peker på (konvertert tastaturverdi) til akkumulator 8. Last inn adressa til syvsegmentdisplayet i DPTR 9. Skriv data fra A til minneområdet DPTR peker på (syvegmentdisplayet) Videre kompilerte vi programmet. Det oppstod ingen problemer og programmet var klart til simulering i dscope- 51. For å kunne kompilere et prosjekt må vi ha ei ini- fil som inneholder navnene til alle filene som er med i prosjektet. For å realisere dette var det satt opp i en ini- fil, som lå ferdig til bruk. Vi anga plasseringen til ini- fila, og startet dscope- 51. Se figur 5 på side 17 for et skjermbilde. I dette skjermbildet fantes et Regs (register)- vindu. Mens vi gikk stegvis gjennom programmet, observerte vi i Regs- vinduet A (akkumulator), registrene R0 tilr7, DPTR, PSW (program status register), SP (stakk peker), og hvor lang tid(hvor mange sykler) koden brukte. Når vi mente at programmet fungerte som ønsket under simulering, lastet vi det ned til GT- labkortet. Vi trykte inn ulike verdier på tastaturet, og kontrollerte at de verdiene som stod på tastaturet var de samme som ble skrevet ut på syvsegmentsdisplayet. 3.2 Oppgave 2 I oppgave 2 skulle koden fra oppgave 1 skrives om til å bli et avbruddsdrevet program. Det avbruddsdrevne programmet skulle ha et hovedprogram som initialiserer for eksternt avbrudd 0, og ellers går i en evig løkke. Man må også ha en avbruddsrutine som leser tastaturet og skriver verdien til syvsegmentsdisplayet. Vi begynte med å åpne prosjektet lab5_2.prj, og videre å åpne fila lab_2.a51 som lå i det. Først skrev vi ei subrutine for avbrudd, og deretter initialiserte for avbrudd i hovedprogrammet. Vi brukte kode fra oppgave1 for å lese fra tastatur og skrive til syvsegmentsdisplayet. 10

18 3 ARBEIDSBESKRIVELSE 3.2 Oppgave 2 1 ; a v b r u d d s v e k t o r og a v b r u d d s s u b r u t i n e 2 3 ORG 0003H 4 PUSH 0 8 2H 5 PUSH 0 8 3H 6 PUSH 0 E0H 7 JMP AVBRUDD 8 9 AVBRUDD: ; Kode f o r IO f r a oppgave CLR A 14 MOV DPTR, # TASTATUR 15 MOVX 16 ANL A, # 0 FH 17 ADD A, R2 18 MOV R1, A 19 MOV 20 MOV DPTR, # SYVSEGM 21 A POP 0 E0H 24 POP 0 8 3H 25 POP 0 8 2H RETI ; i n i t i a l i s e r i n g f o r e k s t e r n e avbrudd SETB IT0 32 SETB EA 33 SETB EX0 Forklaring: 11

19 3.3 Oppgave 3 3 ARBEIDSBESKRIVELSE 3 ORG 0003H 4 PUSH 082H 5 PUSH 083H 6 PUSH 0E0H 7 JMP AVBRUDD 9 AVBRUDD: 10 ; Koden fra oppgave 1 23 Hente DPL ut fra stakken 24 Hente DPH ut fra stakken 25 Hente akkumulator ut fra stakken 26 ; Initialisering for eksterne avbrudd 27 Returner etter avbrudd, fortsetter med å blinke lys 31 Setter på mikrokontrolleren reagerer på negativ flanke for avbrudd 32 Setter på avbrudd 33 Setter på eksternt avbrudd 0 Vi kompilerte programmet, anga som i oppgave1 plasseringa til ini- fila, og startet dscope- 51. Vi åpnet Vinduet " Interrupt System" i dscope- 51. Her krysset vi av for eksternt avbrudd 0. Se figur 6 på side 18 Nå begynte vi å gå stegvis gjennom koden, og å observere at de riktige bitene ble satt når enable for avbrudd var satt høy i assemblykoden. Nå når disse bit-ene var satt, brukte vi avkrysningsboksen IEO til å generere avbrudd under kjøringa. Mens vi nå "steppet" gjennom programmet observerte vi innholdet i akkumulator, DPTR og Rn, der n = 0?7. Når disse verdien var som forventet lastet vi hexfila samt fila lab5.bit ned til GT- kortet. Vi observerte nå at det ble skrevet ut et løpelys på den ene dioderekka på GT- kortet. Da kunne vi begynne å kontrollere at programmet virket som ønsket. Vi testet dette på samme måte som i oppgave1 ved å skrive inn verdier på tastaturet og kontrollere at de verdiene som vistes på syvsegmentsdisplayet var de samme. 3.3 Oppgave 3 I oppgave 3 skulle vi få demonstrert hvordan et program skrevet i C- kode ville bli oversatt til assemblykode. På labben begynte vi med å åpne prosjektet lab5_3.prj, og så åpne fila LAB5_3.C som lå i prosjektet. Her lå det kode for å utføre regnestykket Produkt = Tall1 * Tall2 I denne koden lå blant annet kode for lesing av tastatur og skriving til LCDdisplay, initialisering for avbrudd, selve avbruddsrutina og hovedrutina. Mikro- 12

20 4 RESULTATER kontrolleren jobber såpass fort at det kan være vanskelig for oss å følge med på det som skjer. Derfor er det laget en funksjon delay() som legger inn pauser i programmet. Det vi gjorde var å lage en funksjon som kalte opp denne funksjonen flere ganger, slik at pausen ble lengre. 1 l o n g _ d e l a y ( i n t t ) 2 while ( t > 0 ) { 3 void ( d e l a y ( ) ) ; 4 t ; 5 } Når dette var gjort kompilerte vi prosjektet i Vision. Så anga vi plasseringen til ini- fila som hørte til oppgave3, og startet dscope- 51. Her brukte vi kommandoen StepInto til å steppe en instruksjon. Da hoppet vi til hovedprogrammet og så det i Module- vinduet. I vinduet kunne vi velge om vi ville se høynivåkoden, eller lavnivåkoden eller begge deler samtidig(mixed). Vi valgte mixed, og scrollet oss fram til det punktet hvor funksjonen long_delay() ble utført. Så fant vi fram til hvor mange kodelinjer vi hadde skrevet i C, og hvor mange assemblylinjer dette tilsvarte. Videre lukket vi dscope, lastet designet ned til testbenken og prøvde multipikatoren en del ganger. Dette gjorde vi ved å skrive to tall adskilt med * inn på tastaturet, og så å skrive # som var kommandoen for å regne ut regnestykket. Vi regnet produktene om fra heksasesimale tall og kontrollerte at de stemte med de forventede produktene. 4 Resultater 4.1 Oppgave 1 Under simuleringen så vi at registrene inneholdt de rette verdiene gjennom hele programrutinen vår. Etter å ha lastet ned kompilert kode til GT-kort, fant vi at den verdien vi trykket på tastaturet viste i syvsegmentdisplayet, som det skulle. 4.2 Oppgave 2 Under simuleringen så vi at registrene inneholdt de rette verdiene gjennom hele programrutinen vår. Ved jump-instruksjonen hoppet programpekeren til rett sted i minnet. Når vi sendte et avbrudd ved å velge avbrudd INT0 på meny, så vi at programpekere flyttet seg til rett sted (0x003). Da ble vår kode for å lese fra 13

21 4.3 Oppgave 3 5 KONKLUKSJON tastatur og skrive til skjerm ble utført. Etter å ha lastet ned kompilert kode til GTkort, fant vi at den verdien vi trykket på tastaturet viste i syvsegmentdisplayet, som det skulle. I tillegg til dette blinket alle lysene i sekvens på GT-kortet. Det så ut som om blinkinga og skriving til display skjedde samtidig, men mikroprosseren byttet på oppgavene. Byttet gikk så fort at vi ikke kunne se det. 4.3 Oppgave 3 Når vi prøvde ut multiplikasjon på GT-kortet fikk vi disse resultatene: 5*5= 19 8*8= 40 8*6= 30 9*8= 48 Inn-verdi og ut-verdi er hexadesimale verdier, og er rette. I denne oppgaven observerte vi at det er mye lettere å programmere i C, enn å programmere rett i assembly-kode. Grunnen til dette er at C-kode er mye mer oversiktlig og ganske likt andre kjente programmeringsspråk. I tillegg blir det mindre å skrive. Vi skrev 3 linjer C-kode (se oppgave 3) som ble til 10 linjer assembly-kode. Man har mer kontroll når man skriver direkte i assembly- kode. Skriver man i C vil kompilatoren oversette til assembly-kode. Det er ikke sikkert at den koden kompilatoren velger er den beste. 5 Konkluksjon Gjennom arbeidet med lab5 lærte vi forskjellen på polling og avbrudd, og litt om 8051-Assembly. Vi ble også kjent med programmeringsmiljøet Keil PK51 som vi brukte i arbeidet. Ved å se på en rutine for å gange sammen to tall i C og Assembly fikk vi sammenliknet programmering i de to språkene, og sett på forskjellene i arbeidsmengde og funksjonalitet. Det oppstod ingen problemer under arbeidet med oppgaven. 14

22 7 TILBAKEMELDING 6 Utstyr GT-kort nummer 13 Microsoft Windows NT 4.0 Service Pack 6 build 1381 Bitware Uvision/5.1 versjon 1.24 Evaluation Edition Keil dscope-251/51 versjon 1.3p 7 Tilbakemelding Labben har vært grei, synes vi. Det har vært for få studasser til tider på labben. Også på forberedelsene. Det har vært svært dårlig luft på labben, og vi får hodepine av det. 15

23 7 TILBAKEMELDING Figur 4: Utdrag av instruksjonssettet til 8051/8031 mikrokontroller 16

24 7 TILBAKEMELDING Figur 5: dscope debugger 17

25 7 TILBAKEMELDING Figur 6: Interrupt vindu 18

Debugging. Tore Berg Hansen, TISIP

Debugging. Tore Berg Hansen, TISIP Debugging Tore Berg Hansen, TISIP Innhold Innledning... 1 Å kompilere og bygge et program for debugging... 1 Når debugger er i gang... 2 Symbolene i verktøylinjen... 3 Start på nytt... 3 Stopp debugging...

Detaljer

Forelesning Instruksjonstyper Kap 5.5

Forelesning Instruksjonstyper Kap 5.5 TDT4160 Datamaskiner Grunnkurs Forelesning 22.11 Instruksjonstyper Kap 5.5 Dagens tema Instruksjonstyper (5.5) Datatransport Datamanipulering Betingede hoppinstruksjoner Prosedyrekall Løkker I/O Eksempler

Detaljer

Programmeringsspråket C Del 3

Programmeringsspråket C Del 3 Programmeringsspråket C Del 3 Kjell Åge Bringsrud E-mail: kjellb@ifi.uio.no Dynamisk allokering Ofte trenger man å opprette objekter under kjøringen i tillegg til variablene. Standardfunksjonen malloc

Detaljer

Programmeringsspråket C Del 3

Programmeringsspråket C Del 3 Programmeringsspråket C Del 3 Michael Welzl E-mail: michawe@ifi.uio.no 8/25/10 inf1060 1 Dynamisk allokering Ofte trenger man å opprette objekter under kjøringen i tillegg til variablene. Standardfunksjonen

Detaljer

INF1400 Kap4rest Kombinatorisk Logikk

INF1400 Kap4rest Kombinatorisk Logikk INF4 Kap4rest Kombinatorisk Logikk Hovedpunkter Komparator Dekoder/enkoder MUX/DEMUX Kombinert adder/subtraktor ALU FIFO Stack En minimal RISC - CPU Komparator Komparator sammenligner to tall A og B 3

Detaljer

Programmeringsspråket C Del 3

Programmeringsspråket C Del 3 Programmeringsspråket C Del 3 Kjell Åge Bringsrud E-mail: kjellb@ifi.uio.no 9/1/2005 inf1060 V05 1 Dynamisk allokering Ofte trenger man å opprette objekter under kjøringen i tillegg til variablene. Standardfunksjonen

Detaljer

Programmeringsspråket C Del 3

Programmeringsspråket C Del 3 Programmeringsspråket C Del 3 Michael Welzl E-mail: michawe@ifi.uio.no 29.08.13 inf1060 1 Dynamisk allokering Ofte trenger man å opprette objekter under kjøringen i tillegg til variablene. Standardfunksjonen

Detaljer

Forelesning 5. Diverse komponenter/større system

Forelesning 5. Diverse komponenter/større system Forelesning 5 Diverse komponenter/større system Hovedpunkter Komparator Dekoder/enkoder MUX/DEMUX Kombinert adder/subtraktor ALU En minimal RISC - CPU 2 Komparator Komparator sammenligner to 4 bits tall

Detaljer

Rapport Øving 1 TDT4258 Mikrokontroller Systemdesign

Rapport Øving 1 TDT4258 Mikrokontroller Systemdesign Rapport Øving 1 TDT4258 Mikrokontroller Systemdesign Thomas L Falch Torgeir Alstad 21. februar 2010 1 Sammendrag Oppgaven i denne øvingen var å skrive et assemblyprogramm for å få knappene til å styre

Detaljer

Introduksjon til DARK assembly

Introduksjon til DARK assembly Introduksjon til DARK assembly Magnus Jahre Institutt for datateknikk og informasjonsvitenskap 2 Plan Assembly vs. Java Dark stakkmaskin Oversikt over stakkmaskinen Dark stakkmaskin eksempel Dark Load-Store

Detaljer

! Ytelsen til I/O- systemer avhenger av flere faktorer: ! De to viktigste parametrene for ytelse til I/O er:

! Ytelsen til I/O- systemer avhenger av flere faktorer: ! De to viktigste parametrene for ytelse til I/O er: Dagens temaer! Ulike kategorier input/output! Programmert! Avbruddstyrt! med polling.! Direct Memory Access (DMA)! Asynkrone vs synkrone busser! Med! Fordi! -enheter menes de enheter og mekanismer som

Detaljer

CodevisionAVR. Start CodevisionAVR. Velg Settings Terminal og sett opp kommunikasjonsparametrene som figur 1 viser. avrlab07a.doc HVE RI Arnfinn Lunde

CodevisionAVR. Start CodevisionAVR. Velg Settings Terminal og sett opp kommunikasjonsparametrene som figur 1 viser. avrlab07a.doc HVE RI Arnfinn Lunde AVR-LAB 07 Echo: Seriell I/O side 1 av 5 Hensikt I denne øvelsen benytter vi RS-232 overføring av data mellom STK-200 og vår PC. Programmet Terminalprogrammet på CodevisionAVR benyttes på PC. Karakterer

Detaljer

Innhold. 2 Kompilatorer. 3 Datamaskiner og tallsystemer. 4 Oppsummering. 1 Skjerm (monitor) 2 Hovedkort (motherboard) 3 Prosessor (CPU)

Innhold. 2 Kompilatorer. 3 Datamaskiner og tallsystemer. 4 Oppsummering. 1 Skjerm (monitor) 2 Hovedkort (motherboard) 3 Prosessor (CPU) 2 Innhold 1 Datamaskiner Prosessoren Primærminnet (RAM) Sekundærminne, cache og lagerhierarki Datamaskiner Matlab Parallell Jørn Amundsen Institutt for Datateknikk og Informasjonsvitenskap 2010-08-31 2

Detaljer

Dagens tema: Enda mer MIPS maskinkode

Dagens tema: Enda mer MIPS maskinkode Dagens tema: Enda mer MIPS maskinkode (P&H: 3.6 3.8 + 6.1 + A.6 + A.10) Pseudoinstruksjoner Flere instruksjoner Mer om funksjonskall Stakken Avhengigheter Direktiver Alt er bit! Kommunikasjon med C Ark

Detaljer

Hvorfor lære om maskinvare*?

Hvorfor lære om maskinvare*? Litt om maskinvare Hvorfor lære om maskinvare*? Hovedoppgaven til et OS er å styre maskinvare Må ha grunnleggende kjennskap til maskinvare for å forstå hvordan OS fungerer Skal bare se på grunnleggende

Detaljer

Det viktigste i en moderne datamaskin er hovedkortet («motherboard»):

Det viktigste i en moderne datamaskin er hovedkortet («motherboard»): Hovedkortet Det viktigste i en moderne datamaskin er hovedkortet («motherboard»): Data.data Stakk %EAX %ECX %EDX %EBP %ESP Prosessor Kode Minne.text Hovedkortet Grovt sett inneholder et hovedkort En prosessor

Detaljer

Dagens temaer. Fra kapittel 4 i Computer Organisation and Architecture. Kort om hurtigminne (RAM) Organisering av CPU: von Neuman-modellen

Dagens temaer. Fra kapittel 4 i Computer Organisation and Architecture. Kort om hurtigminne (RAM) Organisering av CPU: von Neuman-modellen Dagens temaer Fra kapittel 4 i Computer Organisation and Architecture Kort om hurtigminne (RAM) Organisering av CPU: von Neuman-modellen Register Transfer Language (RTL) Instruksjonseksekvering Pipelining

Detaljer

Læringsmål og pensum. https://www.youtube.com/watch? v=nkiu9yen5nc

Læringsmål og pensum. https://www.youtube.com/watch? v=nkiu9yen5nc 1 TDT4110 Informasjonsteknologi grunnkurs: Kapittel 1 Introduksjon til Programmering og Python Professor Alf Inge Wang 2 https://www.youtube.com/watch? v=nkiu9yen5nc 3 Læringsmål og pensum Mål Lære om

Detaljer

Rapport Øving 2 TDT4258 Mikrokontroller Systemdesign

Rapport Øving 2 TDT4258 Mikrokontroller Systemdesign Rapport Øving 2 TDT4258 Mikrokontroller Systemdesign Thomas L Falch Torgeir Alstad 19. mars 2010 1 Sammendrag Oppgaven i denne øvingen var å skrive et program for å generere lyd på et utviklingskort [4].

Detaljer

INF2270. Datamaskin Arkitektur

INF2270. Datamaskin Arkitektur INF2270 Datamaskin Arkitektur Hovedpunkter Von Neumann Arkitektur ALU Minne SRAM DRAM RAM Terminologi RAM Signaler Register Register overføringsspråk Von Neumann Arkitektur John von Neumann publiserte

Detaljer

Overordnet maskinarkitektur. Maskinarkitektur zoomet inn. I CPU: Kontrollenheten (CU) IT1101 Informatikk basisfag, dobbeltime 11/9

Overordnet maskinarkitektur. Maskinarkitektur zoomet inn. I CPU: Kontrollenheten (CU) IT1101 Informatikk basisfag, dobbeltime 11/9 IT1101 Informatikk basisfag, dobbeltime 11/9 Hittil: sett på representasjon av informasjon og manipulering av bits i kretser Idag: hever oss til nivået over og ser på hvordan program kjører i maskinen

Detaljer

Hvordan en prosessor arbeider, del 1

Hvordan en prosessor arbeider, del 1 Hvordan en prosessor arbeider, del 1 Læringsmål Kompilator, interpret og maskinkode CPU, registre Enkle instruksjoner: de fire regnearter Mer informasjon om temaet Internett Lokalnett (LAN) Mitt program

Detaljer

Bruk av PicoBlaze mikrokontroller i Xilinx System Generator (Matlab - Simulink)

Bruk av PicoBlaze mikrokontroller i Xilinx System Generator (Matlab - Simulink) Bruk av PicoBlaze mikrokontroller i Xilinx System Generator (Matlab - Simulink) Kristian Thorsen April 2010 T-01 Sammendrag Sammendrag På laboratoriene til Institutt for Data- og Elektroteknikk ved UiS,

Detaljer

INF2270. Input / Output (I/O)

INF2270. Input / Output (I/O) INF2270 Input / Output (I/O) Hovedpunkter Innledning til Input / Output Ulike typer I/O I/O internt i datamaskinen I/O eksternt Omid Mirmotahari 3 Input / Output En datamaskin kommuniserer med omverdenen

Detaljer

Det viktigste i en moderne datamaskin er hovedkortet («motherboard»):

Det viktigste i en moderne datamaskin er hovedkortet («motherboard»): Hovedkortet Det viktigste i en moderne datamaskin er hovedkortet («motherboard»): Hovedkortet Grovt sett inneholder et hovedkort En prosessor Minne (for både program og data) Klokke Kontrollere for periferutstyr.

Detaljer

LabVIEW seriekommunikasjon med mikrokontroller

LabVIEW seriekommunikasjon med mikrokontroller KYBERNETIKKLABORATORIET FAG: Industriell IT DATO: 08.15 OPPG.NR.: LV3 LabVIEW seriekommunikasjon med mikrokontroller Oppgave Denne oppgaven går ut på å lage et LabVIEW-program som kan kommunisere med en

Detaljer

TDT4110 Informasjonsteknologi grunnkurs: Kapittel 1 Introduksjon til Programmering og Python. Professor Alf Inge Wang

TDT4110 Informasjonsteknologi grunnkurs: Kapittel 1 Introduksjon til Programmering og Python. Professor Alf Inge Wang 2 TDT4110 Informasjonsteknologi grunnkurs: Kapittel 1 Introduksjon til Programmering og Python Professor Alf Inge Wang 3 https://www.youtube.com/watch? v=nkiu9yen5nc 4 Læringsmål og pensum Mål Lære om

Detaljer

INF2270. Input / Output (I/O)

INF2270. Input / Output (I/O) INF2270 Input / Output (I/O) Hovedpunkter Innledning til Input / Output Ulike typer I/O I/O internt i datamaskinen I/O eksternt Omid Mirmotahari 3 Input / Output En datamaskin kommuniserer med omverdenen

Detaljer

Rapport. Lab 1. Absoluttverdikrets - portkretser

Rapport. Lab 1. Absoluttverdikrets - portkretser TFE4105 Digitalteknikk og datamaskiner Rapport Lab 1 Absoluttverdikrets - portkretser av Even Wiik Thomassen Broen van Besien Gruppe 193 Lab utført: 8. september 2004 Rapport levert: 12. november 2004

Detaljer

Dark Stakkmaskin. Aritmetiske instruksjoner

Dark Stakkmaskin. Aritmetiske instruksjoner Dark Stakkmaskin Figur 1: Stakk arkitektur i Dark Dette dokumentet beskriver arkitekturen til stakkmaskina som benyttes i Dark. Figur 1 viser hvordan maskinen ser ut. Det finnes et register i prosessoren,

Detaljer

Dagens tema. Mer MIPS maskinkode. Maske-operasjoner Skift-operasjoner Lesing og skriving Pseudo-instruksjoner Mer om funksjonskall Registeroversikt

Dagens tema. Mer MIPS maskinkode. Maske-operasjoner Skift-operasjoner Lesing og skriving Pseudo-instruksjoner Mer om funksjonskall Registeroversikt Dagens tema Mer MIPS maskinkode (P&H: 4.4 + 3.6 + 3.3 + A.6 + A.10) Maske-operasjoner Skift-operasjoner Lesing og skriving Pseudo-instruksjoner Mer om funksjonskall Registeroversikt Ark 1 av 16 Forelesning

Detaljer

Oppsummering av digitalteknikkdelen

Oppsummering av digitalteknikkdelen Oppsummering av digitalteknikkdelen! Følgende hovedtemaer er gjennomgått! Boolsk Algebra! von Neuman-arkitektur! Oppbygging av CPU! Pipelining! Cache! Virtuelt minne! Interne busser 09.05. INF 1070 1 Boolsk

Detaljer

Det viktigste i en moderne datamaskin er hovedkortet («motherboard»):

Det viktigste i en moderne datamaskin er hovedkortet («motherboard»): Hovedkortet Det viktigste i en moderne datamaskin er hovedkortet («motherboard»): Data.data Stakk %EAX %ECX %EDX %EBP %ESP Prosessor Kode Minne.text Hovedkortet Grovt sett inneholder et hovedkort En prosessor

Detaljer

INF3430. Funksjoner og prosedyrer Standardbiblioteker Komplekse sekvensielle systemer

INF3430. Funksjoner og prosedyrer Standardbiblioteker Komplekse sekvensielle systemer INF3430 Funksjoner og prosedyrer Standardbiblioteker Komplekse sekvensielle systemer Innhold Funksjoner og operatorer Prosedyrer Begrepet overload Biblioteker Package/package body Standard biblioteker

Detaljer

Programmeringsspråket C Del 2

Programmeringsspråket C Del 2 Programmeringsspråket C Del 2 Kjell Åge Bringsrud E-mail: kjellb@ifi.uio.no 30.08.2005 inf1060 H05 1 Et eksempel Dette er lite eksempel som ber om et tall, leser det og så teller fra det ned til 0. 30.08.2005

Detaljer

Dagens tema. Datamaskinenes historie. De første moderne datamaskiner. Løsning. Menneskene har alltid prøvd å lage maskiner for å løse sine problemer.

Dagens tema. Datamaskinenes historie. De første moderne datamaskiner. Løsning. Menneskene har alltid prøvd å lage maskiner for å løse sine problemer. Dagens tema Dagens tema Charles Babbage Datamaskinenes historie maskinen Litt datamaskinhistorie Registre og lagre Instruksjoner kode kode Menneskene har alltid prøvd å lage maskiner for å løse sine problemer.

Detaljer

AVSLUTTENDE EKSAMEN I. TDT4160 Datamaskiner Grunnkurs. Torsdag 29. November 2007 Kl. 09.00 13.00

AVSLUTTENDE EKSAMEN I. TDT4160 Datamaskiner Grunnkurs. Torsdag 29. November 2007 Kl. 09.00 13.00 Side 1 av 11 NTNU Norges teknisk-naturvitenskapelige universitet BOKMÅL Fakultet for informasjonsteknologi, matematikk og elektroteknikk Institutt for datateknikk og informasjonsvitenskap AVSLUTTENDE EKSAMEN

Detaljer

EC-Styring med "Magelis" berøringsskjerm. 1. Oppstart og initialisering av maskin... 2

EC-Styring med Magelis berøringsskjerm. 1. Oppstart og initialisering av maskin... 2 Innhold 1. Oppstart og initialisering av maskin... 2 2. Drift av maskinen... 3 2.1 Beskrivelse av hovedmeny...3 2.2 Endre program...4 2.3 Opprette et program - eksempel på programmering av en profil...5

Detaljer

INF2270. Datamaskin Arkitektur

INF2270. Datamaskin Arkitektur INF2270 Datamaskin Arkitektur Hovedpunkter Von Neumann Arkitektur ALU Minne SRAM DRAM RAM Terminologi RAM Signaler Register Register overføringsspråk Von Neumann Arkitektur John von Neumann publiserte

Detaljer

NOTAT (pensum!) Javas klasse-filer, byte-kode og utførelse

NOTAT (pensum!) Javas klasse-filer, byte-kode og utførelse NOTAT (pensum!) Javas klasse-filer, byte-kode og utførelse Dessverre litt få figurer INF 5110, 8/5-2012, Stein Krogdahl Byte-koden for Java og.nett (C#) http://en.wikipedia.org/wiki/java_bytecode_instruction_listings

Detaljer

TDT4258 Eksamen vår 2013

TDT4258 Eksamen vår 2013 Norges teknisk naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap Side 1 av 8 TDT4258 Eksamen vår 2013 Løsningsforslag Oppgave 1 Flervalgsoppgave (16 poeng) Du får 2 poeng

Detaljer

Oppbygningen av en datamaskin Det viktigste i en moderne datamaskin er hovedkortet («motherboard»):

Oppbygningen av en datamaskin Det viktigste i en moderne datamaskin er hovedkortet («motherboard»): Oppbygningen av en datamaskin Det viktigste i en moderne datamaskin er hovedkortet («motherboard»): Grovt sett inneholder det En prosessor Minne (for både program og data) Klokke Kontrollere for periferutstyr.

Detaljer

hvor mye hurtigminne (RAM) CPU en kan nyttiggjøre seg av. mens bit ene betraktet under ett kalles vanligvis et ord.

hvor mye hurtigminne (RAM) CPU en kan nyttiggjøre seg av. mens bit ene betraktet under ett kalles vanligvis et ord. Oppbygging av RAM Sentrale begreper er adresserbarhet og adresserom Adresserbarhet: Antall bit som prosessoren kan tak samtidig i én operasjon (lese- eller skrive-operasjon). 9.. INF Antall bit som kan

Detaljer

Oppsummering Assemblerkode Hopp Multiplikasjon Kode og data Array Oppsummering

Oppsummering Assemblerkode Hopp Multiplikasjon Kode og data Array Oppsummering Uke 34 Uke 35 Uke 36 Uke 37 Uke 38 Uke 39 Uke 40 Uke 41 Uke 42 Uke 43 Uke 44 Uke 45 Uke 46 Uke 47 sikkerhet datanett programvare digitale kretser Prosessoren II Kort oppsummering Løkker og tester Mer om

Detaljer

EKSAMEN I TDT4160 DATAMASKINER GRUNNKURS

EKSAMEN I TDT4160 DATAMASKINER GRUNNKURS Norges teknisk naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap Side 1 av 12 Faglig kontakt under eksamen: Magnus Jahre (952 22 309) EKSAMEN I TDT4160 DATAMASKINER GRUNNKURS

Detaljer

Zelio Soft grunnkurs. Zelio Logic reléerstatter programmering

Zelio Soft grunnkurs. Zelio Logic reléerstatter programmering Zelio Soft grunnkurs Zelio Logic reléerstatter programmering Zelio Soft programvare for programmering av Zelio Logic reléerstatter Grunnkurset forutsetter at Zelio Soft er installert på PC Skjermbilder

Detaljer

Litt om Javas class-filer og byte-kode

Litt om Javas class-filer og byte-kode Litt om Javas class-filer og byte-kode INF 5110, 11/5-2010, Stein Krogdahl (Dessverre litt få figurer) Disse formatene ble planlagt fra start som en del av hele Java-ideen Bt Byte-koden gir portabilitet

Detaljer

WORKSHOP BRUK AV SENSORTEKNOLOGI

WORKSHOP BRUK AV SENSORTEKNOLOGI WORKSHOP BRUK AV SENSORTEKNOLOGI MIKROKONTROLLERE - ARDUINO KURS 27.08.16 ANALOG - DIGITAL FRA VARIASJONER AV STRØMSTYRKE TIL TALL ARDUINO BRUKES TIL Å UTFØRE SLIK KONVERTERING STRØM/TALL ELLER TALL/STRØM

Detaljer

Dagens tema C, adresser og pekere

Dagens tema C, adresser og pekere Dagens tema C, adresser og pekere (Kapittel 17 i Patt&Patel-boken) Variable og adresser Pekervariable Parametre Dynamisk allokering Stakker og ringbuffere Ark 1 av 26 Adresser Som nevnt tidligere ligger

Detaljer

Ark 3 av 26. printf("i adresse %08x ligger b med verdien %d.\n", &b, b); printf("i adresse %08x ligger a med verdien %d.

Ark 3 av 26. printf(i adresse %08x ligger b med verdien %d.\n, &b, b); printf(i adresse %08x ligger a med verdien %d. Dagens tema C, adresser og pekere (Kapittel 17 i Patt&Patel-boken) Variable og adresser Pekervariable Parametre Dynamisk allokering Stakker og ringbuffere Adresser Som nevnt tidligere ligger data og programkode

Detaljer

Forelesning ISA-nivået Kap 5.1

Forelesning ISA-nivået Kap 5.1 TDT4160 Datamaskiner Grunnkurs Forelesning 10.11 ISA-nivået Kap 5.1 Dagens tema Instruksjonssettarkitektur (5.1) Hva er ISA? Bakoverkompatibilitet Hva omfatter ISA? Minnemodeller Registre Instruksjoner

Detaljer

Dagems temaer. kapittel 4 i Computer Organisation and Architecture. av CPU: von Neuman-modellen. Transfer Language (RTL) om hurtigminne (RAM)

Dagems temaer. kapittel 4 i Computer Organisation and Architecture. av CPU: von Neuman-modellen. Transfer Language (RTL) om hurtigminne (RAM) Dagems temaer Fra Kort Organisering Register kapittel 4 i Computer Organisation and Architecture om hurtigminne (RAM) av CPU: von Neuman-modellen Transfer Language (RTL) Instruksjonseksekvering Pipelining

Detaljer

Programmeringsspråket C Del 2

Programmeringsspråket C Del 2 Programmeringsspråket C Del 2 Michael Welzl E-mail: michawe@ifi.uio.no 8/25/10 inf1060 1 Et eksempel Dette er lite eksempel som ber om et tall, leser det og så teller fra det ned til 0. 8/25/10 inf1060

Detaljer

Dagens tema. Rask-maskinen. Rasko-kode Raskas-kode. Litt datamaskinhistorie Registre og lagre Instruksjoner

Dagens tema. Rask-maskinen. Rasko-kode Raskas-kode. Litt datamaskinhistorie Registre og lagre Instruksjoner Dagens tema Dagens tema Rask-maskinen Litt datamaskinhistorie Registre og lagre Instruksjoner Rasko-kode Raskas-kode Dagens tema En overikt RusC-program x = x+1; ADD R1,R2,R1 Raskas-kode Kompilator rusc

Detaljer

Programmeringsspråket C Del 2

Programmeringsspråket C Del 2 Et eksempel Programmeringsspråket C Del 2 Dette er lite eksempel som ber om et tall, leser det og så teller fra det ned til 0. Kjell Åge Bringsrud E-mail: kjellb@ifi.uio.no inf1060 1 inf1060 2 Forklaring:

Detaljer

En overikt. Dagens tema. Datamaskinenes historie. Rask-maskinen Litt datamaskinhistorie Registre og lagre Instruksjoner. Rasko-kode.

En overikt. Dagens tema. Datamaskinenes historie. Rask-maskinen Litt datamaskinhistorie Registre og lagre Instruksjoner. Rasko-kode. Dagens tema Dagens tema Dagens tema En overikt RusC-program x = x+1; ADD R1,R2,R1 Raskas-kode Rask-maskinen Litt datamaskinhistorie Registre og lagre Instruksjoner Kompilator rusc raskas Rasko-kode 401020000000001...

Detaljer

Maskinvaredelen av INF 103: oversikt og innhold (1)

Maskinvaredelen av INF 103: oversikt og innhold (1) Maskinvaredelen av INF 3: oversikt og innhold () Boolsk algebra: Regning med og, og AND, OR og NOT Analyse og design av logiske kretser: AND, OR og NOT som byggeblokker Hukommelse og sekvensiell logikk:

Detaljer

Del 1 En oversikt over C-programmering

Del 1 En oversikt over C-programmering Del 1 En oversikt over C-programmering 1 RR 2016 Starten C ble utviklet mellom 1969 og 1973 for å re-implementere Unix operativsystemet. Er et strukturert programmeringsspråk, hvor program bygges opp av

Detaljer

public static <returtype> navn_til_prosedyre(<parameter liste>) { // implementasjon av prosedyren

public static <returtype> navn_til_prosedyre(<parameter liste>) { // implementasjon av prosedyren Prosedyrer Hensikten med en prosedyre Hensikten med en prosedyre er, logisk sett, å representere en jobb eller en funksjonalitet i et eller flere programmer. Bruk av entall er viktig: vi har generelt en

Detaljer

Dagens tema. LC-2 LC-2 er en «ekstrem-risc»; den har 16 instruksjoner og 3 adresseringsmåter.

Dagens tema. LC-2 LC-2 er en «ekstrem-risc»; den har 16 instruksjoner og 3 adresseringsmåter. Dagens tema Mer programmering i assemblerspråk Masking Hopp, tester og flagg Varianter over ld og st Vektorer og tekster Rutiner Stakker Programmering i assembler Dere kjenner sikkert den gamle gåten:

Detaljer

Den siste dagen. Pensumoversikt Hovedtanker i kurset Selvmodifiserende kode Overflyt Veien videre... Eksamen

Den siste dagen. Pensumoversikt Hovedtanker i kurset Selvmodifiserende kode Overflyt Veien videre... Eksamen Den siste dagen Pensumoversikt Hovedtanker i kurset Selvmodifiserende kode Overflyt Veien videre... Eksamen En oppsummering Oppsummering Pensum Læreboken til og med kapittel 7, kompendiet, forelesningene

Detaljer

TDT4110 Informasjonsteknologi, grunnkurs Uke 35 Introduksjon til programmering i Python

TDT4110 Informasjonsteknologi, grunnkurs Uke 35 Introduksjon til programmering i Python TDT4110 Informasjonsteknologi, grunnkurs Uke 35 Introduksjon til programmering i Python Professor Guttorm Sindre Institutt for datateknikk og informasjonsvitenskap Læringsmål og pensum Mål Vite hva et

Detaljer

Datamaskinens oppbygning

Datamaskinens oppbygning Datamaskinens oppbygning Håkon Tolsby 18.09.2014 Håkon Tolsby 1 Innhold Hovedenheten Hovedkort Prosessor CISC og RISC 18.09.2014 Håkon Tolsby 2 Datamaskinens bestanddeler Hovedenhet Skjerm Tastatur Mus

Detaljer

INF3430/4431. Funksjoner og prosedyrer Standardbiblioteker Komplekse sekvensielle systemer

INF3430/4431. Funksjoner og prosedyrer Standardbiblioteker Komplekse sekvensielle systemer INF3430/4431 Funksjoner og prosedyrer Standardbiblioteker Komplekse sekvensielle systemer Innhold Funksjoner og operatorer Prosedyrer Begrepet overload Biblioteker Package/package body Standard biblioteker

Detaljer

En oppsummering (og litt som står igjen)

En oppsummering (og litt som står igjen) En oppsummering (og litt som står igjen) Pensumoversikt Hovedtanker i kurset Selvmodifiserende kode Overflyt Eksamen En oppsummering Oppsummering Pensum læreboken til og med kapittel 7 forelesningene de

Detaljer

Pensum Hovedtanker Selvmodifiserende Overflyt Veien videre Eksamen. Oppsummering

Pensum Hovedtanker Selvmodifiserende Overflyt Veien videre Eksamen. Oppsummering Oppsummering Pensum Grovt sett er alt fra forelesningene og øvingsoppgavene pensum. Detaljert oversikt finnes på kurssidene. Hovedtanker fra kurset Litt om eksamen Hvorfor har dere lært dette? Ikke mange

Detaljer

Dagems temaer INF ! Fra kapittel 4 i Computer Organisation and Architecture. ! Kort om hurtigminne (RAM)

Dagems temaer INF ! Fra kapittel 4 i Computer Organisation and Architecture. ! Kort om hurtigminne (RAM) Dagems temaer! ra kapittel 4 i Computer Organisation and Architecture! Kort om hurtigminne (RAM)! Organisering av CPU: von Neuman-modellen! Register Transfer Language (RTL)! Instruksjonseksekvering! Pipelining

Detaljer

NOTAT (pensum!) Javas klasse-filer, byte-kode og utførelse. INF 5110, 10/5-2011, Stein Krogdahl

NOTAT (pensum!) Javas klasse-filer, byte-kode og utførelse. INF 5110, 10/5-2011, Stein Krogdahl NOTAT (pensum!) Javas klasse-filer, byte-kode og utførelse Dessverre litt få figurer INF 5110, 10/5-2011, Stein Krogdahl Oversikt over Javas class-filer og byte-kode Disse formatene ble planlagt fra start

Detaljer

Forelesning ISA: IJVM Kap 4.2

Forelesning ISA: IJVM Kap 4.2 TDT4160 Datamaskiner Grunnkurs Forelesning 27.10 ISA: IJVM Kap 4.2 Dagens tema Repetisjon: ISA vs. mikroarkitektur ISA: IJVM (4.2) Lagring av lokale variable Minnemodell Instruksjonssett Metodekall Kompilering

Detaljer

Definisjon av prosess

Definisjon av prosess Prosesser og tråder Definisjon av prosess Enkel definisjon: En prosess er et program som kjører på datamaskinen Mer presis definisjon: En prosess er en samling av ressurser som er nødvendige for å utføre

Detaljer

Javas klasse-filer, byte-kode og utførelse (og litt om C# sin CIL-kode)

Javas klasse-filer, byte-kode og utførelse (og litt om C# sin CIL-kode) Javas klasse-filer, byte-kode og utførelse (og litt om C# sin CIL-kode) Disse foilene er pensum INF 5110, 30/4-2013, Stein Krogdahl Byte-koden for Java og.nett (C#) kan leses her: http://en.wikipedia.org/wiki/java_bytecode_instruction_listings

Detaljer

Avdeling for ingeniørutdanning Elektrogrunnlagslaboratoriet DIGITALE SYSTEMER

Avdeling for ingeniørutdanning Elektrogrunnlagslaboratoriet DIGITALE SYSTEMER Avdeling for ingeniørutdanning Elektrogrunnlagslaboratoriet DIGITALE SYSTEMER Oppgavens navn: Styring av stepmotor Lab. oppgave nr.: M3 Dato utført: Klasse: Protokoll skriver : Gruppe: Øvrige gruppedeltagere

Detaljer

Installere JBuilder Foundation i Windows XP

Installere JBuilder Foundation i Windows XP Installere JBuilder Foundation i Windows XP Installasjon av JBuilder Foundation på Windows (dekker her spesifikt fremgangen ved bruk av Microsoft Windows XP Professional, men det vil mest trolig ikke være

Detaljer

Concurrency. Lars Vidar Magnusson. September 20, Lars Vidar Magnusson () Forelesning i Operativsystemer September 20, / 17

Concurrency. Lars Vidar Magnusson. September 20, Lars Vidar Magnusson () Forelesning i Operativsystemer September 20, / 17 Concurrency Lars Vidar Magnusson September 20, 2011 Lars Vidar Magnusson () Forelesning i Operativsystemer 20.09.2011 September 20, 2011 1 / 17 Oversikt Concurrency 1 Concurrency Beskrivelse Prinsipper

Detaljer

Kjøresystemer. Hva er et kjøresystem? Den abstrakte maskinen SIMPLESEM (2.6) Klassifisering av språk: Parametre (2.7.7) Statiske språk (

Kjøresystemer. Hva er et kjøresystem? Den abstrakte maskinen SIMPLESEM (2.6) Klassifisering av språk: Parametre (2.7.7) Statiske språk ( Kjøresystemer Hva er et kjøresystem? Den abstrakte maskinen SIMPLESEM (2.6) Klassifisering av språk: Statiske språk (2.7.1-2.7.2) FORTRAN, COBOL Stakk-baserte språk (2.7.3-2.7.4) ALGOL 60 Dynamiske språk

Detaljer

ITPE/DATS 2400: Datamaskinarkitektur og Nettverk

ITPE/DATS 2400: Datamaskinarkitektur og Nettverk ITPE/DATS 2400: Datamaskinarkitektur og Nettverk Forelesning Knut Nygaard / T. M. Jonassen Institute of Computer Science Faculty of Technology, Art and Design Oslo and Akershus University College of Applied

Detaljer

Operativsystemer og grensesnitt

Operativsystemer og grensesnitt Operativsystemer og grensesnitt Ulike måter å bruke OS'et på Application Program Interface (API) Applikasjoner (ofte C-programmer) som f.eks. emacs, som bruker tjenestene i OS ved å kalle på funksjoner

Detaljer

TDT4105 Informasjonsteknologi, grunnkurs (ITGK)

TDT4105 Informasjonsteknologi, grunnkurs (ITGK) 1 TDT4105 Informasjonsteknologi, grunnkurs (ITGK) Introduksjon til programmering i Matlab Rune Sætre satre@idi.ntnu.no 2 Læringsmål og pensum Mål Lære om programmering og hva et program er Lære å designe

Detaljer

oppgavesett 4 INF1060 H15 Øystein Dale Hans Petter Taugbøl Kragset September 22, 2015 Institutt for informatikk, UiO

oppgavesett 4 INF1060 H15 Øystein Dale Hans Petter Taugbøl Kragset September 22, 2015 Institutt for informatikk, UiO oppgavesett 4 INF1060 H15 Øystein Dale Hans Petter Taugbøl Kragset September 22, 2015 Institutt for informatikk, UiO oppgave 1 Hvorfor har vi operativsystemer? Portable programmer Enklere å programmere

Detaljer

Lage større programmer (Python, relatert til teoridelen om Software Engineering ) TDT 4110 IT Grunnkurs Professor Guttorm Sindre

Lage større programmer (Python, relatert til teoridelen om Software Engineering ) TDT 4110 IT Grunnkurs Professor Guttorm Sindre Lage større programmer (Python, relatert til teoridelen om Software Engineering ) TDT 4110 IT Grunnkurs Professor Guttorm Sindre Læringsmål og pensum Mål Lære å lage større og sammensatte programmer Kunne

Detaljer

Del 4 Noen spesielle C-elementer

Del 4 Noen spesielle C-elementer Del 4 Noen spesielle C-elementer 1 RR 2016 Header-filer inneholder Prototypene til funksjonene i standard biblioteket Verdier og definisjoner som disse funksjonene bruker #include #include

Detaljer

Kapittel 9: Følge Instruksjoner Prinsipper for Datamaskinens Virkemåte

Kapittel 9: Følge Instruksjoner Prinsipper for Datamaskinens Virkemåte Kapittel 9: Følge Instruksjoner Prinsipper for Datamaskinens Virkemåte «Fluency with Information Technology» Sixth Edition by Lawrence Snyder Oversatt av Rune Sætre, 2013 bearbeidet av Terje Rydland, 2015

Detaljer

Erik Grindheim - fagprøve Kildekode til mikrokontroller << led_ctrl.asm >> side 1/6.

Erik Grindheim - fagprøve Kildekode til mikrokontroller << led_ctrl.asm >> side 1/6. Skrevet av: Erik Grindheim, IFJF - UiB * Dato: 15. februar 2000 * Revisjon 1.12 * Språk: MPASM (Microchip) * Processor: PIC16F84 * Watchdog timer: off * Code protect: off * Programmet starter opp med å

Detaljer

I denne oppgaven blir du introdusert for programmeringsspråket JavaScript. Du skal gjøre den klassiske oppgaven Hei verden, med en katt.

I denne oppgaven blir du introdusert for programmeringsspråket JavaScript. Du skal gjøre den klassiske oppgaven Hei verden, med en katt. Hei JavaScript! Introduksjon Web Introduksjon I denne oppgaven blir du introdusert for programmeringsspråket JavaScript. Du skal gjøre den klassiske oppgaven Hei verden, med en katt. Steg 1: Bruke JS Bin

Detaljer

1 Innledning. 2 Virkemåte for kortet. Bli kjent med USB I/O kort K8055. NB! Ta med multimeter og lite skrujern!

1 Innledning. 2 Virkemåte for kortet. Bli kjent med USB I/O kort K8055. NB! Ta med multimeter og lite skrujern! D:\Per\Fag\Styresys\Oppgavebok\K8055LV_12\Øving 1\K8055_LV2012_SANN1_2014.wpd Fag SO507E Styresystemer HIST-AFT jan 14 PHv Dataøving 1 SANNTID MED LABVIEW Bli kjent med USB I/O kort K8055. NB! Ta med multimeter

Detaljer

Singletasking OS. Device minne Skjerm minne. Brukerprogram. Brukerdata/heap. Stack. Basis for flerprosess-systemer.

Singletasking OS. Device minne Skjerm minne. Brukerprogram. Brukerdata/heap. Stack. Basis for flerprosess-systemer. -OS i i L1 og L2 og og Basis for flerprosess-systemer. Adresser.. 2 1 0 OS Device minne Skjerm minne Brukerprogram Brukerdata/heap Stack Stack: brukes bl. a. til å lagre adressen som skal returneres til

Detaljer

TDT4105 Informasjonsteknologi, grunnkurs. Introduksjon til programmering i Matlab

TDT4105 Informasjonsteknologi, grunnkurs. Introduksjon til programmering i Matlab 1 Kunnskap for en bedre verden TDT4105 Informasjonsteknologi, grunnkurs Introduksjon til programmering i Matlab Amanuensis Terje Rydland Kontor: ITV-021 i IT-bygget vest (Gløshaugen) Epost: terjery@idi.ntnu.no

Detaljer

Datamaskinens virkemåte

Datamaskinens virkemåte Geir Ove Rosvold 6. januar 26 Opphavsrett: Forfatter og Stiftelsen TISIP Resymé: I denne leksjonen ser vi på den grunnleggende virkemåten til en datamaskin. Vi ser på de forskjellige delene - blant annet

Detaljer

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte 1 TDT4160 Datamaskiner Grunnkurs 2011 Gunnar Tufte 2 Kapittel 4: Microarchitecture level 3 Ny Arkitektur: IJVM 4 Instruksjonsett Stack basert 5 Mikroprogramm 0001010010000000000000111 001111000000010000001000

Detaljer

Gruppe(r): 2EY 30.05.02. Eksamenstid, fra-til: 09 00-14 00 Eksamensoppgaven består av. Antall sider: 4 (Inkludert denne)

Gruppe(r): 2EY 30.05.02. Eksamenstid, fra-til: 09 00-14 00 Eksamensoppgaven består av. Antall sider: 4 (Inkludert denne) HØGSKOLEN I OSLO Avdeling for ingeniørutdanning EKSAMENSOPPGAVE Fag: ELEKTRONIKK II Fagnr: SO313E Faglig veileder: K. H. Nygård, V. Tyssø Gruppe(r): 2EY Dato: 30.05.02 Eksamenstid, fra-til: 09 00-14 00

Detaljer

Oppgave 1 - Linux kommandolinje (%)

Oppgave 1 - Linux kommandolinje (%) Løsningsforslag Eksamen høst 2017 Operativsystemer Oppgave 1 - Linux kommandolinje (%) a) pwd b) ps Oppgave 2 - Bash-scripting (%) a) ping -i 5 www.hin.no b) ping -c 1 www.hin.no ping -c 1 -t 1 www.hin.no

Detaljer

NORGES TEKNISK-NATURVITENSKAPELIGE UNIVERSITET INSTITUTT FOR DATATEKNIKK OG INFORMASJONSVITENSKAP

NORGES TEKNISK-NATURVITENSKAPELIGE UNIVERSITET INSTITUTT FOR DATATEKNIKK OG INFORMASJONSVITENSKAP Side 1 av 9 NORGES TEKNISK-NATURVITENSKAPELIGE UNIVERSITET INSTITUTT FOR DATATEKNIKK OG INFORMASJONSVITENSKAP Faglig kontakt under eksamen: Jon Olav Hauglid, Tlf 93440 Institutt for datateknikk og informasjonsvitenskap,

Detaljer

INF2100. Dagens tema: Flink-maskinen Litt datamaskinhistorie. Registre og lagre. Instruksjoner. Flass-koden

INF2100. Dagens tema: Flink-maskinen Litt datamaskinhistorie. Registre og lagre. Instruksjoner. Flass-koden Dagens tema: Flink-maskinen Litt datamaskinhistorie Registre og lagre Instruksjoner Flass-koden Dag Langmyhr,Ifi,UiO: Forelesning 30. august 2005 Ark 1 av 20 Datamaskinenes historie Menneskene har alltid

Detaljer

Her skal du lære å programmere micro:biten slik at du kan spille stein, saks, papir med den eller mot den.

Her skal du lære å programmere micro:biten slik at du kan spille stein, saks, papir med den eller mot den. PXT: Stein, saks, papir Skrevet av: Bjørn Hamre Kurs: Microbit Introduksjon Her skal du lære å programmere micro:biten slik at du kan spille stein, saks, papir med den eller mot den. Steg 1: Velge tilfeldig

Detaljer

Dagens temaer. Kort repetisjon. Mer om cache (1) Mer om cache (2) Read hit. Read miss. Write hit. Hurtig minne. Cache

Dagens temaer. Kort repetisjon. Mer om cache (1) Mer om cache (2) Read hit. Read miss. Write hit. Hurtig minne. Cache Dagens temaer Dagens emner er hentet fra Englander kapittel side 338-35 (gammel utgave). Mer om design av cache. Kort repetisjon er en spesiell type rask hukommelse som inneholder et subsett av det som

Detaljer

TDT4102 Prosedyre og Objektorientert programmering Vår 2015

TDT4102 Prosedyre og Objektorientert programmering Vår 2015 Norges teknisk naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap TDT4102 Prosedyre og Objektorientert programmering Vår 2015 Øving 3 Frist: 2014-02-07 Mål for denne øvinga:

Detaljer

Minnehåndtering i operativsystemer

Minnehåndtering i operativsystemer Minnehåndtering i operativsystemer Minnehåndtering? Minne er en begrenset ressurs i datamaskinen Tilgjengelig minne må fordeles til prosessene som OS-et håndterer, på en korrekt og rettferdig måte Minnet

Detaljer