February 8, 2008 IS1200/2G1518 Datorteknik, föreläsning 4 vt2008 (E)1 IS1200 Datorteknik Föreläsning 4 Programutveckling, Intro till lab 1 Kursboken, kapitel.

Slides:



Advertisements
Liknande presentationer
PTS Bredbandskartläggning
Advertisements

Mahmud Al Hakim Lärare - Folkuniversitetet
Kap 1 - Algebra och linjära modeller
Innehåll, huvudpresentation 4. Rangordning av ordningsstörningar (fråga 1) 5. Problem med nedskräpning (fråga 1a) 6. Problem med skadegörelse (fråga 1b)
Joomla © 2009 Stefan Andersson 1. Kontaktformulär  På varje seriös webbplats bör det finnas ett kontaktformulär.  Använd ej maillänkar, risk för spam!
Anders Sjögren Lagringsklasser •en variabel i C har två attribut –type( int, float, char..... ) –lagringsklass( auto, extern, register, static ) •lagringsklassens.
Konstföreningen Dragning På sista sidan finns konstnärerna för respektive tavla.
BENÄMNA lätta ord SPRÅKTRÄNING VID AFASIKg VIII
Programstruktur: C för enchipsdatorer
Tillämpning av bolagsstyrningskoden vid årsstämmor 2005 och 2006.
Hela Sverige ska leva Totalrapport. Regeringens bidrag har medverkat till kunskapsförmedling?
Projektföljeforskning
Eddie Arnold - Make The World Go Away Images colorées de par le monde Déroulement automatique ou manuel à votre choix 1 för dig.
1 Hårddiskar och Disketter Boot sektorn på en diskett eller startsektorn på en partition (se s. 770)
PC-teknik Repetition enligt önskemål som inkommit via mail. (täcker alltså inte alla moment i kursen)
23 August 2014 IS1200 Datorteknik vt09, föreläsning 10, (E och I mfl)1 IS1200 Datorteknik Föreläsning Processorkonstruktion 2. DMA, Direct Memory.
2G1502 Datorteknik allmän kurs Föreläsning 4 Programutveckling Något om bussar.
Välkommen Vahid Mosavat
Programmeringsteknik K och Media
Föreläsning 4 Python: Definiering av egna funktioner Parametrar
Karolinska Institutet, studentundersökning Studentundersökning på Karolinska Institutet HT 2013.
Kommunpussel Din uppgift är att sortera de organisatoriska delar på nästa sida på ett sådant sätt att det överensstämmer med hur din kommun är organiserad.
9 September 2014IS1200 Datorteknik, förel 101 IS1200 Datorteknik Föreläsning Processorkonstruktion 2. DMA, Direct Memory Access 3. Byte-code i JAVA.
Punktprevalensmätning av trycksår 2011, v.40 Resultat från landstingen
Bastugatan 2. Box S Stockholm. Blad 1 Läsarundersökning Maskinentreprenören 2007.
| Trycksår Kommun/Områdes-skillnader (inklusive könsdimensionen) Dennis Nordvall Statistiker/Datamanager,
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Kapitel 13: I/O-system.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 6 ( ) INNEHÅLL: -Mera om tabeller.
Enkätresultat för Grundskolan Elever 2014 Skola:Hällby skola.
Från binära till hexadecimala
Sveriges utrikeshandel (Andelar i procent) ImportExport EU (25) EFTA NAFTA Central- och Östeuropa Asien - Japan - Kina Övriga 59,9.
Finländarnas uppfattningar om äldrevården Kirsi Markkanen Utvecklingschef Tehy rf.
EDA Digital och Datorteknik
1 Vänsterskolan Debattartiklar. 2 Aktuell krok 3 Aktuella krokar 1. Direkt krok.
Kostnader för läkemedelsförmån Utveckling t.o.m. september 2014 Materialet: avser kostnader inklusive moms är ej åldersstandardiserat Lennart Tingvall:
Hittarps IK Kartläggningspresentation år 3.
1 Individ Kompetens 60%66%67% Motivation 59%64%60% Ansvar & Initiativ 77%74%68% Befogenheter 82%69%61% Organisation Samarbete 52%66%68% Organisatorisk.
Från Gotland på kvällen (tågtider enligt 2007) 18:28 19:03 19:41 19:32 20:32 20:53 21:19 18:30 20:32 19:06 19:54 19:58 20:22 19:01 21:40 20:44 23:37 20:11.
Arbetspensionssystemet i bilder Bildserie med centrala uppgifter om arbetspensionssystemet och dess funktion
ÖVERSLAGSRÄKNING.
TÄNK PÅ ETT HELTAL MELLAN 1-50
Greppa Näringen Medlemsundersökning, kvartal 1. 1.
Helhet Händelse Agerande Kunskap om vardagsverksamheten Förståelse av vardagsverksamheten.
1 Joomla © 2009 Stefan Andersson 1. 2 MÅL 2 3 Begrepp Aktör: en användare som interagerar med webbplatsen. I diagrammet till höger finns två aktörer:
Kouzlo starých časů… Letadla Pár foteček pro vzpomínku na dávné doby, tak hezké snění… M.K. 1 I Norrköping får man inte.
Mitt första Java program Mahmud Al Hakim Copyright, Mahmud Al Hakim, 1.
Varumärket Luleå kommun
Resultat sammanhållen vård och omsorg om de mest sjuka äldre i Örebro län Västra länsdelen mätperiod 2014.
2 Agenda 1. Börja arbeta med Excel Hantera arbetsböcker 3. Formler 4. Formatera 5. Diagram 6. Skriva ut 7. Referenser mellan kalkylblad 8. Arbeta.
Arbetspensionssystemet i bilder Bildserie med centrala uppgifter om arbetspensionssystemet och dess funktion
1 Föreläsning 6 Programmeringsteknik och Matlab 2D1312/2D1305 Metoder & parametrar Array API och klassen ArrayList.
Enkätresultat för Grundskolan Föräldrar 2014 Skola - Gillberga skola.
Regional handlingsplan ”Det goda livet för sjuka äldre” RESULTAT i VG+Skaraborg.
Föreläsning 1 Reserverade ord Javas API Identifierare Litteraler Variabler Kompilering och interpretering.
INTRODUKTION TILL PROGRAMMERING
Kartminne En serie bilder som ger övning av ”rutinen” Tänk på: –Vart är jag på väg? –Varifrån är kontrollen lättast att ta? –Vilken är sista säkra? –Förenkla.
31 March 2015IS1200 Datorteknik, förel 101 IS1200 Datorteknik Föreläsning Processorkonstruktion 2. DMA, Direct Memory Access 3. Byte-code i JAVA.
31 March 2015 IS1200 Datorteknik ht2009 föreläsning 2, (D2)1 IS1200 Datorteknik Föreläsning 2 Vi bygger en processor Kursboken, valda delar av kapitel.
IS1200 Datorteknik Föreläsning CE F2 Vi bygger en processor Kursboken, delar av kapitel 7 31 March IS1200 Datorteknik föreläsning CE – F2.
Föreläsning 1 Om kursen Reserverade ord Javas API Identifierare Litteraler Variabler Kompilering och interpretering.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Föreläsning 12 Sökning och Sökträd.
Digitalteknik 7.5 hp distans: 4.6 Adderare 4.45 Adderare Addition av två tal innebär att samma förfarande upprepas för varje position i talet. För varje.
BVForum - en genomgång för revisorer Sören Thuresson.
Förskoleenkät Föräldrar 2012 Förskoleenkät – Föräldrar Enhet:Hattmakarns förskola.
3 April 2015 IS1500 Datorteknik o k, föreläsning CE - F41 IS1500 Datorteknik och komponenter Föreläsning CE F4 Programutveckling & Intro till lab 1, nios2time.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Datastrukturer och algoritmer Gruppövning 0.
22 April 2015IS1200 Datorteknik, föreläsning 11 IS1200 Datorteknik Föreläsning 1 Introduktion.
2 June G1518, föreläsning 4, ht2006 (D2)1 2G1518 Datorteknik Föreläsning 4 Programutveckling, Intro till lab 1 Kursboken, kapitel 1, 4, 5 och 8 ht.
11 August 2015IS1200 Datorteknik, föreläsning 41 IS1200 Datorteknik Föreläsning 4 Programutveckling, Intro till lab 1 Kursboken, kapitel 1, 4, 5 och 8.
Grundläggande datavetenskap, 4p
Presentationens avskrift:

