Maskinorienterad programmering
|
|
- Gun Sandberg
- för 4 år sedan
- Visningar:
Transkript
1 Institutionen för data och informationsteknik. Roger Johansson, Ulf Assarsson Maskinorienterad programmering Laborationer Detta laborations-pm innehåller anvisningar om förberedelser inför genomförande av laborationerna, såväl som de uppgifter du ska utföra och redovisa under laborationerna. Laborationsserien omfattar totalt fem laborationsmoment som utförs i tur och ordning under fem laborationstillfällen Inför varje laborationstillfälle ska du förbereda dig genom att noggrant läsa igenom anvisningarna för laborationsmomentet i detta PM. Bortsett ifrån det första laborationstillfället förutsätts det att du inför varje laboration har genomfört omfattande laborationsförberedande hemuppgifter. Vilka dessa uppgifter är, framgår av detta PM. Du ska vara beredd att visa upp och redogöra för dina förberedda lösningar inför laborationstillfället. Bristfälliga förberedelser kan medföra avvisning från bokad laborationstid. Underskrifterna på detta försättsblad är ditt kvitto på att du är godkänd på respektive laborationsmoment. Spara det, för säkerhets skull, tills slutbetyg på kursen rapporterats. Börja med att skriva ditt namn och personnummer med bläck. Personnummer Namn (textat) Följande tabell fylls i av laborationshandledare efter godkänd laboration. Laboration Datum Godkännande av laboration Laborationshandledares underskrift Godkännande hel laborationsserie: Datum Laborationshandledares underskrift
2 Översikt av laborationsserien Under laborationsserien utför du uppgifter där du konstruerar och testar ett enklare dataspel av lite äldre modell. Kompletterande material För laborationernas genomförande behöver du, utöver kurslitteraturen, program och diverse tekniska beskrivningar. I kursen används följande program som finns att ladda hem bland annat från kursens resurssida (se kurs-pm): ETERM8 - Integrerad miljö för programutveckling i assemblerspråk GDB - Gnu Debugger för ARM-processorer CodeLite Integrerad utvecklingsmiljö GCC för ARM Korsutvecklingsverktyg C, C++ för ARM-processorer GDB SimServer MD407-simulator för användning med GDB (CodeLite) Utöver dessa används på laborationsplatsen (du behöver normalt sett inte installera USBDM på din egen maskin) även: USBDM GDB-Server - för JTAG-gränssnitt USBDM. Dessutom finns följande beskrivningar tillgängliga på elektronisk form via kursens resurssida. Läsanvisningar som ges i detta lab-pm avser dessa dokument. För laborationsdator MD407: MD407 beskrivning STM32F4xx Cortex M4 programming manual STM32F407 datasheet STM32F407 reference manual För laborationskort som används under laborationsserien: Lysdiodstapel ("bargraph") Binär till 7-segment DIL-switch LCD-modul Hexadecimal till 7-segment Keypad IRQ Flip-Flop Datablad LCD - ASCII Datablad LCD - Grafisk 2
3 Terminalövning: test och felavhjälpning i assemblerprogram Under denna laboration: bekantar du dig med laborationssystemet lär dig grunderna för test och felavhjälpning med hjälp av monitor/debugger respektive JTAG-baserade verktyg. Du kommer att undersöka och prova hårdvara: laborationssystemet MD407 med monitor/debugger dbgarm microcontroller ST32F407 med debugger GDB I/O-enheter DIL-switch, 7-segmentsdisplay. Enklast förbereder du dig genom att: 1. Läs först översiktligt igenom detta laborationsavsnitt. Orientera dig om de läsanvisningar som ges 2. Arbeta igenom kapitel 1 t.o.m 3 i Arbetsbok för MD407. Det rekommenderas att du försöker hinna med att göra samtliga övningsuppgifter i kapitlen. Några av uppgifterna är dessutom direkt förberedande för laborationen. 3. Kontrollera att du utfört de uppgifter som ska vara lösta före laborationstillfället. Detta sparar ansenligt med tid under laborationen och är nödvändigt för att du ska hinna utföra laborationen under den tillgängliga laborationstiden. Följande laborationsuppgifter ur denna del av laborations-pm skall redovisas för en handledare för godkännande under laborationen. Då alla moment är godkända signeras också försättsbladets laboration 1. Uppgift i arbetsbok Laborationsuppgift Sign. 3
4 Översikt av laborationssystemets hårdvara Laborationsdator MD407 Anslutningar Laborationsuppsättningen ska vara korrekt ansluten då du kommer till laborationsplatsen, men kontrollera för säkerhets skull anslutningarna. Laborationssystemet MD407 ansluts till terminalfunktionen i ETERM via anvisad USB-port. Laborationskort anslutes till MD407:s portar enligt DIL-switch PE0-7 Bargraph PD0-7 Strömförsörjning sker direkt från USB-anslutningen, det finns därför ingen anslutning till DCjacket på MD407. Kontrollera att omkopplaren för val av strömförsörjning står i läge USB. 4
5 Utvecklingsmiljö Under denna laboration behandlas uteslutande program skrivna i assemblerspråk. Du får användning för: ETERM8 - Integrerad miljö för programutveckling i assemblerspråk GDB - Gnu Debugger för ARM-processorer USBDM GDB-Server - för JTAG-gränssnitt USBDM. Du kan förbereda dig för användning av GDB med hjälp av SimServer. Denna applikation beter sig på samma sätt som en USBDM-GDB-Server men simulerar i stället laborationssystemet. Se arbetsbokens kapitel 3. Simulatormiljö: Laborationsmiljö: Simulatormiljö: Laborationsmiljö: 5
6 Monitor/debugger dbgarm När vi ansluter MD407:s debugport till en USB-port på värdsystemet och startar ett terminalfönster i ETERM fungerar värdsystemet som en dum terminal bestående av tangentbord och bildskärm. Vi använder då följande konfiguration: Allt som skrivs på tangentbordet skickas från ETERM direkt ner till MD407. I MD407 finns ett enkelt program som kallas monitor/debugger (dbgarm). Programmet är, som namnet antyder avsett för övervakning och test. dbgarm lyssnar hela tiden på kommandon från tangentbordet bortsett från när MD407 är upptaget av något applikationsprogram. För att återgå till dbgarm i detta fall krävs RESET (omstart) av MD407. Huvudprogrammet i dbgarm är utformat som en enkel kommandotolk, där en rad olika kommandon accepteras. 6
7 Laborationsuppgift 1.1: Starta ETERM och öppna därefter ett fönster till laborationsdatorn: Kontrollera att laborationsdatorn är ansluten till en USB-port. Maximera sektionen Messages. Välj Console-fliken och ange den port laborationsdatorn är ansluten till. Vilken port det är kan variera mellan olika miljöer. Fråga laborationshandledaren om du är osäker, skriv porten i det lilla fönstret. I detta fallet är serieporten ansluten till COM31 vilket man även kan undersöka via Windows Device Manager. OBSERVERA: Senare Windows kräver att portarna skrivs med den utökade syntaxen \\.\comx. Välj 'Connect' för att starta kommunikationsprogrammet: Om du använder LINUX: Då laborationsdatorn anslutits skapas en ny enhet, typiskt /dev/ttyusbx (x=0,1,2 osv.) Den är dock bara tillgänglig för ROOT. Ändra behörigheten enligt: sudo chmod 666 /dev/ttyusbx Skriv enhetens namn, dvs: /dev/ttyusbx i det lilla fönstret och anslut. Då ETERM anslutit via porten färgläggs fönstrets bakgrund blått. Tryck RESET på laborationssystemet: och kontrollera att debuggern identifierar sig genom att text skrivs till terminalfönstret. Konsollfönster bör då se ut ungefär som följande figur. Om ingen text skrivs till skärmen eller om texten är oläslig, kontakta en handledare. detta kallas prompter Den sista raden kallas för monitorns prompter och innebär att dbgarm är redo att ta emot kommandon från dig. 7
8 Varje gång du trycker ska dbgarm skriva en ny prompter till terminalen. Om så inte är fallet betyder det att dbgarm är upptagen och kanske rentav hängt sig eller spårat ur. Lösningen på ett sådant problem är att göra RESET på MD407. Du kan få hjälp med dbgarm:s kommandon. Skriv: help Under denna laboration får du tillfälle att prova samtliga dessa kommandon. Kommandot help kommando" Du kan undersöka ett specifikt kommando genom att skriva: help kommando. Prova exempelvis help dm Kommandot display memory (dm) Du ska nu undersöka minnesinnehållen i några olika minnesområden i systemet. Adressrymden hos MD407 används enligt följande: I adressrymden Block 0 kod (FLASH-minne) finns dbgarm. Adressrymden Block 1 SRAM används till en liten del för dbgarm, men större delen är tillgänglig för att ladda ner och testa program för MD407 (Reserverat för applikation). 8
9 Skriv: dm för att visa innehållet i minnet. Innehållet är nonsens eftersom det bestäms slumvis då MD407 spänningssätts. Adressangivelsen anges till vänster, minnesinnehållet i mitten och till höger visas tolkningen i form av ASCII-koder. Om man försöker använda minne utanför det tillgängliga området kommer processorns minneshanteringsenhet att upptäcka detta och avbryta. I dbgarm tas detta upp som ett Bus Fault Exception. Prova nu detta, exempelvis med Skriv: dm för att lösa ut minnesfelshanteringen. Kommandot modify memory (mm) Vi ska nu använda kommandot mm för att försöka ändra minnesinnehåll på några olika ställen i MD407:s adressrum. Ge kommandot: mm för att visa och ha möjlighet att ändra minnesinnehållet på adressen. Har du samma minnesinnehåll som i figuren till höger? Skriv in ett nytt värde 0, för att ändra innehållet på adressen. dbgarm svarar med att skriva ut raden på nytt med det nya värdet. 9
10 Tryck på + (plus) för att visa minnesinnehållet på nästa adress. Tryck på (minus) för att visa minnesinnehållet på föregående adress. Försök ändra minnesinnehållet på adress 0. Varför går inte det? Kommandot show/change register (reg) Kommandot används för att visa eller ändra innehåll i processorns register. Det finns åtskilliga varianter av kommandot, ge kommandot help reg för en översikt. reg reg register reg register value visa registerinnehåll visa innehållet i ett speciellt register placera värdet value (hexadecimal form) i register Efterson reg-kommandot utförs automatiskt vid trace-kommandon eller vid stopp på brytpunkt (beskrivs nedan) kan det ibland vara praktiskt att stänga av utskrifterna. Detta gör man genom att ge kommandot: reg hide all : dölj utskrift av alla register Man kan också ange om man vill visa eller dölja grupper av register: int: float: spec: generella register, R0 t.o.m. R12 register för flyttal, S0 t.o.m S31 speciella register, bland andra: PC, SP, LR och APSR. Prova några kommando för att visa generella och speciella register. Prova också med att ändra registerinnehåll. 10
11 Kommandot load application program (load) Program och data i form av S-formatfiler, kan överföras till laborationsdatorn med hjälp av loadkommandot. Det finns tre behändiga sätt att ladda en fil till laborationsdatorn: Klicka på Download i verktygslisten,. eller högerklicka i det blå fönstret Då du använder något av dessa alternativ öppnas en dialog som ger dig möjlighet att välja den fil du vill ladda till laborationsdatorn. Ett tredje sätt är att använda navigatorfönstret, högerklicka på filnamnet under Loadfile: Om du använder någon annan terminalfunktion än ETERM8 måste du ge kommandot manuellt, dvs. load, därefter starta en överföring med terminalprogrammet. Kommandot disassemble (dasm) Disassembleringskommandot översätter minnets innehåll till assemblerinstruktioner. Det kan ges i tre former: tr tr adress tr adress antal tr + utför en instruktion från PC utför en instruktion från adress utför antal instruktion från adress aktivera hot trace dasm adress antal_instruktioner dasm adress dasm disassemblera 16 instruktioner från adress fortsätt disassemblering från där den sist avslutades 11
12 Laborationsuppgift 1.2: I Arbetsbokens uppgift 1.2 har du skapat filen mom1.asm. Assemblera denna och ladda (mom1.s19) till MD407. Kontrollera och ange vad följande register innehåller: PC SP LR Disassemblera minnesinnehållet fr.o.m. programmets startadress, komplettera följande tabell, identifiera de symboler som definierats och de konstanter som assemblatorn skapat i kolumnen längst till höger: LDR R0,[PC,12#] start A A C E E7FC B 0x A C C A C E 4002 Jämför nu med den listfil (mom1.lst) som genererades vid assembleringen, vilka skillnader finner du bortsett från att typsnitt och versaler/gemena kan skilja? 12
13 Då programmet laddats till laborationsdatorn kan man börja testa funktionen. Detta sker huvudsakligen på två olika sätt, instruktionsvis exekvering, trace, vilket innebär att dbgarm utför en instruktion. Därefter skrivs en ny prompter och dbgarm är beredd att ta emot ett nytt kommando. programmet utförs, startas med go-kommandot. Ofta används då också så kallade brytpunkter för att stoppa exekveringen vid någon speciell instruktion. Kommandot step (trace) application program (tr) trace-kommandot kan ges i flera former: tr utför en instruktion från PC tr adress utför en instruktion från adress tr adress antal utför antal instruktion från adress tr + aktivera hot trace tr deaktivera hot trace Då hot trace är aktiverad räcker det med att ge kommandot. (punkt) vid promptern. Detta tolkas då som kommandot tr. Kommandot run application program (go) go-kommandot används för att starta ett applikationsprogram. go adress go go -n Formen används för att starta ett tillämpningsprogram som börjar på adress. Samma som föregående men programmet startas från adress som anges av användarregistret PC. Utför program till nästa instruktion. Speciellt används formen då man vill utföra en hel subrutin. Kommandot breakpoints (bp) bp-kommandot används för att visa, sätta ut och ta bort brytpunkter i tillämpningsprogrammet. En brytpunkt är antingen aktiv eller inaktiv. Om brytpunkten är aktiv, kommer dbgarm att avbryta utförandet av tillämpningsprogrammet då processorn skall utföra den instruktion som ersatts med brytpunkt. Brytpunkterna placeras (internt) av dbgarm i en brytpunktstabell. Maximalt 10 brytpunkter åt gången kan hanteras av dbgarm. Brytpunkterna numreras ("namnges") 0 t.o.m.9. bp bp num set adress bp num dis bp num en bp num rem bp clear Hela brytpunktstabellen skrivs till skärmen. För varje brytpunkt skrivs, om den används för tillfället, om den är aktiv och dess adress. Används för att sätta ut en ny brytpunkt. num skall vara brytpunktens nummer och tolkas av DBG som ett decimalt tal. adress är brytpunktens adress. Om en annan brytpunkt tidigare definierats med samma nummer modifieras denna brytpunkt. Brytpunkten är aktiv. Inaktiverar brytpunkt num om denna är aktiv. Brytpunkten behålls i tabellen men orsakar inget programavbrott. Aktiverar brytpunkt num om denna tidigare var inaktiv. Tar bort brytpunkt num ur brytpunktstabellen. Tar bort samtliga brytpunkter ur brytpunktstabellen. 13
14 Laborationsuppgift 1.3: Kontrollera att adressen i PC är och ge kommandot tr eller ge kommandot tr för att utföra den första instruktionen. Beskriv kortfattat vad som då händer, vad ser du i konsollfönstret? Vilket innehåll har register R0 efter den första instruktionen? Vad innebär den sista radens utskrift? Identifiera nu adressen till instruktionen STR R0,[R1,#0] efter symbolen main och sätt en brytpunkt på denna adress. Ange kommandot för detta här: Starta därefter programmet med go-kommandot. Beskriv vad som då händer, vad ser du i konsollfönstret? Ta bort brytpunkten och starta på nytt programmet. Kan du ge kommandon till dbgarm nu? Tillkalla nu en handledare för godkännande av denna del av laborationen. Därefter får du hjälp av handledaren med att koppla om laborationssystemet för resten av laborationen. 14
15 Användning av GDB Vi ska nu övergå till att använda följande konfiguration: Laborationsuppgift 1.4: Redigera en källtext enligt följande och spara som fil start: MOV main: ADD B R0,#0 R0,R0,#1 main Assemblera filen, rätta eventuella fel. Starta programmet ARM-GDB-Server: Kontrollera att GDB-server fått kontakt med USBDM. Du ser det i rutan Select BDM. Om det står No devices found här, kontrollera att USBDM är ansluten och att den gröna dioden lyser. I Target Vdd control väljer du 3,3 Volt vilket innebär att man nu strömförsörjer MD407 från USBDM via JTAG-gränssnittet. Växla till fliken Target: 15
16 Kontrollera i Device Selection att USBDM ställs in för rätt microcontroller. Det ska stå STM32F407 här. Om det står något annat, klicka på Detect Chip. I GDB Server Port skriver du portnumret Då detta är korrekt startar du GDB-server genom att klicka på Keep Changes. GDB-Server väntar nu på att debuggern GDB ska starta kommunikationen via port Starta GDB för ARM: GDB identifierar sig nu med en rad utskrifter, slutligen skrivs GDB:s prompter till terminalen: (gdb) Det kan vara praktiskt att sätta aktuellt bibliotek, det gör du med cd-kommandot. 16
17 (gdb) cd <komplett sökväg> Ange nu den fil du vill arbeta med med file-kommandot: (gdb) file gdbtest1.elf GDB läser in objektfilen med binär kod och symbolinformationen. För att koppla ihop GDB med vår GDB-server, ger du kommandot: (gdb) target extended-remote localhost:1234 GDB gör nu RESET på MD407, däremot startas inte den inbyggda debuggern. Vilken adress visar GDB? Vad kan detta vara för adress? Med load-kommandot, laddas nu kod och data till MD407: (gdb) load Med list-kommandot kan du studera programmets källtext, exempelvis med (gdb) list 1,10 Ett annat användbart kommando är info, för att studera processorns registerinnehåll: (gdb) info registers Instruktioner för programexekvering ge kommandot stepi (step instruction) GDB låter MD407 utföra en assemblerinstruktion och disassemblerar nästa. Vilken instruktion står nu i tur att utföras? stega ytterligare 5 instruktioner med kommandot: (gdb) stepi 5 Upprepa föregående kommando (stepi 5) genom att bara trycka Undersök värdet i R0 med kommandot: (gdb) info register r0 Laborationsuppgift 1.5: Starta nu om programmet genom att ge load-kommandot på nytt. Ge kommandot stepi 100 observera dioderna på USBDM. Den gröna dioden blinkar då USBDM är upptagen. Vänta tills kommandot utförts, vad innehåller nu R0? 17
18 Laborationsuppgift 1.6: Prova nu programmet gdbtest2.elf, som utför in- och utmatning. Ge kommandon. (gdb) file gdbtest2.elf (gdb) load Starta programmet: (gdb) c Portarna fungerar inte denna gången. Förklaringen ligger i att GPIO-portarna måste aktiveras, dvs. deras respektive klockor måste aktiveras, innan de kan användas. Detta, bland annat, görs av dbgarm då MD407 startas på vanligt sätt från RESET. Då GDB startar MD407 startas emellertid inte dbgarm och vi måste därför själva göra detta i vår initieringsrutin för att kunna felsöka med hjälp av USBDM. (Se: RCC AHB1 peripheral clock register (RCC_AHB1ENR) på sidan 178 i STM32F407-Reference manual) Utgå från gdbtest2.asm, spara denna som gdbtest3.asm. Aktivering av portarna ska göras omdelbart, dvs. före den sekvens som konfigurerar port D. Följande tilldelning, i C, utför detta: /* starta klockor port D och E */ * ( (unsigned long *) 0x ) = 0x18; Visa här den instruktionssekvens, i assembler, som krävs för att aktivera portar D och gdbtest3.elf aktivera portar D och E LDR LDR R0,=0x R1,=0x40020C00 Assemblera gdbtest3.asm och rätta eventuella fel. Prova nu programmet gdbtest3.elf. Ge kommandon. (gdb) file gdbtest3.elf (gdb) load Starta programmet: (gdb) c Kontrollera att programmet nu fungerar som det ska.. 18
19 CodeLite och GDB I föregående laborationsuppgift har du sett hur man kan använda GDB för att testa program i MD407 utan att använda den inbyggda monitor/debuggern dbgarm. Under nästa laborationsuppgift ska du nu se hur man kan koppla sammand utvecklingsmiljön (CodeLite) med GDB och testa program på källtextnivå. Laborationsuppgift 1.7: Avsluta nu programmet GDB för ARM och starta i stället CodeLite. Utgå från projekt basic_io (uppgift 3.3) i Arbetsboken Komplettera funktionen app_init med kod som aktiverar portar D och E #ifdef USBDM /* starta klockor port D och E */ * ( (unsigned long *) 0x ) = 0x18; #endif Välj nu Project Settings, fliken Compiler; på raden Preprocessors kan du definiera symboler som används vid kompilering av programmet. Definiera symbolen USBDM så att den kod du lagt till (villkorligt) också kompileras och ingår i ditt program: Kontrollera att ARM GDB Server är startad (SimServer ska INTE användas nu). Starta GDB från CodeLite på samma sätt som då du använde SimServer när du gjorde uppgiften i Arbetsboken. Kontrollera programmets funktion med GDB och USBDM i CodeLite. Exekvera programmet (rad för rad) och kontrollera funktionen. Använd därefter terminalfunktionen i CodeLite (Output View Eterm Console), ange den COM-port som MD407 är ansluten till (jämför den inledande uppgiften i laboration 1), gör RESET på MD407, kontrollera att dbgarm startas, ladda ned programmet på nytt och starta det med kommandot go Användbar verktygslist för GDB i CodeLite: Starta debugger starta exekvering av programmet Stoppa debugger Avbryt exekverande program Återstarta (används ej med ARM) Visa aktuell rad, (om ingen exekveringspunkt visas i debuggern) Utför nästa sats i programmet Utför nästa rad i programmet Exekvera färdigt aktuell funktion 19
20 Laborationsuppgift 1.8: Avslutningsvis ska du nu provköra ett program du själv ska konstruera inför nästa laboration. Filen: lab2_1.s19 hämtar du från kursens hemsida (Kursmaterial/Testfiler för laborationer): Laborationsuppsättningen ska nu kopplas upp på samma sätt som inför laboration 2: Laborationskort anslutes till MD407:s portar enligt Keypad PD8-15 (Binär till) 7-segments display PD0-7 Laborationssystemet MD407 ansluts till terminalfunktionen i ETERM8 (jämför med laborationsuppgift 1.1). Ladda ned filen med hjälp av terminalfunktionen. Starta programmet med go Tryck ned tangenter på keypaden, observera displayen, kontrollera att tangentnedtryckningen detekteras och att motsvarande tangent tänds på displayen. 20
21 Laboration 2 Laboration nr 2 behandlar Introduktion till maskinnära C, synkronisering och tidmätning Under denna laboration: praktiserar du kunskaper i maskinnära C-programmering får du också se hur ett program måste kunna synkroniseras med hårdvara, i detta fall i form av en ASCII-display. Du kommer att undersöka och prova hårdvara: I/O-enheter Keypad, 7-segments display och en LCD-ASCII display. SysTick, en räknarkrets med hög noggrannhet. Enklast förbereder du dig genom att: 1. Läs först översiktligt igenom detta laborationsavsnitt. Orientera dig om de läsanvisningar som ges 2. Arbeta igenom kapitel 4 och 5 (fram till "Drivrutin för grafisk display") i Arbetsbok för MD407. Det rekommenderas att du försöker hinna med att göra samtliga övningsuppgifter i kapitlen. Några av uppgifterna är dessutom direkt förberedande för laborationen. 3. Kontrollera att du utfört de uppgifter som ska vara lösta före laborationstillfället. Observera att detta i praktiken innebär att du måste lösa en sekvens av tidigare uppgifter i respektive kapitel. Uppgifter i arbetsboken ger dig huvudsakliga lösningar på laborationsuppgifterna och ska vara utförda innan laborationen påbörjas. Observera att simulatorer sällan beter sig exakt på samma sätt som hårdvaran då det gäller realtidsegenskaper. Varje simulator är en avvägning mellan noggrannhet och exekveringstid (fördröjningar i simulatorn). Även om ditt program fungerar i simulatorn är det därför inte garanterat att det fungerar i hårdvara. Följande laborationsuppgifter ur denna del av laborations-pm skall redovisas för en handledare för godkännande under laborationen. Då alla moment är godkända signeras också försättsbladets laboration 2. Uppgift i arbetsbok Laborationsuppgift Sign. 21
22 Laboration 2 Läsanvisningar: Arbetsbok kapitel 4 Beskrivning av 7-segmentsdisplay Beskrivning av Keypad Anslutningar Laborationsuppsättningen ska vara korrekt ansluten då du kommer till laborationsplatsen, men kontrollera för säkerhets skull anslutningarna. Laborationssystemet MD407 ansluts till terminalfunktionen i CodeLite via anvisad USB-port. Laborationskort anslutes till MD407:s portar enligt Keypad PD8-15 (Binär till) 7-segments display PD0-7 Strömförsörjning sker nu från DC-jacket på MD407. Kontrollera att omkopplaren för val av strömförsörjning på MD407 står i läge EXT. Laborationsuppgift 2.1: Börja med att kontrollera att utrustningen är rätt konfigurerad och fungerar korrekt genom att ladda testfilen lab2_1.s19 till MD407 och testa programmets funktion. Tillkalla handledare om programmet inte beter sig som det ska. Skriv en applikation som kontinuerligt läser av tangentbordet. Om någon tangent är nedtryckt, ska dess hexadecimala tangentkod skrivas till 7-segmentsdisplayen. Om ingen tangent är nedtryckt ska displayen släckas. Applikationen ska vara komplett med startup, main, initieringsfunktion och portdefinitioner, etc. Den ska dessutom utformas så att du enkelt kan testa den både med USBDM och med dbgarm: void init_app( void ) { #ifdef USBDM Tänk på att klockan för port D måste aktiveras för att du ska kunna felsöka med USBDM (Jämför med laborationsuppgift 1.7). /* starta klockor port D och E */ * ( (unsigned long *) 0x ) = 0x18; #endif /* initiera port D */ } /* main */ void main(void) { unsigned char c; init_app(); } while( 1 ) { c = keyb(); out7seg( c ); } Kontrollera programmets funktion med GDB och USBDM i CodeLite. Använd därefter terminalfunktionen i CodeLite (Output View Eterm Console), ange den COM-port som MD407 är ansluten till (jämför den inledande uppgiften i laboration 1), gör RESET på MD407, kontrollera att dbgarm startas, ladda ned programmet på nytt och starta det med kommandot go
23 Laboration 2 Anslutningar Inför nästa uppgift ska ytterligare en laborationsmodul användas. Laborationskort anslutes till MD407:s portar enligt Bargraph PE7-0 Låt anslutningarna från föregående uppgift vara kvar. Laborationsuppgift 2.2: Börja med att kontrollera att utrustningen är rätt konfigurerad och fungerar korrekt genom att ladda testfilen lab2_2.s19 till MD407 och testa programmets funktion. Tillkalla handledare om programmet inte beter sig som det ska. I denna uppgift ska du konstruera tre fördröjningsrutiner. void delay_250ns( void ); void delay_mikro(unsigned int us); void delay_milli(unsigned int ms); Rutinerna fördröjer de anropande funktionerna. delay_250ns: Fördröjer anropande funktion minst 500 ns. delay_mikro: Fördröjer anropande funktion minst us mikrosekunder. delay_milli: Fördröjer anropande funktion minst ms millisekunder. Applikationen ska vara komplett med startup, main och portdefinitioner, etc. SysTickfunktionen ska användas. Den ska dessutom utformas så att du enkelt kan testa den både med USBDM och med dbgarm: void init_app( void ) { Även här måste klockan för port D aktiveras men dessutom måste processorns basklocka konfigureras för rätt arbetsfrekvens (168 MHz) för att realtidsfördröjningen ska bli rätt.vi gör det här enklast genom att använda en funktion som finns inbyggd i dbgarm på adress 0x Följande kod kan då användas för att utföra de nödvändiga initieringarna: #ifdef USBDM *((unsigned long *)0x ) = 0x18; /* starta klockor port D och E */ asm volatile( " LDR R0,=0x \n BLX R0 \n") /* initiera PLL */; #endif... initiera portar } void main( void ) { init_app(); } while(1) { Bargraph = 0; delay_milli(500); Bargraph = 0xFF; delay_milli(500); } Dvs. ljusdioderna ska tändas varje sekund och vara tända i en halv sekund. Kontrollera programmets funktion med GDB och USBDM i CodeLite. Använd därefter terminalfunktionen i CodeLite, gör RESET på MD407, kontrollera att dbgarm startas, ladda ned programmet på nytt och starta det med kommandot go
24 Laboration 2 Läsanvisning: Arbetsbok kapitel 5 Datablad ASCII-display, sidor 12-16, 25, 28,29,33,34 Anslutningar Inför nästa uppgift ska LCD-modulen kopplas till laborationssystemet. Eftersom LCD-modulen kan dra mer ström än den som levereras från USB-matningen måste vi nu använda extern strömförsörjning. Koppla bort Bargraph-modulen och 7-segments-displayen. Laborationskort anslutes till MD407:s portar enligt LCD-modul DATA PE8-15 LCD-modul CTRL PE0-7 Laborationsuppgift 2.3: Börja med att kontrollera att utrustningen är rätt konfigurerad och fungerar korrekt genom att ladda testfilen lab2_3.s19 till MD407 och testa programmets funktion. Tillkalla handledare om programmet inte beter sig som det ska. Skriv en applikation som som skriver text till ASCII-displayen. Applikationen ska vara komplett med startup, main, initieringsfunktion och portdefinitioner, etc. Den ska dessutom utformas så att du enkelt kan testa den både med USBDM och med dbgarm: void init_app( void ) { #ifdef USBDM *((unsigned long *)0x ) = 0x18; /* starta klockor port D och E */ asm volatile( " LDR R0,=0x \n BLX R0 \n") /* initiera PLL */; #endif... initiera portar } int main(int argc, char **argv) { char *s ; char test1[] = "Alfanumerisk "; char test2[] = "Display - test"; } init_app(); ascii_init(); ascii_gotoxy(1,1); s = test1; while( *s ) ascii_write_char( *s++ ); ascii_gotoxy(1,2); s = test2; while( *s ) ascii_write_char( *s++ ); return 0; Kontrollera programmets funktion med GDB och USBDM i CodeLite. Använd därefter terminalfunktionen i CodeLite, gör RESET på MD407, kontrollera att dbgarm startas, ladda ned programmet på nytt och starta det med kommandot go OBSERVERA: Tänk på att displayens bakgrundsbelysning kan behöva justeras för att texten ska synas på displayen. 24
25 Laboration 2 Laborationsuppgift 2.4: När vi stöter på fel i våra program behöver vi först kunna hitta och isolera felet innan vi kan åtgärda det. När vi skriver program i ett sammanhang där vi har möjlighet att skriva ut text på en skärm kan vi använda den för att markera att vi kommit till en viss punkt i programmet och/eller att skriva ut värdet på variabler etc. När vi arbetar maskinnära, utan ett operativsystem med den funktionalitet som ett sådant tillhandahåller, behöver vi använda andra metoder. Om vi använder GDB/USBDM för att kommunicera med MD407 har vi möjlighet att undersöka programmets tillstånd under körning. Brytpunkter erbjuder ett sätt att stoppa exekveringen där vi misstänker att ett fel kan ha uppstått och sedan stegvis fortsätta programmet till felet identifieras. Därtill finns möjligheten att inspektera och ändra variablers värde och minnet, disassemblering med mera (se Arbetsbok för MD407, avsnitt 3.3 Test och avlusning med Codelite). Om programmet istället körs via ETERM8 är möjligheterna att interaktivt undersöka programmet mindre. Den fil som laddas till MD407 (.s19) innehåller ingen symbolinformation, vilket innebär att all kommunikation med hårdvaran sker på en lägre nivå. Här är man hänvisad till att använda den inbyggda debuggern (dbgarm). Man måste då själv identifiera symbolers minnesadresser för att kunna visa värden, sätta brytpunkter etc. Vi arbetar nu åter igen med filerna från laborationsuppgift 2.1. Då projektet byggs skapas också en fil med ändelsen.dass (disassembly). Öppna denna fil med en textredigerare. Leta rätt på koden för huvudprogrammet main, identifiera adressen till anropet av funktionen keyb. Adressen till instruktionen omedelbart efter anropet är: Ladda ned programkoden (.s19) via ETERM8:s terminalfunktion. Sätt ut en brytpunkt på adressen omedelbart efter anropet till keyb. Starta därefter programmet. Programmet stoppas vid brytpunkten, vilket värde finns nu i register R0? Håll ned tangent A på tangentbordet, starta på nytt programmet som omedelbart stoppas på nytt vid brytpunkten. Vilket värde finns nu i R0? Fortsätt och prova ytterligare några tangentkoder, övertyga dig om att rätt värden returneras från funktionen. Ta nu bort brytpunkten före anropet till keyb och sätt i stället ut en brytpunkt på adressen där anropet till funktionen out7seg sker. Vad är giltiga värden för c i out7seg? Hur hanterar funktionen ogiltiga värden? Det måste du testa på annat sätt än att använda returvärdet från keyb. Kontrollera att out7seg hanterar ogiltiga värden korrekt (släcker displayen). Ledning, parametern c skickas till out7seg i register R0. 25
26 Laboration nr 3 behandlar Laboration 3 Grafisk display och keypad Under denna laboration: färdigställer du drivrutiner för en grafisk display. beskriver du dataobjekt (geometrier, dvs. utseende respektive förmågor som hastighet och rörelseriktning) som inkapslade datastrukturer i C. kommer du också att använda keypad-rutiner från förra laborationen för att styra ett objekts rörelser på den grafiska displayen. Du kommer att undersöka och prova hårdvara: En LCD grafisk display. Enklast förbereder du dig genom att: 1. Läs först översiktligt igenom detta laborationsavsnitt. Orientera dig om de läsanvisningar som ges 2. Arbeta igenom resterande delar av avsnitt 5 i Arbetsbok för MD407 (från "Drivrutin för grafisk Display"). Det rekommenderas att du försöker hinna med att göra samtliga övningsuppgifter i kapitlen. Några av uppgifterna är dessutom direkt förberedande för laborationen. 3. Kontrollera att du utfört de uppgifter som ska vara lösta före laborationstillfället. Observera att detta i praktiken innebär att du måste lösa en sekvens av tidigare uppgifter i respektive kapitel. Följande uppgifter i arbetsboken utgör huvudsakliga lösningar på laborationsuppgifterna och ska vara utförda innan laborationen påbörjas. Observera att simulatorer sällan beter sig exakt på samma sätt som hårdvaran då det gäller realtidsegenskaper. Varje simulator är en avvägning mellan noggrannhet och exekveringstid (fördröjningar i simulatorn). Även om ditt program fungerar i simulatorn är det därför inte garanterat att det fungerar i hårdvara. Följande laborationsuppgifter ur denna del av laborations-pm skall utföras/redovisas för en handledare för godkännande under laborationen. Då alla moment är godkända signeras också försättsbladets laboration 3. Uppgift i arbetsbok Laborationsuppgift Sign
27 Laboration 3 Läsanvisning: Arbetsbok kapitel 5 Datablad grafisk display, sidor Anslutningar Inför denna uppgift ska LCD-modulen kopplas till laborationssystemet. Eftersom LCD-modulen kan dra mer ström än den som levereras från USBmatningen måste vi nu använda extern strömförsörjning. Laborationskort anslutes till MD407:s portar enligt LCD-modul DATA PE8-15 LCD-modul CTRL PE0-7 Strömförsörjning sker nu från DC-jacket på MD407. Kontrollera att omkopplaren för val av strömförsörjning står i läge EXT. Laborationsuppgift 3.1: I denna uppgift ska du skapa en applikation som matar ut ett horisontellt och ett vertikalt streck till displayen som då ska se ut som bilden till höger. Efter att ha visats i en halv sekund, ska sedan strecken suddas ut så att displayen åter igen blir blank. Börja med att kontrollera att utrustningen är rätt konfigurerad och fungerar korrekt genom att ladda testfilen lab3_1.s19 till MD407 och testa programmets funktion. Tillkalla handledare om programmet inte beter sig som det ska. Kontrollera programmets funktion med GDB och USBDM i CodeLite. Använd därefter terminalfunktionen i CodeLite, gör RESET på MD407, kontrollera att dbgarm startas, ladda ned programmet på nytt och starta det med kommandot go Laborationsuppgift 3.2: Automatiskt PONG-spel Skapa en applikation med en liten boll som rör sig autonomt över den grafiska displayen huvudsakligen i horisontalled. Bollen ska också ha en vertikal rörelsekomponent. Anm: Tänk på att om uppdateringsfrekvens och hastighet är för höga kan det vara svårt att se bollen på displayen. Börja med att kontrollera att utrustningen är rätt konfigurerad och fungerar korrekt genom att ladda testfilen lab3_2.s19 till MD407 och testa programmets funktion. Tillkalla handledare om programmet inte beter sig som det ska. Kontrollera programmets funktion med GDB och USBDM i CodeLite. Använd därefter terminalfunktionen i CodeLite, gör RESET på MD407, kontrollera att dbgarm startas, ladda ned programmet på nytt och starta det med kommandot go
28 Laboration 3 Laborationsuppgift 3.3: Styr bollens bollens rörelseriktning Lägg till keypad-rutiner från laboration 2 så att du i stället kan styra bollens rörelse över skärmen, ditt huvudprogram ska nu se ut som följer: int main(int argc, char **argv) { char c; POBJECT p = &ball; init_app(); graphic_initalize(); graphic_clearscreen(); } while( 1 ) { p->move( p ); delay_milli(40); c = keyb(); switch( c ) { case 6: p->set_speed( p, 2, 0); break; case 4: p->set_speed( p, -2, 0); break; case 2: p->set_speed( p, 0, -2); break; case 8: p->set_speed( p, 0, 2); break; } } Börja med att kontrollera att utrustningen är rätt konfigurerad och fungerar korrekt genom att ladda testfilen lab3_3.s19 till MD407 och testa programmets funktion. Tillkalla handledare om programmet inte beter sig som det ska. Kontrollera programmets funktion med GDB och USBDM i CodeLite. Använd därefter terminalfunktionen i CodeLite, gör RESET på MD407, kontrollera att dbgarm startas, ladda ned programmet på nytt och starta det med kommandot go I mån av tid kan du nu prova ytterligare interaktion och prova andra sätt att påverka objektet. 28
29 Laboration nr 4 behandlar Laboration 4 Undantagshantering Under denna laboration: undersöker du processorns avbrottsmekanismer. konstruerar du en enkel applikation med interna avbrott. konstruerar du en enkel applikation med externa avbrott. Du kommer att undersöka och prova hårdvara: ett laborationskort med flera avbrottskällor. Enklast förbereder du dig genom att: 1. Läs först översiktligt igenom detta laborationsavsnitt. Orientera dig om, dvs. läs också översiktligt igenom, de hänvisningar som ges i avsnittet. 2. Arbeta igenom kapitel 6 i Arbetsbok för MD407. Det rekommenderas att du försöker hinna med att göra samtliga övningsuppgifter i kapitlen. Några av uppgifterna är dessutom direkt förberedande för laborationen. 3. Kontrollera att du utfört de uppgifter som ska vara lösta före laborationstillfället. Följande uppgifter i arbetsboken utgör huvudsakliga lösningar på laborationsuppgifterna och ska vara utförda innan laborationen påbörjas. Observera att dessa uppgifter, i sin tur, kräver att du löst ytterligare uppgifter som föregått dessa. Observera också att simulatorer sällan beter sig exakt på samma sätt som hårdvaran då det gäller realtidsegenskaper. Även om ditt program fungerar i simulatorn är det därför inte garanterat att det fungerar i hårdvara. Följande laborationsuppgifter ur denna del av laborations-pm skall utföras/redovisas för en handledare för godkännande under laborationen. Då momenten är godkända signeras också försättsbladets laboration 4. Uppgift i arbetsbok Laborationsuppgift Sign. 29
30 Laboration 4 Läsanvisningar: Arbetsboken, kapitel 6 Beskrivning av "IRQ Flip Flop Kort för avbrottsgenerering" Anslutningar Laborationskortet anslutes till MD407:s port enligt: Diodramp-modul - PD0-7 Strömförsörjning sker från DC-jacket på MD407. Kontrollera att omkopplaren för val av strömförsörjning står i läge EXT. Laborationsuppgift 4.1: Meddelandeskickning, internt avbrott med SysTick I denna uppgift ska en fördröjningsrutin med avbrottsdriven SysTick-räknare konstrueras. Laborationsuppgiften baseras på en uppgift i arbetsboken där du kunnat testa ditt program med SimServer. För att kunna gå vidare och testa programmet i laborationssystemet med USBDM måste ytterligare initieringar göras (jämför med tidigare laboration). Dessa placeras lämpligen först i funktionen init_app. Börja med att kontrollera att utrustningen är rätt konfigurerad och fungerar korrekt genom att ladda testfilen lab4_1.s19 till MD407 och testa programmets funktion. Tillkalla handledare om programmet inte beter sig som det ska. Kontrollera ditt eget programs funktion. Att tänka på då du testar program med avbrott: För att kunna testa avbrott i program med USBDM krävs att du denna gång kompletterar init_app med följande initieringar som normalt görs av dbgarm: #ifdef USBDM /* starta klockor port D och E */ * ( (unsigned long *) 0x ) = 0x18; /* starta klockor för SYSCFG */ * ((unsigned long *)0x ) = 0x4000; /* Relokera vektortabellen */ * ((unsigned long *)0xE000ED08) = 0x2001C000; #endif Debug-mekanismen hos ST407 stänger av SysTick:s klocka vid instruktionsvis exekvering. I en simulator kan du exekvera programmet instruktionsvis, generera ett avbrott och fortsätta instruktionsvis exekvering för att studera programmets uppträdande. Med GDB och USBDM kan du inte stega dig igenom programmet instruktionsvis och förvänta dig att avbrottshantering sker. Detta beror på att GDB maskerar avbrott i dessa fall. I stället använder du brytpunkter i avbrottsrutinerna och startar exekvering av programmet från GDB. Anslutningar Inför nästa uppgift ska FlipFlop-modulen och en sifferdisplay kopplas till laborationssystemet. Laborationskortet anslutes till MD407:s port enligt: FlipFlop -modul (höger kontakt) PE0-7 Hexadecimal-sifferdisplay - PD0-7 Strömförsörjning sker från DC-jacket på MD407. Kontrollera att omkopplaren för val av strömförsörjning står i läge EXT. 30
31 Laboration 4 Laborationsuppgift 4.2: Laborationskort IRQ FlipFlop Skriv en enkel applikation som använder PE3 hos MD407 som avbrottsingång och som registrerar varje avbrott, med en enkel räknare, och i huvudprogrammet skriver ut antalet avbrott till en visningsenhet. Applikationen ska vara komplett med startup, main, initieringsfunktioner och avbrottshantering: void init_app( void ) { } void flipflop_interrupt_handler( void ) { } void main(void) { init_app(); while(1){ utport = count; } } Börja med att kontrollera att utrustningen är rätt konfigurerad och fungerar korrekt genom att ladda testfilen lab4_2.s19 till MD407 och testa programmets funktion. Tillkalla handledare om programmet inte beter sig som det ska. Kontrollera ditt eget programs funktion, tänk på att vipporna måste återställas manuellt mellan varje avbrott. Laborationsuppgift 4.3: Selektiv avbrottskvittens Utöka avbrottshanteringen från uppgift 4.2 så att: om IRQ0 aktiveras ökas räknaren med 1 om IRQ1 aktiveras nollställs räknaren om IRQ2 (periodiska avbrott) aktiveras så tänds och släcks omväxlande samtliga dioder på diodrampen. alla avbrott återställs i avbrottsrutinen. Prova speciellt om IRQ0 alltid ökar räknaren med 1 eller om en aktivering i stället gör att räknaren ökas med 2 eller mer. Här är det möjligt att kontaktstudsar hos strömbrytaren kan ge ett sådant resultat. Laborationsuppgift 4.4: Selektiv avbrottskvittens I den avslutande laborationsuppgiften ska du utnyttja flera IO-pinnar och ansluta tre olika avbrottskällor till tre olika IO-pinnar. Utgå från din lösning av uppgift 4.3. Avbrottsrutinen ska nu delas upp i tre olika avbrottsrutiner, en för varje avbrottskälla, IRQ0, IRQ1 och IRQ2. Funktionen ska vara den samma som tidigare, men du ska nu konfigurera så att: IRQ0 kopplas till EXTI0 IRQ1 kopplas till EXTI1 IRQ2 kopplas till EXTI2. 31
32 Laboration 5 Laboration nr 5 Applikationsprogrammering Under denna laboration: konstruerar du en komplett applikation med flera olika typer av IO-enheter. Du väljer själv vad du vill göra för applikation men ett förslag kan vara ett enkelt datorspel. Du kan söka inspiration till sådana spel på Internet, några klassiska varianter är: Pong Breakout Space invaders Tetris Se exempelvis där kan också du prova spelen. På kursens hemsida finns ytterligare "coola spel", på laddformat, som konstruerats av tidigare kursdeltagare. Du kan förstås hämta inspiration även från dessa! Följande laborationsuppgifter ur denna del av laborations-pm skall redovisas för en handledare för godkännande under laborationen. Laborationsuppgift 5.1 Sign. Laborationsuppgift 5.1: Konstruera, implementera och demonstrera en komplett applikation. Applikationen ska Använda såväl grafisk som alfanumerisk display Använda någon form av inmatningsenhet, keypad och eller USART 32
33 33
Maskinorienterad programmering
Institutionen för data och informationsteknik. Roger Johansson, Ulf Assarsson 2017-09-27 Maskinorienterad programmering Laborationer Detta laborations-pm innehåller anvisningar om förberedelser inför genomförande
Maskinorienterad programmering
Institutionen för data och informationsteknik. Roger Johansson, Ulf Assarsson 2016-03-17 Maskinorienterad programmering Laborationer (1-3 av 5) Detta laborations-pm innehåller anvisningar om förberedelser
Maskinorienterad programmering
Institutionen för data och informationsteknik. Roger Johansson, Ulf Assarsson 2016-10-08 Maskinorienterad programmering Laborationer Detta laborations-pm innehåller anvisningar om förberedelser inför genomförande
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)
Laboration nr 4 behandlar Assemblerprogrammering
Laboration nr 4 behandlar Assemblerprogrammering Följande upp gifter ur Arbetsbok för DigiFlisp ska vara utförda som förberedelse för laborationen. Du ska på begäran av laborationshandledare redogöra för
Maskinorienterad programmering
Undantagshantering och interna avbrott ARM Cortex-M4 exceptions, programmering av undantagshantering Ur innehållet: Faults Software traps Avbrott från interna enheter, Systick Läsanvisningar: Arbetsbok
Maskinorienterad Programmering LP3-2017/2018
Maskinorienterad Programmering LP3-2017/2018 Lars Bengtsson, D&IT Syften, målsättningar, kurslitteratur och genomförande Översikt av laborationer Introduktion till ARM-processorn och till laborationssystemet
Maskinorienterad Programmering IT2, LP2-2016/2017
Maskinorienterad Programmering IT2, LP2-2016/2017 Syften, målsättningar, kurslitteratur och genomförande Översikt av laborationer Introduktion till ARM-processorn och till laborationssystemet 1 Kursens
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
BDM12 Användarbeskrivning. Introduktion
Versioner/ändringar 1.0 2003-07 1.01 BUGFIX: FLASH unsecure algoritm 1.02 Fördröjning vid flash-prog. Statusutskrift under programmeringen. Programmeringsalgoritmen hanterar nu även 'bankade' minnet. Översättning
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
LABORATION. Datorteknik Y
LABORATION Datorteknik Y Avbrottsprogrammering på Darma Version 4.03 Februari 2019 (OA, KP) Namn och personnummer Godkänd 1 1 Inledning Syftet med laborationen är först att ge övning i avbrottsprogrammering
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
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
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
Programmering i maskinspråk (Maskinassemblering)
Ext-15 (2013-08-26) sida 1 Programmering i maskinspråk (Maskinassemblering) Programutveckling i assemblerspråk Begreppet assemblerspråk introduceras i arbetsboken (ARB) kapitlen 14-16. En del korta programavsnitt
Tentamen med lösningsförslag
Institutionen för data- och informationsteknik CHALMERS TEKNISKA HÖGSKOLA Tentamen med lösningsförslag DAT017 (DAT016) Maskinorienterad programmering IT EDA482 (EDA481) Maskinorienterad programmering D
Maskinorienterad programmering del 1
Institutionen för data och informationsteknik LP3-2014, RoJ/RS/JS Maskinorienterad programmering del 1 Laborationer 1 och 2 Laborationsserien omfattar totalt fem laborationsmoment som utförs i tur och
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
LABORATION. Datorteknik Y
LABORATION Datorteknik Y Avbrottsprogrammering på Darma Version 4.02 Februari 2018 (OA, KP) Namn och personnummer Godkänd 1 1 Inledning Syftet med laborationen är först att ge övning i avbrottsprogrammering
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
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
Datorteknik 2 (AVR 2)
Namn: Laborationen godkänd: Digitala system 15 hp Datorteknik 2 (AVR 2) LTH Ingenjörshögskolan vid Campus Helsingborg Enkel in- och utmatning. Drivrutiner. Bithantering. I denna laboration ska vi förbättra
DBG11 Användarbeskrivning - Utgåva 2
Introduktion DBG11 är en monitor/debugger för MC68HC11-baserade mikrodatorer. Denna utgåva har uppdaterats och gäller även MC11 med SP2-uppgradering. DBG11 ingår i en serie likartade monitor/debugger's
Föreläsning 2. Operativsystem och programmering
Föreläsning 2 Operativsystem och programmering Behov av operativsystem En dator så som beskriven i förra föreläsningen är nästan oanvändbar. Processorn kan bara ges enkla instruktioner såsom hämta data
Laboration nr 3 behandlar
(2013-04-20) Laboration nr 3 behandlar Konstruktion och test av instruktioner (styrsignalsekvenser) för FLISP Följande uppgifter ur Arbetsbok för DigiFlisp ska vara utförda som förberedelse för laborationen.
DBG identifierar därefter sig genom utskrift av namn och version. Se även "Disposition av adressrum" nedan. Följande kommandon accepteras av DBG
Introduktion DBG12 är en monitor/debugger för MC68HCS12-baserade mikrodatorer. DBG12 ingår i en serie likartade monitor/debugger's för mikrodatorer. För närvarande finns följande varianter: DBG11 DBG12
DBG identifierar därefter sig genom utskrift av namn och version. Följande kommandon accepteras av DBG. Hantera brytpunkter i användarprogram
Introduktion DBG32 är en monitor/debugger för MC683xx-baserade mikrodatorer. DBG32 ingår i en serie likartade monitor/debugger's för mikrodatorer. För närvarande finns följande varianter: DBG11 DBG12 DBG32
Code-Lite tutorial ( /RoJ)
Code-Lite tutorial (2013-03-20/RoJ) Följ dessa anvisningar för att skapa projekt, kompilera/länka och testa dina laborationsuppgifter 3,4. Project Projekt, innehåller bland annat ett antal källtextfiler
Demonstration och konsultation Arbetsbokens avsnitt 5 och 6 LCD Grafisk display Introduktion till laboration 3
LCD Display och Grafik Demonstration och konsultation Arbetsbokens avsnitt 5 och 6 LCD Grafisk display Introduktion till laboration 3 Målsättning: Efter lektionen ska alla självständigt kunna slutföra
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
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
Programmering av inbyggda system
GPIO, In- och utmatning Demonstration och konsultation ST407 GPIO konfigurering och användning Arbetsbokens avsnitt 4 och 5 LCD ASCII-display Keyboard Introduktion till laboration 2 Demonstrationsövning
Programallokering. Programtyper. Att placera program i flashrespektive. Program i FLASH-minne. Program i RAM-minne
Programallokering Att placera program i flashrespektive RAM-minne Program i FLASH-minne Bara lokala variabler Globala oinitierade variabler Globala initierade variabler Program med avbrott Program i RAM-minne
Tentamen 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
Datorteknik 1 (AVR 1)
Namn: Laborationen godkänd: Digitala system 15 hp Datorteknik 1 (AVR 1) LTH Ingenjörshögskolan vid Campus Helsingborg Introduktion till datorteknikutrustningen. Laborationens syfte. Syftet med laborationen
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
Datorteknik. Tomas Nordström. Föreläsning 6. För utveckling av verksamhet, produkter och livskvalitet.
Datorteknik Tomas Nordström Föreläsning 6 För utveckling av verksamhet, produkter och livskvalitet. Föreläsning 6 Vad händer vid uppstart SoC och Kringkretsar, PIO Programmering i Assembler Lab2 genomgång
Maskinorienterad programmering, It/GU
Institutionen för data och informationsteknik. 2009-10-22 Laborationer i Maskinorienterad programmering, It/GU Detta häfte innehåller anvisningar om förberedelser och genomförande av 6 (3) laborationer.
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
Maskinorienterad programmering Laborationer för D/Z/GU (EDA480,EDA485, DIT151)
Institutionen för data och informationsteknik. Roger Johansson, Jan Skansholm och Rolf Snedsböl VT 2012 Maskinorienterad programmering Laborationer för D/Z/GU (EDA480,EDA485, DIT151) Detta laborations-pm
LABORATION DATORTEKNIK Y DATORTEKNIK D
LABORATION DATORTEKNIK Y DATORTEKNIK D Avbrottsprogrammering på M68008 Version: 3.2 203 (OVA) Namn och personnummer Godkänd Till laboranten Inledning Syftet med laborationen är först att ge övning i avbrottsprogrammering
CE_O3. Nios II. Inför lab nios2time
IS1200 Exempelsamling till övning CE_O3, 2015 CE_O3. Nios II. Inför lab nios2time 3.1. Logiska operationer (se uppgift 1.2 c) Repetera (eller lär dig) innebörden av de logiska operationerna "bitvis AND",
Lunds Universitet LTH Ingenjörshögskolan IDa1, IEa1 Helsingborg. Laboration nr 4 i digitala system ht-15. Ett sekvensnät. grupp. namn.
Lunds Universitet LTH Ingenjörshögskolan IDa1, IEa1 Helsingborg Laboration nr 4 i digitala system ht-15 Ett sekvensnät.. grupp.. namn. godkänd Laborationens syfte: att ge grundläggande kunskaper i att
PC-teknik, 5 p LABORATION ASSEMBLERINTRODUKTION
PC-teknik, 5 p LABORATION ASSEMBLERINTRODUKTION Laborationsansvarig: Anders Arvidsson Utskriftsdatum: 2005-08-31 Laborant(er): 1 Syfte Laborationen ska ge studenten möjlighet att genom assemblerinlägg
TENTAMEN Datorteknik (DO2005) D1/E1/Mek1/Ö1
Halmstad University School of Information Science, Computer and Electrical Engineering Tomas Nordström, CC-lab TENTAMEN Datorteknik (DO2005) D1/E1/Mek1/Ö1 Datum: 2012-05- 23 Tid och plats: 9:00 13:00 i
DBG identifierar därefter sig genom utskrift av namn och version. Se även "Disposition av adressrum" nedan. Följande kommandon accepteras av DBG
Introduktion DBG12 är en monitor/debugger för MC68HCS12-baserade mikrodatorer. DBG12 ingår i en serie likartade monitor/debugger's för mikrodatorer. För närvarande finns följande varianter: DBG11 DBG12
Besvara de elektroniska frågorna (se kurshemsidan). Läs kapitel i kursbok.
Namn: Laborationen godkänd: Laboration 3. Pipeline Laborationens syfte I laborationen ska du bekanta dig med pipelining. Genom laborationen fås kunskap om hur pipelines är konstruerade och hur de används.
Objektorienterad programmering i Java I. Uppgifter: 2 Beräknad tid: 5-8 timmar (OBS! Endast ett labbtillfälle) Att läsa: kapitel 5 6
Laboration 2 Objektorienterad programmering i Java I Uppgifter: 2 Beräknad tid: 5-8 timmar (OBS! Endast ett labbtillfälle) Att läsa: kapitel 5 6 Syfte: Att kunna använda sig av olika villkors- och kontrollflödeskonstruktioner
Elektroteknik MF1016 föreläsning 9 MF1017 föreläsning 7 Mikrodatorteknik
Elektroteknik MF1016 föreläsning 9 MF1017 föreläsning 7 - Inbyggda system - Analog till digital signal - Utvecklingssystem, målsystem - Labutrustningen - Uppbyggnad av mikrokontroller - Masinkod, assemblerkod
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
Arbetsbok för MD407 (Läsprov) Roger Johansson
Arbetsbok för MD407 (Läsprov) Roger Johansson Kopieringsförbud Detta verk är skyddat av upphovsrättslagen. Kopiering utöver lärares och studenters begränsade rätt enligt Bonus Copyright Access kopieringsavtal
General Purpose registers ALU I T H S V N Z C SREG. Antag att vi behöver skriva in talet 25 till register R18
F3 Föreläsning i Mikrodatorteknink 2006-08-29 Kärnan i microcontrollern består av ett antal register och en ALU. Till detta kommer också ett antal portar. Det finns 64 st portar. Några är anslutna mot
Paneler - VCPXX.2. Programmeringsmanual för VCP-paneler. Revision 2
Paneler - VCPXX.2 Programmeringsmanual för VCP-paneler Revision 2 Innehållsförteckning Innehållsförteckning... 2 1 Symbolfiler för kommunikation via IndraLogic... 3 2 Uppsättning i IndraWorks... 6 3 Programmering
LABORATIONSINSTRUKTION
Högskolan Dalarna Elektroteknik LABORATION LABORATIONSINSTRUKTION PLC-styrning av ett minimalt parkeringsgarage KURS El- och styrteknik för tekniker ET 1015 INNEHÅLL LAB NR 4 Ver 1.0 1. Inledning 2. Laborationskortet
Föreläsning 3. Programmering, C och programmeringsmiljö
Föreläsning 3 Programmering, C och programmeringsmiljö Vad är programmering? Ett väldigt kraftfullt, effektivt och roligt sätt att kommunicera med en dator Att skapa program / applikationer till en dator
Programräknaren visar alltid på nästa instruktion som skall utföras. Så fort en instruktion har hämtats så visar programräknaren på nästa instruktion.
F5 Föreläsning i Mikrodatorteknink 2006-09-05 Programräknaren visar alltid på nästa instruktion som skall utföras. Så fort en instruktion har hämtats så visar programräknaren på nästa instruktion. Programräknaren
AVRStudio på tre minuter. Micke Josefsson, 2005
AVRStudio på tre minuter Micke Josefsson, 2005 Mycket kort intro till AVRStudio Utvecklingsmiljön AVRStudio innehåller en editor för att mata in programmet, en simulator för att under kontrollerade former
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
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
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
Emacs. Eric Elfving Institutionen för datavetenskap (IDA) 22 augusti 2016
Emacs Eric Elfving Institutionen för datavetenskap (IDA) 22 augusti 2016 Historia 2/21 Utvecklas konstant, från 70-talet Är en generellt texteditor (INTE ordbehandlare) som fokuserar på texten, inte utseendet
Digitala Projekt(EITF40) - Larm
Digitala Projekt(EITF40) - Larm Handledare: Bertil Lindvall Erik Oredsson, I-09 Sara Sellin, I-09 2012-05-08 1. SAMMANFATTNING I denna rapport presenteras vårt projekt att bygga ett huslarm från grunden
SKAPA DET FÖRSTA PROJEKTET I mikrobasic PRO for AVR
SKAPA DET FÖRSTA PROJEKTET I mikrobasic PRO for AVR 2 Projekt mikrobasic PRO for AVR organiserar applikationer som projekt vilka består av en enda projektfil (med filändelsen.mbpav) och en eller flera
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
Programmering av inbyggda system
Avbrott och undantag Ur innehållet: Cortex M4 "exceptions" Avbrott NVIC Externa avbrott: Avbrottsvippa Läsanvisningar: Arbetsbok kap 7 IRQ Flip-Flop STM32F4xx Cortex M4 programming manual Kap 2.3 Exception
Dataminne I/O Stack 0x005D 0x3D SP low byte 0x005E 0x3E SP high byte
CT3760 Mikrodatorteknik Föreläsning 4 Tisdag 2005-09-06 Stacken I datasammmanhang är en stack ett minnesområde. Det är processorn som använder stacken. För att skapa en stack anger man en adress i stackpekarregistret.
Kontrollskrivning Mikrodatorteknik CDT209 2007-09-20 S2-704
Kontrollskrivning Mikrodatorteknik CDT209 2007-09-20 S2-704 Svar Svar till uppgifterna lämnas på separat papper. En poäng per uppgift. Max 30 poäng. Bonuspoäng beräknas enligt följande tabell: 6-10 poäng
Tentamen i TDP004 Objektorienterad Programmering Praktisk del
Tentamen i TDP004 Objektorienterad Programmering Praktisk del Datum: 2011-04-28 Tid: 08-12 Plats: SU-salar i B-huset. Jour: Per-Magnus Olsson, tel 281456 Jourhavande kommer att besöka skrivsalarna ungefär
Så här skriver du ditt första program i C++
Så här skriver du ditt första program i C++ Introduktion till att skapa Solution, Project och källkodsfil i Visual Studio 2013 Författare Anne Norling Kurs: Strukturerad programmering med C++ Kurskod:1DV433
F8: Undantagshantering
F8: Undantagshantering Undantagshantering i 68 Vad är ett undantag? Typer av undantag Att skriva undantagsrutiner Undantagshantering, vad och varför? Exempel: Ett system ska mäta temperatur var :e sekund
Datorprojekt, del 1. Digitala system 15 p
Namn: Laborationen godkänd: Digitala system 15 p L T H I n g e n j ö r s h ö g s k o l a n v i d C a m p u s H e l s i n g b o r g Datorprojekt, del 1 Projektet består i att skapa en klocka där tiden visas
Laboration 2 i Datorteknik- Assemblerprogrammering II
Högskolan i Halmstad 1 (8) - Assemblerprogrammering II Målet med laborationen är att få begrepp om Subrutiner. in/utparametrar. Lokala variabler Maska in bitar till ett register Konstruktion av subrutiner
Kapitel 4 Arkivmenyn Innehåll
Kapitel 4 Arkivmenyn Innehåll ARKIVMENYN...2 Byt aktuell användare...2 Utskrift till skärm eller skrivare...3 SQL verktyget...4 Ny SQL...4 Hämta SQL...5 Spara SQL...5 Kör SQL...5 Visa som...5 Avsluta...5
ANVÄNDAR MANUAL. SESAM 800 RX MC Manager
ANVÄNDAR MANUAL SESAM 800 RX MC Manager Åkerströms Björbo AB Box 7, SE-780 45 Gagnef, Sweden street Björbovägen 143 SE-785 45 Björbo, Sweden Phone +46 241 250 00 Fax +46 241 232 99 E-mail sales@akerstroms.com
Vop handledning. Användarhandledning till Vop applikationen. UPPGJORD: Mattias Gyllsdorff GODKÄND:Mattias Gyllsdorff REV: A DATUM: 2010-12-08
UPPGJORD: Mattias Gyllsdorff GODKÄND:Mattias Gyllsdorff REV: A DATUM: 2010-12-08 Vop handledning Användarhandledning till Vop applikationen Bring Technologies AB Innehållsförteckning 1 Introduktion...1
Besvara de elektroniska frågorna (se kurshemsidan). Läs kapitel i kursbok
Namn: Laborationen godkänd: Laboration 2. Cacheminne Laborationens syfte I laborationen ska du bekanta dig med cacheminnen. Genom laborationen fås kunskap om hur cacheminnen är konstruerade och hur de
Laboration 5. Temperaturmätning med analog givare. Tekniska gränssnitt 7,5 p. Förutsättningar: Uppgift: Temperatur:+22 C
Namn: Laborationen godkänd: Tekniska gränssnitt 7,5 p Vt 2014 Laboration 5 LTH Ingenjörshögskolan vid Campus Helsingborg Temperaturmätning med analog givare. Syftet med laborationen är att studera analog
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.
Ansvarig lärare: Olof Andersson, Telefon 021-101314 (besöker skrivsalen)
MÄLRLENS HÖGSKOL Institutionen för elektroteknik Tentamen Mikrodatorteknik T3760 atum 2005-10-28 Tid 08.30 12.30 nsvarig lärare: Olof ndersson, Telefon 021-101314 (besöker skrivsalen) Om du klarat samtliga
Tentamen med lösningsförslag
Institutionen för data- och informationsteknik CHALMERS TEKNISKA HÖGSKOLA Tentamen med lösningsförslag EDA482 (EDA481) Maskinorienterad programmering D EDA487 (EDA486) Maskinorienterad programmering Z
Vem är vem på kursen. Objektorienterad programvaruutveckling GU (DIT011) Kursbok Cay Horstmann: Big Java 3rd edition.
Institutionen för Datavetenskap Göteborgs universitet HT2009 DIT011 Vem är vem på kursen Objektorienterad programvaruutveckling GU (DIT011) Kursansvarig : Katarina Blom, tel 772 10 60 Rum: 6126 (E-huset)
mikroicd Avbuggare Handbok
mikroicd Handbok Avbuggare mikroicd avbuggare är ett mycket effektivt verktyg för realtid felsökning på hårdvara nivå. Den gör att du kan övervaka program variabelvärden, Speciella Funktion Register (SFR)
Python. Python är, som Scheme, ett interpreterat språk men det finns kompilatorer för Python.
är, som Scheme, ett interpreterat språk men det finns kompilatorer för. När man interpreterar ett språk tillhandahåller man en interpretator som läser sats för sats och försöker tolka den. När man kompilerar
Python. Python är, som Scheme, ett interpreterat språk men det finns kompilatorer för Python.
är, som Scheme, ett interpreterat språk men det finns kompilatorer för. När man interpreterar ett språk tillhandahåller man en interpretator som läser sats för sats och försöker tolka den. När man kompilerar
Lathund. C för inbyggda system
Lathund C för inbyggda system Revision 1 2000-09-21 Anders Arvidsson Jonny Martinsson Synpunkter välkomnas! Innehållsförteckning 1 Introduktion...3 1.1 Assembler kontra C...3 1.2 Kodexempel...3 1.3 MPLAB...4
Laborationer med MC12 ML4 Grundläggande assemblerprogrammering
Grundläggande assemblerprogrammering GMV 2004,2005 Läromedel på elektronisk form, LOMEK, får kopieras fritt. Du ska redovisa dina laborationsresultat vid kontrollstationer. Då du nått en sådan, ska du
2010/2011. Syftet med kursen är att vara en introduktion till konstruktion och programmering av små inbyggda system.
DAT 015 Maskinorienterad Programmering 2010/2011 Syftet med kursen är att vara en introduktion till konstruktion och programmering av små inbyggda system. Ur innehållet: Vi repeterar kursens lärandemål
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
Innehållsförteckning. Figur- och tabellförteckning. Figure 1 Blockschema över hårdvaran...4 Figure 2 Blockschema över programet...
Abstract Syftet var att konstruera en väder station som håller koll på temperaturen. Huvudfunktionen var att få en grafisk visning av temperaturen över ett visst tidsintervall eftersom vi valde den grafiska
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
Lab5 för prgmedcl04 Grafik
Lab5 för prgmedcl04 Grafik Viktigt läs detta först:den här labblydelsen är ganska lång, detta betyder inte att labben tar lång tid.en hel del av lydelsen är anvisning om hur man går tillväga för att kunna
Lösningar till tentamen i EIT070 Datorteknik
Lösningar till tentamen i EIT070 Datorteknik Institutionen för Elektro- och informationsteknik, LTH Torsdagen den 13 mars 2014, klockan 14:00 19:00 i MA:10. Tillåtna hjälpmedel: på tentan utdelad formelsamling,
LABORATIONSINSTRUKTION
Högskolan Dalarna Elektroteknik LABORATION LABORATIONSINSTRUKTION KURS ET1001 Styrteknik LAB NR PLC 5 INNEHÅLL 1. Inledning 2. Laborationskortet i styrteknik 3. Laborationsuppgifter NAMN KOMMENTARER PROGRAM/KURS
Avbrottshantering. Övningsuppgifter
Avbrottshantering Övningsuppgifter 2013 Besvara kortfattat följande frågor rörande CPU12. Redogör för vad som händer vid RESET och varför detta sker. Förklara kortfattat vad som händer vid ett IRQ avbrott
Programmering av grafisk display
Programmering av grafisk display Arbetsboken avsnitt 5 - Drivrutrin för grafisk display, s. 86-96. Datablad LCD Grafisk under resurser på kurshemsidan, s.14-23. Lab 3 - Drivrutiner - Enkel grafik Lab 5
Simulering med ModelSim En kort introduktion
Linköpings universitet Institutionen för systemteknik Laborationer i digitalteknik Datorteknik 2017 Simulering med ModelSim En kort introduktion TSEA22 Digitalteknik D Linköpings universitet SE-581 83
F5: Högnivåprogrammering
F5: Högnivåprogrammering Parameteröverföring Koppling mellan låg- och högnivåprogrammering Lokala variabler Heapen Datatyper 1 Subrutin, parameteröverföring: 1(3) Via register genom värde Skicka data via
Lab1 Introduktion. 1 Syfte. 2 Innehåll Win32API Skapa trådar Kritiska sektioner Mailslothantering. 3 Förberedelse & Tips
Lab1 Introduktion Förberedelse för planetlabben genom att kapsla in (skapa wrappers) systemanrop. 1 Syfte Få en känsla av hur Win32API fungerar, dvs programmerarens interface gentemot Windows. Känsla för
F5: Högnivåprogrammering
1 F5: Högnivåprogrammering Parameteröverföring Koppling mellan låg- och högnivåprogrammering Lokala variabler Heapen Datatyper 1 Subrutin, parameteröverföring: 1(3) Via register genom värde Skicka data