Programallokering. Programtyper. Att placera program i flashrespektive. Program i FLASH-minne. Program i RAM-minne
|
|
- Ulrika Månsson
- för 9 år sedan
- Visningar:
Transkript
1 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 Bara lokala variabler Globala oinitierade variabler Globala initierade variabler Program med avbrott Programtyper Kräver skrivbar stack Kräver skrivbart bss segment Kräver skrivbart data segment Kan göras helt självgående tack vara Resetvektorn Kan ej göras helt självgående RAM är skrivbart Kräver att avbrottsvektorer relokeras till RAM 1
2 Standardkonfiguration för projekt Typ av applikation Projektets startup-fil Namn på laddfil Switchar Standardbibliotek Skapa mapfil Länkarskript Konstantsegment (kräver inget minne) Startupsegment Kodsegment Segment för konstant initierad data Initierad data Oinitierad data Länkarkonfigurering Länkarskript Assemblatorkonfigurering Kompilatorkonfigurering Definedirektiv Segmentgrupper Minnesallokering Relokerade avbrottsvektorer Alla segment i den ordning de står Start av RAM 2
3 Systemets startup-fil Sätt stackpekare Initiera serieport för simulator Initiera C-bibliotek som finns med i XCCinstallationen Gå till applikation Systemets startup-fil forts. Kolla efter hårdvara Initiera inte om hårdvara utan använd initiering i debugger Anropa rutin i debugger Skapa från rutiner i debugger 3
4 Enkelt program för RAM med bara lokala variabler och inga avbrott h-fil med symboliska namn på alla processorregister Pekarmakron Lokala variabler Startupfil för enkelt program för RAM med bara lokala variabler och inga avbrott Vad behåller vi? Initiering av stack Uppsättning av C-bibliotek Flytta till längst upp i RAM, dvs 0x3FFF Anrop av applikation Vad tar vi bort? Serieportsinitiering för simulator Anrop av rutiner i debugger Vad lägger vi till? MC12 använder initiering av PLL i debugger. Vi måste skriva egen itiering Egen initiering av serieport om vi behöver sådan - Rutiner för outchar, tstchat och inchar 4
5 Systemets startup-fil forts. Registerdefinitioner Stack längt upp i RAM Initiera PLL Initiera C-bibliotek Gå till applikation Systemets startup-fil forts. Sätt PLL-frekvens till 16 MHz Vänta på låst PLL Välj PPL-klockan som referens för bussklockan SYNR 1 PLLCLK 2 OSCCLK REFDV 1 OBS 5
6 Länkarskript för RAM-applikation utan relokerade avbrottsvektorer Allt i en följd Project/Settings Egen startup-fil. Glöm inte att inkludera filen i projektet Länkarskript Skapa listfil Behåll assemblerfil 6
7 Vad visar mapfilen? 1(3) Start- och slutadress för grupp I gruppen ingående segment Start- och slutadress för segment Vad visar mapfilen? 2(3) Start för segment Slut för segment Segmentstorlek Innehåll från initiering av C-bibliotek 7
8 Vad visar mapfilen? 3(3) Från initiering av C-bibliotek Nå i h Några register- och bitmanipuleringsfunktioner i C 8
9 Läsning från register Exempel: läsning av resultatregistret ATD0DR4L indata *((unsigned char *)(0x0099)); Användande av pekarmakro och symboliskt registernamn indata REG8(ATD0DR4L); Att skriva till register Exampel: activera ATD0 genom att sätta bit ADPU in registret ATD0CTL2 *((unsigned char *)(0x0082)) 0x80; Användande av pekarmakro och symboliskt registernamn REG8(ATD0CTL2) 0x80; Komplettera med symboliskt bitnamn REG8(ATD0CTL2) ADPU; 9
10 Att testa registerbitar Exampel: vänta på Conversion Complete Flag 5 (CCF5) ; while! REG8 ATD0STAT1 &CCF5 Sätta registerbitar Enstaka bitar Exampel: Aktivera digital it ingång 3 iatd0 REG8(ATD0DIEN) IEN3; Multipla bitar Exampel: Sätt Fast Clear Flag och aktivera ATD REG8(ATD0CTL2) ADPU AFFC; 10
11 Att sätta registerbitar utan att påverka övriga bitar Exempel: välj 8 bitars upplösning genom att sätta bit 7 i ATD0: kontrollregister 4 REG8(ATD0CTL4) Alternativt REG8(ATD0CTL4) SRES8; REG8(ATD0CTL4) SRES8; Att nollställa registerbitar Exempel: välj datarepresentation utan tecken i ATD0:s resultatregister genom att nollställa bit 6 i ATD0:s kontrollregister 5 REG8(ATD0CTL5) REG8(ATD0CTL5)& ~DSGN ; Alternativt REG8(ATD0CTL5)& ~DSGN; OBS ~ inte! 11
12 Enkelt program för RAM med globala oinitierade variabler Global oinitierad variabel Samma startupfil som tidigare Samma skriptfil som tidigare 12
13 Vad visar mapfilen? 1(3) Adresser något förändrade Vad visar mapfilen? 2(3) Något mindre Något större Oförändrat 13
14 Vad visar mapfilen? 3(3) Ny, oinitierad variabel i bss Enkelt program för RAM med globala initierade variabler Global initierad variabel 14
15 Samma startupfil som tidigare Samma skriptfil som tidigare Vad visar mapfilen? _temp har flyttat från bss till data 15
16 Enkelt program för FLASH med bara lokala variabler Kod som via länkarskript placeras på adress 0xFF0E i FLASH för att göra FLASH-minnet läsbart Vad måste vi ändra i startup-filen? Ingenting! Filen påverkar bara initiering av TOS i RAM 16
17 Länkarskript för applikation med bara lokala variabler i FLASH-minne Bara lokal kod Ingen plats krävs för variabler Vi borde kunna nöja oss med ett text-segment men XCC kräver att alla segment är med Lägg övriga segment på ett bra sätt för framtida applikationer Lägg bss i RAM för att vara skrivbar Lägg övriga segment i FLASH Skriv inte över avbrottsvektorerna Länkarskript för applikation med bara lokala variabler i flashminne forts. Till RAM Till FLASH Till RAM Till FLASH Undvik avbrottsvektorerna och unsecure 17
18 Vad visar mapfilen? 1(3) I RAM I FLASH Vad visar mapfilen? 2(3) Nytt 18
19 Vad visar mapfilen? 3(3) Nytt Enkelt program för flashminne med oinitierade globala variabler Global oinitierad variabel 19
20 Samma startuppfil Samma länkarskript Vad visar mapfilen? Oinitierad variabel i bss 20
21 Enkelt program för flashminne med initierade globala variabler Global initierad variabel Vad visar mapfilen? Initierad variabel i data Men data ligger ju i FLASH och är inte skrivbart??? 21
22 Hur gör vi datasegmentet skrivbart? data-segmentet kan inte ligga i RAM från början då det innehåller initierade variabler vars värden måste finnas med i programkoden Slutsats! Vårt program måste kopiera data-segmentet till RAM XCC:s C-bibliotek innehåller rutiner för detta så vi behöver bara ge en flagga till länkaren. Vi behöver inte ändra i programkoden men i den assemblerade och länkade koden så måste alla referenser till de initierade variablerna nu gå till adresserna för deras kopior i RAM. Detta sker automatiskt Project/Settings Kopiera data-segment till RAM 22
23 Vad visar mapfilen? 1(3) data-segment i FLASH Kopia av datasegment i RAM Vad visar mapfilen? 2(3) Ingen förändring Kopian av datasegmentet syns inte men ligger direkt ovanför bss-segmentet 23
24 Vad visar mapfilen? 3(3) Ingen förändring Program i flash med avbrott Byt ut fördröjning mot avbrott från realtidsklockan Initiera avbrott Avbrott från realtidsklocka Resetvektor Låt resetvektorn peka på _start i startup-filen Skriv avbrottsrutin för realtidsklockan 24
25 Program i flash med avbrott forts. Initiera RTI Vänta på avbrott Program i flash med avbrott forts. Interruptrutin Avbrottsvektor för RTI med pekare till avbrottsrutin Resetvektor med pekare till avbrottsrutin 25
26 Skriptfil 1(2) Skriptfil 2(2) Avbrottsvektor för RTI Resetvektor Avbrottsvektor för RTI Resetvektor 26
27 Samma startupfil som tidigare då vi inte har några relokerade avbrottsvektorer Vad visar mapfilen? 1(3) Avbrottsvektorer för RTI Avbrottsvektorer för RESET 27
28 Vad visar mapfilen? 2(3) Avbrottsvektor för RTI Avbrottsvektor för RESET Vad visar mapfilen? 3(3) Avbrottsvektor för RTI Avbrottsvektor för RESET 28
29 Mer generell avbrottshantering i flash Lägg med alla avbrottsvektorer Låt de avbrott vi inte använder peka på en tom dummy-rutin Mer generell avbrottshantering i flash forts. Avbrottsvektorer Skapa minnessegment Utfyllnad på reserverade adresser Namn på avbrottsrutiner Resetvektor 29
30 Mer generell avbrottshantering i flash forts. Dummy-rutin Mer generell avbrottshantering i flash forts. Omdirigering till dummyrutin Omdirigera inte det avbrott vi skall använda Resetvektorn skall inte omdirigeras och saknas därför här 30
31 Länkarskript för avbrottshantering i flash Länkarskript för avbrottshantering i flash forts. Avbrottsvektortabell Avbrottsvektoradresser 31
32 Samma startupfil som tidigare då vi inte har några relokerade avbrottsvektorer som skulle behöva plats i RAM Vad visar mapfilen? 1(3) avbrottsvektorer 32
33 Vad visar mapfilen? 2(3) Avbrottsvektorsegment Vad visar mapfilen? 3(3) Avbrottsrutin Avbrottsvektorer 33
34 Avbrottshantering i RAM Vi behöver Ett program i flashminne som mappar om avbrottsvektorerna till RAM Detta program kan sedan om det skrivs tillräckligt generellt användas av alla senare RAMapplikationer med avbrott RAM-applikationer som använder de ommappade avbrottsvektorerna Ommappning av avbrottsvektorer Låt de verkliga avbrottsvektorerna peka, inte på en avbrotts- eller en dummyrutin, utan på var sin rutin som gör ett hopp till en adress i RAM Vi förfinar det ytterligare genom att inte låta rutinen ange vart vi skall hoppa utan vi låter den läsa vart den skall hoppa från en adress i RAM där vi kan skriva in adressen till vår avbrottsrutin Vi gör en ny relokerad avbrottsvektortabell i RAM 34
35 Ommappning av avbrottsvektorer Ny avbrottsvektortabell Ser ut som den tidigare avbrottsvektortabellen men med nya funktionsnamn till relokeringsfunktionerna Ommappning av avbrottsvektorer forts. Rutin för läsning av avbrottsrutinens adress från ommappad avbrottsvektortabell i RAM Den relokerade avbrotts- vektortabellens t startadress t Läser den adress som hoppet skall ske till från minnesadressen x+offset = REL_IRQ_START+offset 0x3F80 i stället för den verkliga avbrottssvektortabellens startadress 0xFF80 Olika för olika avbrott 35
36 Ingen startupfil t då vi bara gör ett bakgrundsprogram utan stack och utan anrop till huvudprogram. Ingen initiering av stack etc Samma länkarskript som för den generella avbrottshanteringen a i flash Vad visar mapfilen? 1(3) init, bss och datasegment saknas (egentligen är de tomma) Relokeringsfunktioner Avbrottsvektorer 36
37 Vad visar mapfilen? 2(3) Relokeringsfunktioner Tomma segment Vad visar mapfilen? 3(3) Avbrottsvektorsegment Relokeringsfunktioner Avbrottsvektorer 37
38 Program med enstaka avbrott i RAM Detta är ett nytt program som använder relokeringen Nästan samma program som det i FLASH-minne Ingen Resetvektor då detta program inte blir fristående Adressen till vår avbrottsrutin skall skrivas in till rätt ommappade avbrottsvektor Skriptfilen skall placera programmet i RAM-minne Program eller stack får inte störa den ommappade avbrottsvektortabellen. TOS måste ligga på en adress som är lägre än den ommappade avbrottsvektortabellens startadress (REL_IRQ_START), välj 0x3F7F Program med enstaka avbrott i RAM forts. Programkod Adress till ommappad avbrottsvektor 38
39 Program med enstaka avbrott i RAM forts. Programkod forts. Skriv adress till avbrottsrutin till avbrottets adress i den ommappade avbrottsvektortabellen Program med avbrott i RAM Skriptfil Den ommappade avbrottsvektortabellen placeras inte i RAMminnet av länkaren så den behöver inte vara med i skriptet Adresserna till våra avbrottsrutiner skriver vi till vår ommappade avbrottsvektortabell via vårt C- program Inkludera inte ommappad avbrottsvektortebell 39
40 Program med avbrott i RAM forts. Startupfil Ändra Top Of Stack (TOS) till 0x3F7F Vad visar mapfilen? 1(3) 40
41 Vad visar mapfilen? 2(3) Vad visar mapfilen? 3(3) Avbrottsrutin 41
42 Generellt program med avbrott i RAM På samma sätt som i flash tar vi med hela avbrotts- vektortabellen, t här ommappad Den ommappade avbrottsvektortabellen måste tas med i skriptfilen Startup-filen påverkas inte (TOS nedanför relokerade avbrottsvektorer) Låt oanvända avbrott omdirigeras till en tom dummyrutin Generellt program med avbrott i RAM forts. Programkod Ingen #define av avbrottsvektoradress 42
43 Generellt program med avbrott i RAM forts. Programkod forts. Ingen initiering av avbrottsvektor Avbrottsrutin Dummyrutin Generellt program med avbrott i RAM forts. Programkod forts. Omdirigering till dummyrutin Dirigera inte om den avbrottsvektor som används 43
44 Generellt program med avbrott i RAM forts. Programkod forts. Relokerad avbrottsvektortabell Generellt program med avbrott i RAM forts. Skriptfil Ommappade avbrottsvektorer Ommappad avbrottsvektortabell 44
45 Vad visar mapfilen? 1(3) Relokerade avbrottsvektorer Vad visar mapfilen? 2(3) Segment för relokerade avbrottsvektorer 45
46 Vad visar mapfilen? 3(3) Avbrottsrutin Relokerade avbrottsvektorer 46
LEU240 Mikrodatorsystem Att placera program i FLASHrespektive
Institutionen data- och informationsteknik 2011-10-31 Att placera program i FLASHrespektive RAM-minne Följande resonemang gäller för processorn MC9S12DG256B. Vi kommer i görligaste mån att skriva våra
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
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
Att använda pekare i. C-kod
Att använda pekare i C-kod (Bör användas av de som känner sig lite hemma med C-programmering!) Rev 1, 2005-11-23 av Ted Wolfram www.wolfram.se Syfte: Man kan tycka att det är komplicerat att använda pekare
A-del motsvarande KS1
MÄLARDALENS HÖGSKOLA Institutionen för elektroteknik Tentamen Mikrodatorteknik CT3760 Datum 2005-10-28 Tid 08.30 12.30 Svar till A- och B-del A-del motsvarande KS1 Uppgift A1. Vad blir resultatet då instruktionen
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
Digital- och datorteknik
Digital- och datorteknik Föreläsning #17 Biträdande professor Jan Jonsson Institutionen för data- och informationsteknik Chalmers tekniska högskola Tallriksmodellen Stackoperationer Element kan endast
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
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
AVR 3 - datorteknik. Avbrott. Digitala system 15 hp. Förberedelser
Namn: Laborationen godkänd: Digitala system 15 hp AVR 3 - datorteknik LTH Ingenjörshögskolan vid Campus Helsingborg Avbrott. Syften med den här laborationen är att introducera avbrott. Avbrott som uppkommer
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
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
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
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)
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
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",
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.
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
Avbrottshantering. Övningsuppgifter Lösningsförslag Uppgift (Reservation för diverse fel!)
Avbrottshantering Övningsuppgifter 2013 Lösningsförslag Uppgift 1-19 (eservation för diverse fel!) 1 Koppling: Q 1 Till bit 0 INPOT ÖKA A 1 /W 1 Write 8FF 16 NOLLA Write 8FFF 16 Q 2 1 Q 2 Till bit 1 INPOT
Systemkonstruktion LABORATION REALTIDSPROGRAMMERING
Systemkonstruktion LABORATION REALTIDSPROGRAMMERING Laborationsansvariga: Anders Arvidsson, Björn Lundblad Utskriftsdatum: 2002-10-31 Laboranter: 1 Syfte Denna laboration syftar till att öva användningen
Laboration 4: Knappstuds Drivrutiner för att eliminera störningar.
ATMega16 Laborationer av Kjell 2 Rev:5 Datum: 29.09.2010 Page 1 of 7 Laboration 4: Knappstuds Drivrutiner för att eliminera störningar. Inledning: Laborationskortet EasyAVR6 har bland annat tryckknappar
Maskinorienterad programmering
Undantagshantering och interna avbrott ARM Cortex-M4 exceptions, programmering av undantagshantering Ur innehållet: Faults Software traps Avbrott från interna enheter, Systick Läsanvisningar: Arbetsbok
EDA480/EDA485 - Maskinorienterad programmering, tentamen 2006-xx-xx 1(7)
EDA480/EDA485 - Maskinorienterad programmering, tentamen 2006-xx-xx 1(7) 1. Motivation ROM. 8kbyte 2 3 2 10 byte 13 Adressbitar [A12,A0] direkt till ROM-kapsel. RWM. 32kbyte 2 5 2 10 byte 15 Adressbitar
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
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
Stack och subrutiner Programmeringskonventionen
Stack och subrutiner Programmeringskonventionen Du ska förstå hur en instruktion behandlas i processorn Du ska känna till några fler instruktioner Du ska veta hur maskinkoden för ett program byggs upp
CPU. Carry/Borrow IX. Programräknare
Laboration:. Jämförelser mellan assembler och C. CPU ACCA ACCD ACCB 8-bitars ackumulatorer eller 16- bitars ackumulator CCR 1 1 1 SXH I NZVC Flaggregister Carry/Borrow IX IY PC Indexregister X Indexregister
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
Övningsuppgifter STYRNING - i Mikrodatorteknik för U2 2010
STYRNING - i Mikrodatorteknik för U2 2010 1. Uppgift M10 (5p) aug-09 Skriv ett program i PIC-assembler som - gör PortB till utport - ettställer bit 0, 3 och 4 i PortB - nollställer bit 5 och 6 i PortB
Projektlaboration 4, synkronisering av klockan
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 4 Projektlaboration 4, synkronisering av klockan Asynkron
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
Arduinokurs. Kurstillfälle 4
Kurstillfälle 4 CW-generering Det här kan ses som överkurs men kan ändå vara roligt för att kunna generera CW på ett enkelt sätt. Det blir en hel del nytt men vi tar det steg för steg Som alla vet gäller
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
Föreläsningsanteckningar 3. Mikroprogrammering II
Föreläsningsanteckningar 3. Mikroprogrammering II Olle Seger 2012 Anders Nilsson 2016 1 Inledning Datorn, som vi byggde i förra föreläsningen, har en stor brist. Den saknar I/O. I denna föreläsning kompletterar
Assemblerprogrammering del 2
Assemblerprogrammering del 2 FLISP och omvärlden Dagens föreläsning behandlar: Kompendiet kapitel 9 Arbetsboken kapitel 16 Ur innehållet: In- och ut-enheter Tilldelningar och uttrycksevaluering Programflödeskontroll
Programmering av inbyggda system. Kodningskonventioner. Viktor Kämpe
Kodningskonventioner Viktor Kämpe Varför kodningskonventioner? Förståelse för Skillnaden mellan lokala/globala variabler. Funktionsargument. Returvärde. Möjliggör Mix av assembler och C. Kodningskonventioner/VK
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
Vad händer när man kör ett program? Program och processer. Funktionsanrop. Avsluta programmet
Vad händer när man kör ett program? Program och processer När man kompilerar ett program och sedan länkar ihop det så stoppar länkaren in lite extra kod i programmet. Det är denna kod som i sin tur anropar
Grundläggande C-programmering del 2 Pekare och Arrayer. Ulf Assarsson
Grundläggande C-programmering del 2 Pekare och Arrayer Ulf Assarsson Läromoment: Pekare Absolutadressering (portar): typedef, volatile, #define Arrayer av pekare, arrayer av arrayer Hemuppgifter: v2. Föregående
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
Agenda. Arrayer deklaration, åtkomst Makron Flerdimensionella arrayer Initiering Strängar Funktioner och arrayer. Övningar nu och då
Agenda Arrayer deklaration, åtkomst Makron Flerdimensionella arrayer Initiering Strängar Funktioner och arrayer Övningar nu och då 1 Motivering I de flesta problem ingår att hantera multipla data I de
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
(Lösningsförslag finns sist i denna fil.)
(Lösningsförslag finns sist i denna fil.) Läser externa signaler. Har 64 ingångar (kanaler), från 0 till 63. Kan bara avläsa en ingång i taget. Avlästa värdet positivt 16-bitars tal. Varje läsning tar
Mål. Datorteknik. Repetition av avbrott. Innehåll. Mätning och styrning. Datorer för mätning och styrning. timer. Datorsystem A/D. Analog insignal D/A
Mål Datorteknik Föreläsning 5 Att du ska förstå hur avbrott används för - Mätning - Styrning - Stöd för körning av fle processer Att du ska förstå begreppet tråd Att du ska veta hur odelba resurser kan
Grundläggande C-programmering del 2 Pekare och Arrayer. Ulf Assarsson
Grundläggande C-programmering del 2 Pekare och Arrayer Ulf Assarsson Läromoment: Pekare Absolutadressering (portar): typedef, volatile, #define Arrayer av pekare, arrayer av arrayer Hemuppgifter: v2. Föregående
Programexempel för FLEX
Aktivera Kursens mål: Konstruera en dator mha grindar och programmera denna Aktivera Förra veckans mål: Konstruera styrenheten. genom att. implementera olika maskininstruktioner i styrenheten. Kunna använda
Lö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,
Generell säkerhet. Loggning - Hur mycket ska man logga? Inloggningsrutinerna i Unix. Loggning fortsättning
Generell säkerhet Här finns det inga direkta rätt eller fel. Snarare saker man bör tänka på när man implementerar ett program. Kort sagt: Efter att du kommit på hur du tänkt göra, sov på saken och tänk
Modbus Seriell Kommunikation
Översikt Modbus protokollet är en allmänt använd och väldokumenterad kommunikationsmetod. Det är ett enkelt och effektivt sätt att programmera våra olika produkter A typiskt Modbus-paket ser ut så här:
Digital- och datorteknik
Digital- och datorteknik Föreläsning #17 Biträdande professor Jan Jonsson Institutionen för data- och informationsteknik Chalmers tekniska högskola F-36 FLEX- och FLIS-datorn Ext-8 Tallriksmodellen Stackoperationer
Realtidsprogrammering. En introduktion Implementering (med exempel från PIC)
Realtidsprogrammering En introduktion Implementering (med exempel från PIC) Utan timing Periodtid varierar beroende på funktionernas exekveringstid. Specificera endast maxtid ( Worst case) och eventuellt
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
Instruktioner för uppdatering av enheter med ISP
För AP produkter som använder ISP måste flashuppdateringen göras med hjälp av den medföljande MPC Manager. För att utföra en firmware uppdatering, följ dessa instruktioner: 1. Ladda ner och installera
Effektpedal för elgitarr
EITF11 - Digitala Projekt Effektpedal för elgitarr Handledare: Bertil Lindvall Ivan Rimac (I05) Jimmy Lundberg (I08) 2011-05-10 Contents Bakgrund... 3 Kravspecifikation... 3 Kravspecifikation Effektpedal...
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
Digitala projekt rapport
Digitala projekt rapport Alexander Westrup, d04aw@student.lth.se Martin Sandgren, d04ms@student.lth.se 4 december 2007 Innehåll 1 Abstract 1 2 Inledning 1 3 Arbetsgång 1 4 Hårdvara 1 4.1 Processor...............................
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
3. Mikroprogrammering II
3. Mikroprogrammering II lite repetition in/ut-matning avbrott på OR-datorn hoppinstruktion labben Olle Roos dator LDA 000 12 ADD 100 7 STA 000 13 12 1 13 8 13 6 8 0 18,1,11 2,3,5,11 7,8,11 17,10 18,1,11
Institutionen för elektro- och informationsteknologi, LTH
Datorteknik Föreläsning 5 Realtidssystem och realtidsprogrammering Mål Att du ska förstå hur avbrott används för - Mätning - Styrning - Stöd för körning av flera processer Att du ska förstå begreppet tråd
Datorteknik. Föreläsning 5. Realtidssystem och realtidsprogrammering. Institutionen för elektro- och informationsteknologi, LTH.
Datorteknik Föreläsning 5 Realtidssystem och realtidsprogrammering Mål Att du ska förstå hur avbrott används för - Mätning - Styrning - Stöd för körning av flera processer Att du ska förstå begreppet tråd
Mål. Datorteknik. Innehåll. Innehåll (forts) Hur ser ett program ut? Hur skapas maskinkoden?
Mål Datorteknik Föreläsning 3 Att veta hur maskinkoden för ett program byggs upp Att börja programmera i på riktigt Att kunna skriva och anropa subrutiner i Att förstå hur stacken fungerar Att veta vad
TSEA28 Datorteknik Y (och U)
TSEA28 Datorteknik Y (och U), föreläsning 2, Kent Palmkvist 2018-01-16 3 TSEA28 Datorteknik Y (och U) Föreläsning 2 Kent Palmkvist, ISY Praktiska kommentarer Mail kommer skickas ut när labanmälan är möjlig
Det finns många flaggor till g++,
C++, Övning 1 Jonas Sjöbergh, jsh@nada.kth.se Inge Frick, inge@nada.kth.se Alexander Baltsatsis hur man kompilerar och kör make preprocessor minnesallokering, pekare grundläggande C++, funktioner m.m.
6 Lågnivåprogrammering
6 Lågnivåprogrammering När språket C konstruerades hade man som en av målsättningarna att språket skulle kunna hantera programmering på lågnivå. Med lågnivå menas det som man tidigare behövt använda assemblerprogrammering
Att läsa en manual. Exempel Timern ECT_16B8C. Läs den allmänna beskrivningen (Overview) Vi ser att grundfunktionen är en räknare med prescaler
Att läsa en manual Exempel Timern ECT_16B8C Läs den allmänna beskrivningen (Overview) Vi ser att grundfunktionen är en räknare med prescaler 1 Läs om speciella egenskaper (Features) I övrigt har vi Input
Laborationens mål är att få displayen att visa timmar, minuter och sekunder samt att kunna ställa klockan.
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 3 Projektlaboration 3, hantering av klocka. Laborationsuppgifter:
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
Översikt Introduktion DST 1. Nicholas Wickström. IDE, Högskolan i Halmstad. N. Wickström
DST 1 Nicholas Wickström IDE, Högskolan i Halmstad 2009 1 Outline 1 Vad är Hårdvara? (Datorsystemmodell; processor m. periferi, IO, Minne) Typiskt för hårdvarunära programmering (datablad, register, datastrukturer,...)
7) Beskriv tre sätt att överföra parametrar mellan huvudprogram och subrutin.
1(5) Övningstentamen i Mikrodatorer och assemblerprogrammering, ELGA05 Hjälpmedel: Bifogad lista med memokoder för MC68xxx. Samtliga programmeringsuppgifter ska innehålla flödesschema med förklaringar
Enchipsdatorer med tillämpningar LABORATION 7, ROBOT
Enchipsdatorer med tillämpningar LABORATION 7, ROBOT Laborationsansvariga: Anders Arvidsson Utskriftsdatum: 2005-05-14 Laboranter: 1 Syfte Denna laboration syftar till att introducera interrupt och watchdog
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
Assemblerprogrammering del 3
Assemblerprogrammering del 3 Dagens föreläsning behandlar: Kompendiet kapitel 9 och 10.4 Arbetsboken kapitel 16 Ur innehållet: Modularisering, subrutiner och strukturerad programutveckling (flödesdiagram)
Datorsystemteknik DAVA14 Föreläsning 10
Datorsystemteknik DAVA14 Föreläsning 10 Från källkod till bitar Samspelet mellan program och hårdvara Med bilder från Mats Brorsson, Datorsystem: Program och maskinvara, studentlitteratur 1999 Assemblatorn
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
Polling (cyklisk avfrågning) Avbrott
Polling (cyklisk avfrågning) Avbrott Större delen av materialet framtaget av :Jan Eric Larsson, Mats Brorsson och Mirec Novak IT-inst LTH Att känna till begreppet polling (cyklisk avfrågning) och hur det
Manual. Abelko M-Bus Device Creator (MBDC)
Manual Abelko M-Bus Device Creator (MBDC) Syfte Syftet med "M-Bus Device Creator (MBDC)" är att tillåta Abelko's IMSE WebMaster Pro (WMPro) att kommunicera med mätutrustning som använder sig av M-Bus standarden.
Lösningar till tentamen i EIT070 Datorteknik
Lösningar till tentamen i EIT070 Datorteknik Institutionen för Elektro- och informationsteknik, LTH Onsdagen den 13 mars 2013, klockan 14:00 19:00 i Vic 2 A-D, 3 A-C. Tillåtna hjälpmedel: på tentan utdelad
Institutionen för elektro- och informationsteknologi, LTH
Datorteknik Föreläsning 3 Assembler, stack och subrutiner, programmeringskonventionen Mål Att veta hur maskinkoden för ett program byggs upp Att börja programmera i assembler på riktigt Att kunna skriva
Laboration 3 HI1024, Programmering, grundkurs, 8.0 hp
Laboration 3 HI1024, Programmering, grundkurs, 8.0 hp Dataingenjörsprogrammet, elektroingenjörsprogrammet och medicinsk teknik KTH Skolan för Teknik och Hälsa Redovisning: Se Kurs-PM om hur redovisningen
Datorteknik. Föreläsning 3. Assembler, stack och subrutiner, programmeringskonventionen. Institutionen för elektro- och informationsteknologi, LTH
Datorteknik Föreläsning 3 Assembler, stack och subrutiner, programmeringskonventionen Mål Att veta hur maskinkoden för ett program byggs upp Att börja programmera i assembler på riktigt Att kunna skriva
Datorsystemteknik Föreläsning 7DAVA14
Datorsystemteknik Föreläsning 7DAVA14 Innehåll Introduktion (forts) Polling (cyklisk avfrågning) Större delen av materialet framtaget av :Jan Eric Larsson, Mats Brorsson och Mirec Novak IT-inst LTH Exempel
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
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
Fö 5+6 TSEA81. Real-time kernel + Real-time OS
Fö 5+6 TSEA81 Real-time kernel + Real-time OS Stackens användningsområde * JSR / RTS : returadress * Temporärdata (push / pop) void myfunc(void) { int i; // hamnar nog i register int test[10]; // hamnar
Studera databladen för LCD på sid 4, 5, 7, 8, 14, 18, 19, 20 och 23. Datablad finns på kurshemsidan.
Namn: Laborationen godkänd: Digitala system 15 p Datorprojekt, del 2 L T H I n g e n j ö r s h ö g s k o l a n v i d C a m p u s H e l s i n g b o r g Projektlaboration 2, skrivning till LCD. Förberedelser:
TENTAMEN. Datorteknik. D1/E1/Mek1/Ö Hjälpmedel: Häfte "ARM-instruktioner", A4-format, 17 sidor. Maxpoäng:
TENTAMEN D1/E1/Mek1/Ö1 1400-1800 Hjälpmedel: Häfte "ARM-instruktioner", A4-format, 17 sidor Maxpoäng: Betyg 3 Betyg 4 Betyg 5 60p 24p 36p 48p Frågor under tentamen: Börje Delistrand tel. +46702986358 Bilaga
Programmera i C Varför programmera i C när det finns språk som Simula och Pascal??
Programmera i C Varför programmera i C när det finns språk som Simula och Pascal?? C är ett språk på relativt låg nivå vilket gör det möjligt att konstruera effektiva kompilatorer, samt att komma nära
Tentamen 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
#include <pic.h> #include <sys.h> char LEFT,RIGHT,MOTORHASTIGHET;
Att avlusa en rad Assembler tar lika lång tid som att avlusa en rad C. Att skriva i C gör att man är utlämnad till kompilatorns sätt att göra assembler koden. Assembler ger fullständig kontroll över tider.
Ett enkelt program i C++, hello.cpp. #include <iostream> int main() { std::cout << "Hello World\n"; return 0; } C++, Övning 1
Ett enkelt program i C++, hello.cpp C++, Övning 1 Jonas Sjöbergh, jsh@nada.kth.se hur man kompilerar och kör make preprocessor minnesallokering, pekare grundläggande C++, funktioner m.m. ett exempel int
Övning 6. Parallellport, timer
Övning 6 Parallellport, timer 6.1 de2_pio_toggles18 Memory-Mapped addresses LEDG8 LEDR17 LEDR16 LEDR15 LEDR14 LEDR13 LEDR12 LEDR11 LEDR10 LEDR9 LEDR8 LEDR7 LEDR6 LEDR5 LEDR4 LEDR3 LEDR2 LEDR1 LEDR0 LEDG7
Extrauppgifter för CPU12
1 Extrauppgifter för CPU12 X1a) Skriv en instruktionssekvens som nollställer bit 3-0 i alla minnesord i adressintervallet 2035H, 2049H Använd X-registret för adressering X1b) Skriv en subrutin som maskerar
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
Mål. Datorteknik. Introduktion. Innehåll. Verklig situation - pappaledighet. Introduktion (forts)
Mål Datorteknik Föreläsning 4 Att känna till begreppet polling (cyklisk avfrågning) och hur det implementeras Att förstå varför avbrottstyrd exekvering är överlägset polling Att veta vilken information
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
grundläggande C++, funktioner m.m.
C++, Övning 1 Jonas Sjöbergh, jsh@nada.kth.se hur man kompilerar och kör make preprocessor minnesallokering, pekare grundläggande C++, funktioner m.m. ett exempel Ett enkelt program i C++, hello.cpp #include
Lathund för spel med karta
Lathund för spel med karta Från lärardagarna 2018, Scratch fördjupning med Linda Folkesson, Lotta Korslid och Linn Bergqvist Steg 1: Skapa prickar som säger en världsdel Moment: Kopior/kloner Lägg in en
Institutionen för elektro- och informationsteknologi, LTH
Datorteknik Föreläsning 4 Polling och avbrott Mål Att känna till begreppet polling (cyklisk avfrågning) och hur det implementeras Att förstå varför avbrottstyrd exekvering är överlägset polling Att veta