February 8, 2008 IS1200/2G1518 Datorteknik, föreläsning 4 vt2008 (E)1 IS1200 Datorteknik Föreläsning 4 Programutveckling, Intro till lab 1 Kursboken, kapitel 1, 4, 5 och 8 vt 2008 (period 3-4) för E3 m. fl.

February 8, 2008 IS1200/2G1518 Datorteknik, föreläsning 4 vt2008 (E)2 F1F2F3F4F5F6F7F8F9F10Ö2Ö1Ö3Ö4Ö5LAB-1LAB-2Hemlab-1Ö6Ö7LAB-3Hemlab-2Ö8Hemlab-3Ö9TentamenÖ10 Assemblerkod 4 stegs pipeline Nios2time Nios2io C-kod Nios2int Cache-minnen CPU-scheduling IS1200 Datorteknik Period 3 Period 4

February 8, 2008 IS1200/2G1518 Datorteknik, föreläsning 4 vt2008 (E)3 IS1200 Datorteknik  Föreläsning 4, innehåll  Programutveckling, allmänt  Laboration 1: nios2time  Programutveckling, denna kurs

February 8, 2008 IS1200/2G1518 Datorteknik, föreläsning 4 vt2008 (E)4 Litteraturhänvisningar Kursboken avsnitt 1.5 avsnitt 4.5 och 4.6 avsnitt Exempelsamling del 3 NiosII-manual Lab-PM för laboration 1, nios2time

February 8, 2008 IS1200/2G1518 Datorteknik, föreläsning 4 vt2008 (E)5 Viktiga delar i en dator CPU BUS I/OMEM program data

February 8, 2008 IS1200/2G1518 Datorteknik, föreläsning 4 vt2008 (E)6 Programexekvering FETCH (update PC) (decode) EXECUTE

February 8, 2008 IS1200/2G1518 Datorteknik, föreläsning 4 vt2008 (E)7 Steg i programutveckling  Editering av program i C-kod (liknande)  Kompilering av C-kod till Assemlerkod  Editering av programkod i assembler  Assemblering av Ass.kod till Objekt-modul  Länkning av Objekt-modul(er) -> Laddmodul  Laddning av Laddmodul till Minne  Exekvering (körning) av program  Simulering av program  Test och Felsökning (debugging) av program

February 8, 2008 IS1200/2G1518 Datorteknik, föreläsning 4 vt2008 (E)8 Editering Exempel på C-kod #include “./minfil.c”/* inkludera filer */ #define START_TIME 0x5957 /* makrodefinition */ int current_time = START_TIME; /* global initierad variabel */ int a, b, c; /* globala oinitierade variabler */ int sum (int par1, int par2) /* function definition */ { int tmp; /* lokal variabel */ tmp = par1 + par2; return (tmp); } main ()/* huvudprogram, main */ { int talA, talB, talC;/* lokala variabler i main */ /* själva programkoden i huvudprogrammmet */... talC = sum( talA, talB );/* anrop av function */... }

February 8, 2008 IS1200/2G1518 Datorteknik, föreläsning 4 vt2008 (E)9 Laboration 1, nios2time Utskrift av tid varje sekund 59:57 59:58 59:59 00:00 00:01.

February 8, 2008 IS1200/2G1518 Datorteknik, föreläsning 4 vt2008 (E)10 Editering Exempel på C-kod, lab1-ide’ #include “./minfil.c”/* inkludera fil t.ex. subrutinerna puttime osv*/ #define START_TIME 0x5957 /* makrodefinition */ #define TRUE 1/* TRUE = 1 */ int current_time = START_TIME; /* global initierad variabel */ extern void puttime (int* time);/* underprogram, function, procedure, method */ extern void tick (int* time); extern void delay (int millisek); extern int hexasc (int hexval); main ()/* huvudprogram, main */ { while (TRUE)/* forever */ { puttime (&current_time);/* skriv ut aktuell tid i fönster */ tick (&current_time);/* uppdatera current_time */ delay (1000);/* vänta 1000 millisekunder */ }

February 8, 2008 IS1200/2G1518 Datorteknik, föreläsning 4 vt2008 (E)11 Pekare och adress (så där i förbifarten) inta;/* reservera plats */ intb=17;/* och initiera*/ int* pek1;/* pekare till en int*/ int* pek2 = &b;/* initiera*/ /* &b utläses som ”adressen till b” */ a = *pek2; /* a tilldelas det värde som pek2 pekar på*/ /* avreferering – dereferencing*/

February 8, 2008 IS1200/2G1518 Datorteknik, föreläsning 4 vt2008 (E)12 Editering Redigering av C-kod C-program Text-fil fil.c, kan redigeras med en editor

February 8, 2008 IS1200/2G1518 Datorteknik, föreläsning 4 vt2008 (E)13 Kompilering: översätter C-kod till Assembler-kod C-program Text-fil Ass-program Text-fil kompilering / översättning fil.c, kan redigeras med en editor fil.s, kan redigeras med en editor Kommandoexempel: gcc fil.c eller javac fil.java (med debugger: compile -d fil.c)

February 8, 2008 IS1200/2G1518 Datorteknik, föreläsning 4 vt2008 (E)14 Editering Exempel på Assembler-kod.include ”./minfil.s".data.align2# nästa adress delbar med 4 TIME:.word0x5957.text.globalmain# måste tas med (gemener).globalputtime, tick, delay# behövs ej main:moviar4, TIME moviar16, puttime callrr16 moviar4, TIME calltick moviar4, 1000 calldelay brmain puttime:ret# tom subrutin tick:ret# tom subrutin delay:ret# tom subrutin.end# sluta översätt

February 8, 2008 IS1200/2G1518 Datorteknik, föreläsning 4 vt2008 (E)15 Assemblering; översätter Ass-kod till objekt-modul Ass-program Text-fil Object-modul ”Text-fil” Assemblering / översättning fil.s fil.o, (relokerbar ?) Kommandoexempel: asm fil.s (med debugger: asm -d fil.s)

February 8, 2008 IS1200/2G1518 Datorteknik, föreläsning 4 vt2008 (E)16 Exempel på objekt-modul fil.obj Detta är en binär fil. Den är obegriplig om man öppnar den med en vanlig editor. Information i filen:.textVarje instruktion kodas i maskinkod, det vill säga binär kod Varje symbolisk adress ges ett värde. Symboliska namn som ej kan ges värde lokalt bokförs i en symboltabell som används och kompletteras vid länkningen..datainformation om vilka variabelplatser som ska reserveras, för initierade variabler krävs att värdet finns lagrat.bssför oinitierade variabler räcker det att ange namn och storlek (Block Started by Symbol) Påminnelse om.global som stod i assembler-filen: De symboler som deklararerats som global vet man ska användas vid länkningen, och man förbereder arbetet genom att placera dessa i symboltabellen

February 8, 2008 IS1200/2G1518 Datorteknik, föreläsning 4 vt2008 (E)17 Länkning; sätter ihop Object-modul(er) till Laddmodul Object-modul ”Text-fil” Ladd-modul ”Text-fil” Länkning fil.o fil.elf fil.elf innehåller binär programkod som kan kopieras till minnet och köras (relokerbar?) fil.o innehåller binär programkod men alla adresser finns inte med Kommandoexempel: link fil.o (med debugger: link -d fil.o)

February 8, 2008 IS1200/2G1518 Datorteknik, föreläsning 4 vt2008 (E)18 Länkning av Nios-program ger extrafil: fil.dump - en listning Object-modul ”Text-fil” Ladd-modul ”Text-fil” fil.o fil.elf Kommandoexempel: link fil.o Object-dump Text-fil Extra fil fil.objdump

February 8, 2008 IS1200/2G1518 Datorteknik, föreläsning 4 vt2008 (E)19 Exempel på fil.objdump (endast vissa delar) fil.elf: file format elf32-littlenios2 Disassembly of section.text: fc :.text.globalmain.globalputtime, tick, delay main:moviar4, TIME 200fc:010000b4 movhir4, : addir4,r4,612 moviar16, puttime 20104:040000b4 movhir16, :84004b04 addir16,r16,300 callrr c:803ee83a callrr16 moviar4, TIME 20110:010000b4 movhir4, : addir4,r4,612 calltick 20118: call20130 moviar4, c: movhir4, :2100fa04 addir4,r4,1000 calldelay 20124: call20134 brmain 20128:003ff406 br200fc c : puttime:ret 2012c:f800283a ret : tick:ret 20130:f800283a ret : delay:ret 20134:f800283a ret

February 8, 2008 IS1200/2G1518 Datorteknik, föreläsning 4 vt2008 (E)20 Object-modul ”Text-fil” Ladd-modul ”Text-fil” fil.o fil.elf Kommandoexempel: link fil.obj Object-dump Text-fil En till Extra fil fil.objdump fil.nm Sym-table Text-fil Länkning av Nios-program ger extrafil: fil.nm - namelist

February 8, 2008 IS1200/2G1518 Datorteknik, föreläsning 4 vt2008 (E)21 Exempel på fil.nm symboltabell (endast vissa delar) … fc T main c t puttime t tick t delay D _data d TIME # 0x264=612.

February 8, 2008 IS1200/2G1518 Datorteknik, föreläsning 4 vt2008 (E)22 Object-modul ”Text-fil” Ladd-modul ”Text-fil” fil.o fil.elf Kommandoexempel: link -d fil.o Object-dump Text-fil En till Extra fil fil.objdumpfil.nm Sym-table Text-fil Debugger Script-fil fil.gdb Kompilering+länkning av Nios-prog med flagga -d ger extrafil: fil.gdb

February 8, 2008 IS1200/2G1518 Datorteknik, föreläsning 4 vt2008 (E)23 Länkning - kombinerar flera Object-moduler till Laddmodul Ladd-modul ”Text-fil” Länkning Object-modul ”Text-fil” fil1.o Object-modul ”Text-fil” fil2.o Object-modul ”Text-fil” fil3.o Object-modul ”Text-fil” filn.o... Kommandoexempel: link fil1.o fil2.o fil3.o … filn.o fil.elf, vilket namn? fil1.elf (sista i kommandot som ska innehålla ”main:”)

February 8, 2008 IS1200/2G1518 Datorteknik, föreläsning 4 vt2008 (E)24 in-länkning av biblioteksfiler Ladd-modul ”Text-fil” Länkning fil.elf, vilket namn? fil1.elf eller lib2.elf ? Object-modul ”Text-fil” fil1.o Object-modul ”Text-fil” fil2.o Object-modul ”Text-fil” lib2.o... Biblioteksfiler Kommandoexempel: link fil1.o, fil2.o,... lib1.0, lib2.o Object-modul ”Text-fil” lib1.o

February 8, 2008 IS1200/2G1518 Datorteknik, föreläsning 4 vt2008 (E)25 Laddning Laddmodul laddas till minnet Ladd-modul ”fil.elf” Minne Load (and run/go) fil.elf Var i minnet ? (nära 0x800000) Kommandoexempel: download -g fil.elf GO LOAD

February 8, 2008 IS1200/2G1518 Datorteknik, föreläsning 4 vt2008 (E)26 Minne Körning / Exekvering Programmet körs av CPU:n Körning / Exekvering Var i minnet ? Länkaren väljer Kommandoexempel: download –g fil.elf (utan debugger/simulator) PC +4 GO

February 8, 2008 IS1200/2G1518 Datorteknik, föreläsning 4 vt2008 (E)27 Minne Debugging Programmet körs av CPU:n Debugging Kommandoexempel:./fil.gdb PC +4 Önskemål: Starta program på vald adress (skriv till PC) Stoppa program Stegvis exekvering en instruktion i taget (S = Step) Exekvera en hel subrutin (N = Next) Undersöka innehåll i register och minne (och variabler) Brytpunkter; införa - ta bort Exekvera fram till nästa brytpunkt (C = Continue/Resume) Var i minnet ? Länkaren väljer

February 8, 2008 IS1200/2G1518 Datorteknik, föreläsning 4 vt2008 (E)28 Fil-administration Alternativ 1: Många filer som kompileras separat och länkas ihop till en laddmodul Alternativ 2: Många filer som kombineras med ”include”-satser till En enda ”jättefil” som kompileras och länkas ihop till en laddmodul

February 8, 2008 IS1200/2G1518 Datorteknik, föreläsning 4 vt2008 (E)29 C-program Text-fil Ass-program Text-fil Object-modul ”Text-fil” C-program Text-fil Ass-program Text-fil Object-modul ”Text-fil” Ladd-modul ”Text-fil” C-program Text-fil Ass-program Text-fil Object-modul ”Text-fil” C-program Text-fil Ass-program Text-fil Object-modul ”Text-fil” Fördelar ? Dela upp arbetet i delar ! Snabb (del-) kompilering ! Nackdel ? Långt kommando vid länkning! Separatkompilering

February 8, 2008 IS1200/2G1518 Datorteknik, föreläsning 4 vt2008 (E)30 C-program Text-fil Ass-program Text-fil Object-modul ”Text-fil” C-program Text-fil Ladd-modul ”Text-fil” C-program Text-fil C-program Text-fil ”include” Fördel ? Dela upp arbetet i delar ! Kort kommando vid länkning ! Nackdel ? Onödigt arbete (tid) vid kompilering !

February 8, 2008 IS1200/2G1518 Datorteknik, föreläsning 4 vt2008 (E)31 NiosII EDS Vår labmiljö ! Programutveckling med NiosII EDS Embedded Design Suite HELT ANNORLUNDA Visas snart

February 8, 2008 IS1200/2G1518 Datorteknik, föreläsning 4 vt2008 (E)32 Ass-program Text-fil Object-modul ”Text-fil” Ladd-modul ”Text-fil” ”include” (include./minfil) Ass-program Text-fil Ass-program Text-fil Ass-program Text-fil

February 8, 2008 IS1200/2G1518 Datorteknik, föreläsning 4 vt2008 (E)33 JAVA-program Text-fil Ass-program Text-fil Object-modul ”Text-fil” C-program Text-fil Ass-program Text-fil Object-modul ”Text-fil” Ladd-modul ”Text-fil” Ass-program Text-fil Object-modul ”Text-fil” Pascal-program Text-fil Ass-program Text-fil Object-modul ”Text-fil” Separatkompilering med blandad kod

February 8, 2008 IS1200/2G1518 Datorteknik, föreläsning 4 vt2008 (E)34 Blandad kod C-kod och Assembler-kod /* Function File */ int sum (int x, int y) /* ”public” */ { return (x + y); } /* Main File */ int a, b, res extern int sum (int a, int b); … res = sum (a,b); # huvudprogram a:.word 0 b:.word 0 res:.word 0 ….global main.global sum main: copy reg4, a copy reg5, b call sum copy res, reg2 # subroutine.global sum … sum: add reg2, reg4, reg5 return

February 8, 2008 IS1200/2G1518 Datorteknik, föreläsning 4 vt2008 (E)35 res=sum(a,b) Ass-program Text-fil Object-modul ”Text-fil” int sum(x,y) Ass-program Text-fil Object-modul ”Text-fil” Ladd-modul ”Text-fil” huvudprogram function Länkning Assemblering Kompilering

February 8, 2008 IS1200/2G1518 Datorteknik, föreläsning 4 vt2008 (E)36 res=sum(a,b) Ass-program Text-fil Object-modul ”Text-fil” sum: push... Object-modul ”Text-fil” Ladd-modul ”Text-fil” huvudprogram subrutin Länkning Assemblering Kompilering

February 8, 2008 IS1200/2G1518 Datorteknik, föreläsning 4 vt2008 (E)37 call sum Object-modul ”Text-fil” int sum(x,y) Ass-program Text-fil Object-modul ”Text-fil” Ladd-modul ”Text-fil” huvudprogram function Länkning Assemblering Kompilering

February 8, 2008 IS1200/2G1518 Datorteknik, föreläsning 4 vt2008 (E)38 call sum... Object-modul ”Text-fil” Object-modul ”Text-fil” Ladd-modul ”Text-fil” huvudprogram Länkning Assemblering sum: push... subrutin

February 8, 2008 IS1200/2G1518 Datorteknik, föreläsning 4 vt2008 (E)39 Memory Map - Minnesbild  Adressrymd  Hur stor är adressrymden  Vilka adresser används och till vad  RWM, ROM, IO etc

February 8, 2008 IS1200/2G1518 Datorteknik, föreläsning 4 vt2008 (E)40 RWM-minne (RAM-minnet)  Hur stort (fysiskt) RWM-minne finns det  På vilka adresser finns RWM  Var finns det egna programmet  Var finns de egna data  Var finns den egna stacken  Finns det något mer i RWM, och vad

February 8, 2008 IS1200/2G1518 Datorteknik, föreläsning 4 vt2008 (E)41 Nios-II: Kartbild av minnet adress 0 adress 2 n RWM data code stack 0x x?FFFF PC +2 SP Vad finns här ?

February 8, 2008 IS1200/2G1518 Datorteknik, föreläsning 4 vt2008 (E)42 Nios: Kartbild av minnet Hex-AdressMEM / IO 0 - 7FFboot_monitor_rom Fuart_ ext_ram, ??? kByte...

February 8, 2008 IS1200/2G1518 Datorteknik, föreläsning 4 vt2008 (E)43 Assembler-direktiv, exempel.include ”./fil.ext”# infogar filen fil.ext.data# nu kommer datareservationer.text# nu kommer programkod.global main# main blir synlig globalt (”public”).align 3# nästa adress ska vara delbar med 2 3 B:.string ”hej 17”# lagra ASCII-sträng C:.ascii”tjoho”# lagra ASCII D:.asciz”plusnul”# ASCII avslutad med NUL TAL:.byte 0x01# reservera 1 byte med värde 0x01.equ ExcBase,0x20020# definiera symbolnamn TIME:.word 0x5957# 32 bitar med värde Kolon:.byte’:’# ascikod för kolon

February 8, 2008 IS1200/2G1518 Datorteknik, föreläsning 4 vt2008 (E)44 Mall för macro pseudo-instruction.macroCLR reg MOVI\reg, 0x0.endm Effekten av detta är att man kan använda en ny instruktion, clr rA, för att nollställa register rA Utmaning: Skriv ett macro för BTST dreg, sreg, index som gör BitTeST på en bit i register sreg dvs skriver 1 till dreg om utpekad bit är 1 eller skriver 0 till dreg om utpekad bit är 0

February 8, 2008 IS1200/2G1518 Datorteknik, föreläsning 4 vt2008 (E)45 Var ska macro infogas? Definitionen av varje makro ska finnas i texten, innan det används. Egna makron ska stå i början av filen innan koden som använder makrona och sen kommer koden för själva programmet Egna makron är case sensitive Varning för att ”överta” andras makron

February 8, 2008 IS1200/2G1518 Datorteknik, föreläsning 4 vt2008 (E)46 IS1200 Datorteknik Laboration 1 NiosII assembler

February 8, 2008 IS1200/2G1518 Datorteknik, föreläsning 4 vt2008 (E)47 Laboration nios2time Utskrift av tid varje sekund 59:57 59:58 59:59 00:00 00:01.

February 8, 2008 IS1200/2G1518 Datorteknik, föreläsning 4 vt2008 (E)48 Huvudprogram loop:moviar4,TIME# parameter callPUTTIME# anrop, alt 1 moviar4, TIME# parameter moviar16, TICK# adress callrr16# anrop, alt 2 moviar4,1000# parameter callDELAY# anrop brloop# ovillk. hopp

February 8, 2008 IS1200/2G1518 Datorteknik, föreläsning 4 vt2008 (E)49 HEXASC är en subrutin ? 4 bitar = en hexadecimal siffra 7 bitar = ASCII för en hexadecimal siffra IN-parameter i r4 RETUR-parameter i r2

February 8, 2008 IS1200/2G1518 Datorteknik, föreläsning 4 vt2008 (E)50 INRETUR Bin --> ASCII = hex > = > = > = > = > = > = > = > = > = > = > = A > = B > = C > = D > = E > = F Algoritm? För dessa kan man göra så här... HEXASC är en subrutin

February 8, 2008 IS1200/2G1518 Datorteknik, föreläsning 4 vt2008 (E)51 TICK är en subrutin 4 st NBCD-kodade siffror IN-parameter i r4 minne r4: Adressen, TIME, till den plats i minnet där aktuell tid finns lagrad

February 8, 2008 IS1200/2G1518 Datorteknik, föreläsning 4 vt2008 (E)52 Exempel på räkning NBCD NBCD NBCD NBCD = TIME = 00: = 00: = 00: = 01: = 09: = 10: = 59: = 00:00 TICK är en subrutin

February 8, 2008 IS1200/2G1518 Datorteknik, föreläsning 4 vt2008 (E)53 PUTTIME är en subrutin 4 st NBCD-kodade siffror IN-parameter i r4 minne 7 0 Skriv ut i ordning 5 9 : 5 7 Skriv ett tecken: plocka fram 4 bitar -> HEXASC -> PUTCHAR PUTCHAR = skriv ut ett tecken på terminalen r4: Adressen, TIME, till den plats i minnet där aktuell tid finns lagrad -+-+

February 8, 2008 IS1200/2G1518 Datorteknik, föreläsning 4 vt2008 (E)54 DELAY förslag till flödesschema N := startN := N - 1N = 0 ? IN-hopp UT-hopp JA NEJ K := msekK := K - 1K = 0 ? IN-hopp UT-hopp JA NEJ IN-parameter i r4 inner loop outer loop tuning value

February 8, 2008 IS1200/2G1518 Datorteknik, föreläsning 4 vt2008 (E)55 Assembler-direktiv, exempel (delvis repris).include ”fil.ext”#infogar fil.ext.data#nu kommer datareservationer.text#nu kommer programkod.global main#main blir synlig globalt.align 2#nästa adress ska vara delbar med 2 2.align 4#nästa adress ska vara delbar med 2 4.equ MyVal, 0x5957#def. symbol namn TIME:.word MyVal#reservera 1 word med värde KOLON:.byte ’:’#ascii för kolon lagras

February 8, 2008 IS1200/2G1518 Datorteknik, föreläsning 4 vt2008 (E)56 Tillgänglig assembler-rutin till DE2-kortet Rutin för serieport #skriv ett tecken”putchar” call putchar# skriver ut från r4 i terminalfönster

February 8, 2008 IS1200/2G1518 Datorteknik, föreläsning 4 vt2008 (E)57 IS1200 Datorteknik  Föreläsning 4, innehåll  Programutveckling, allmänt  Laboration 1: nios2time  Programutveckling, denna kurs

February 8, 2008 IS1200/2G1518 Datorteknik, föreläsning 4 vt2008 (E)58 Viktiga delar i en dator CPU BUS I/OMEM program data

February 8, 2008 IS1200/2G1518 Datorteknik, föreläsning 4 vt2008 (E)59 Programexekvering FETCH (update PC) (decode) EXECUTE

February 8, 2008 IS1200/2G1518 Datorteknik, föreläsning 4 vt2008 (E)60 Labkortet: Alteras DE2-board

February 8, 2008 IS1200/2G1518 Datorteknik, föreläsning 4 vt2008 (E)61 DE2-board Innehåller  FPGA – Field Programmable Gate Array som ”konfigureras” så att den fungerar som en niosII-processor !  Minne (som innehåller program och data)  Bus-ledningar som förbinder ”CPU” med minne  IO-portar – parallell och serie  JTag-port

February 8, 2008 IS1200/2G1518 Datorteknik, föreläsning 4 vt2008 (E)62 serieport parallellport MEM ”CPU” DE2-board: komponenter USB Blaster Port

February 8, 2008 IS1200/2G1518 Datorteknik, föreläsning 4 vt2008 (E)63 Alteras DE2-board CPU (FPGA) ”BUS” I/O (portar) MEM (RWM) program data

February 8, 2008 IS1200/2G1518 Datorteknik, föreläsning 4 vt2008 (E)64 DE2-board Konfigurera FPGA:n Genom att ”ladda ner” en speciell fil (fil.sof) genom en speciell kabel/sladd (USB/Jtag) till en speciell kontakt (JTag-port) skrivs information in i FPGA-kretsen så att den kommer att fungera som en NiosII-CPU. Detta görs med Quartus Programmer

February 8, 2008 IS1200/2G1518 Datorteknik, föreläsning 4 vt2008 (E)65 Konfigurering av FPGA:n med filen DE2_N2_ C.sof FPGA NiosII-CPU BUS I/OMEM program data

February 8, 2008 IS1200/2G1518 Datorteknik, föreläsning 4 vt2008 (E)66 Starta exekvering på NiosII-processorn Ladda ner binärkod till minnet Starta exekvering på rätt adress (på läget main måste det vara)

February 8, 2008 IS1200/2G1518 Datorteknik, föreläsning 4 vt2008 (E)67 Nedladdning till minnet av ditt program (och data) main.elf FPGA BUS I/OMEM program data

February 8, 2008 IS1200/2G1518 Datorteknik, föreläsning 4 vt2008 (E)68 Program development editering, översättning och exekvering Nästa sida visar hur det kan se ut på skärmen när man ”skriver och provkör” ett program

February 8, 2008 IS1200/2G1518 Datorteknik, föreläsning 4 vt2008 (E)69

February 8, 2008 IS1200/2G1518 Datorteknik, föreläsning 4 vt2008 (E)70 Debugging programs Test och felsökning Nästa sida visar hur det kan se ut på skärmen när man Testar och felsöker ett program med hjälp av stegvis exekvering och brytpunkter

February 8, 2008 IS1200/2G1518 Datorteknik, föreläsning 4 vt2008 (E)71

February 8, 2008 IS1200/2G1518 Datorteknik, föreläsning 4 vt2008 (E)72 Konfigurera DE2-board (programmera FPGA:n) Nästa sida visar hur det kan se ut på skärmen när man Konfigurerar FPGA-kretsen så att den fungerar som en niosII-CPU

February 8, 2008 IS1200/2G1518 Datorteknik, föreläsning 4 vt2008 (E)73 Starta Quartus Programmer från NiosII IDE Kontrollera Hardware Setup ska vara USB-Blaster (USB-0) Välj rätt ”sof-fil” Klicka in en bock i rutan Program/Configure Klicka på Start Kontrollera ”Successfully performed operation(s)”

February 8, 2008 IS1200/2G1518 Datorteknik, föreläsning 4 vt2008 (E)74 Quartus programvara Används för att ”konstruera” den krets som FPGA:n ska konfigureras att fungera som I Quartus kan man använda VHDL och/eller schemainmatning Quartus levererar två samhörande konfigureringsfiler, en ”sof-fil” och en ”ptf-fil” sof-filen används för att ”ladda ner” konstruktionen till FPGA-kretsen på DE2-board ptf-filen används vid skapande av en biblioteksfil som är med i ett programprojekt som utvecklas för att exekveras på DE2-board

February 8, 2008 IS1200/2G1518 Datorteknik, föreläsning 4 vt2008 (E)75 Varför behövs konfigureringsfilen Nios2system_ C.ptf I dina program kan Du använda subrutinen putchar. Konfigureringsfilen innehåller information om hårdvarans adresser som krävs för att putchar ska fungera i dina program Därför måste konfigureringsfilen tas med i ditt projekt och länkas ihop med dina program För varje nytt projekt anges en ptf-fil

February 8, 2008 IS1200/2G1518 Datorteknik, föreläsning 4 vt2008 (E)76