Datorteknik. Tomas Nordström. Föreläsning 6. För utveckling av verksamhet, produkter och livskvalitet.



Relevanta dokument
Övning2 Datorteknik, HH vt12 - Programmering

Laboration 2 i Datorteknik- Assemblerprogrammering II

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.

Beskrivning av porthantering i mikroprocessorn SAM3U som används på vårt labkort SAM3U- EK.

TENTAMEN Datorteknik (DO2005) D1/E1/Mek1/Ö1

Svar till Övning3 Datorteknik, HH vt12 Avbrott och timers

CE_O3. Nios II. Inför lab nios2time

Dataminne I/O Stack 0x005D 0x3D SP low byte 0x005E 0x3E SP high byte

LEU240 Mikrodatorsystem

Digital- och datorteknik

A-del motsvarande KS1

Lösningar till tentamen i EIT070 Datorteknik

Övning1 Datorteknik, HH vt12 - Talsystem, logik, minne, instruktioner, assembler

Övning1 Datorteknik, HH vt12 - Talsystem, logik, minne, instruktioner, assembler

Datorteknik. Tomas Nordström. Föreläsning 8 Timers. För utveckling av verksamhet, produkter och livskvalitet.

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

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

F5: Högnivåprogrammering

F5: Högnivåprogrammering

Datorsystem Laboration 2: Minnesmappade bussar

Maskinorienterad programmering

Kontrollskrivning Mikrodatorteknik CDT S2-704

Lösningar till tentamen i EIT070 Datorteknik

Lösningar till tentamen i EIT070 Datorteknik

"Crash Course in Programming"

Maskinorienterad programmering

Generell säkerhet. Loggning - Hur mycket ska man logga? Inloggningsrutinerna i Unix. Loggning fortsättning

Elektroteknik MF1016 föreläsning 9 MF1017 föreläsning 7 Mikrodatorteknik

Digitala projekt rapport

Provmoment: Ladokkod: Tentamen ges för: Tentamen TE111B El3. Namn: Personnummer: Tentamensdatum: Tid: 14:00-18:00.

Minnen delas in i två huvudgrupper, permanenta och icke permanenta. Non-volatile and volatile.

Systemkonstruktion LABORATION REALTIDSPROGRAMMERING

Enkla datatyper minne

F8: Undantagshantering

Tentamen med lösningsförslag

Lista på registeruppsättningen i PIC16F877A Datablad TTL-kretsar 74-serien

LABORATION. Datorteknik Y

Stack och subrutiner Programmeringskonventionen

AVR 3 - datorteknik. Avbrott. Digitala system 15 hp. Förberedelser

Assemblerprogrammering del 3

Digital- och datorteknik

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

Institutionen för elektro- och informationsteknologi, LTH

Datorteknik. Föreläsning 5. Realtidssystem och realtidsprogrammering. Institutionen för elektro- och informationsteknologi, LTH.

Datorteknik TSIU02 Lab 2 Morsesändare v0.7

TENTAMEN. Datorteknik. D1/E1/Mek1/Ö Hjälpmedel: Häfte "ARM-instruktioner", A4-format, 17 sidor. Maxpoäng:

Datorteknik. Föreläsning 6. Processorns uppbyggnad, pipelining. Institutionen för elektro- och informationsteknologi, LTH. Mål

Mål. Datorteknik. Innehåll. Innehåll (forts) Hur ser ett program ut? Hur skapas maskinkoden?

Digital- och datorteknik

Institutionen för elektro- och informationsteknologi, LTH

Datorteknik. Föreläsning 3. Assembler, stack och subrutiner, programmeringskonventionen. Institutionen för elektro- och informationsteknologi, LTH

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

Övningsuppgifter i Mikrodatorteknik 4p/5p

Digital- och datorteknik

Digital- och datorteknik

PROGRAMMERING AV MCU LABORATION6. Laborationens syfte

Programexempel för FLEX

3. Mikroprogrammering II

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

Tentamen i EIT070 Datorteknik

INGENJÖRSHÖGSKOLAN INGENJÖRSHÖGSKOLAN

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

F2: Motorola Arkitektur. Assembler vs. Maskinkod Exekvering av instruktioner i Instruktionsformat MOVE instruktionen

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

Laboration 5. Temperaturmätning med analog givare. Tekniska gränssnitt 7,5 p. Förutsättningar: Uppgift: Temperatur:+22 C

LABORATION. Datorteknik Y

Projekt EITA15. Väckarklocka. LTH Ingenjörshögskolan vid Campus Helsingborg Datateknik

Lågnivåprogrammering. Föreläsning 2 Lågnivåprogrammering. Binära tal. En enkel modell av datorns inre

PC-teknik, 5 p LABORATION ASSEMBLERINTRODUKTION

Per Holm Lågnivåprogrammering 2014/15 24 / 177. int och double = = 2, 147, 483, 647

Laboration 1 i Datorteknik. Utvecklingssystemet IAR Embedded Workbench Grundläggande assemblerprogrammering för ARM

Lösningsförslag till Tenta i Mikrodator

7) Beskriv tre sätt att överföra parametrar mellan huvudprogram och subrutin.

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

TENTAMEN. Datorteknik. D1/E1/Mek1/Ö Hjälpmedel: Häfte" ARM-instruktioner", A4-format, 17 sidor. Maxpoäng: 60p

Python. Python är, som Scheme, ett interpreterat språk men det finns kompilatorer för Python.

Maskinorienterad programmering

Högskolan i Halmstad Digital- och Mikrodatorteknik 7.5p. Lista på registeruppsättningen i PIC16F877A Datablad TTL-kretsar 74-serien

Maskinorienterad programmering

Övningsuppgifterna i kapitel F avser FLIS-processorn, vars instruktioner och motsvarande koder definieras i INSTRUKTIONSLISTA FÖR FLISP.

Fö 5+6 TSEA81. Real-time kernel + Real-time OS

Python. Python är, som Scheme, ett interpreterat språk men det finns kompilatorer för Python.

CE_O2. Nios II. Subrutiner med mera.

Datorteknik. Tomas Nordström. Föreläsning 7 Avbrott. För utveckling av verksamhet, produkter och livskvalitet.

Assemblerprogrammering för ARM del 3

AVRStudio på tre minuter. Micke Josefsson, 2005

Maskinorienterad programmering

Assemblerprogrammering, ARM-Cortex M4 del 3

Studera databladen för LCD på sid 4, 5, 7, 8, 14, 18, 19, 20 och 23. Datablad finns på kurshemsidan.

Laborationens mål är att få displayen att visa timmar, minuter och sekunder samt att kunna ställa klockan.

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

HF0010. Introduktionskurs i datateknik 1,5 hp

Avbrottshantering. Övningsuppgifter

Tentamen i Digitala system - EDI610 15hp varav denna tentamen 4,5hp

Maskinorienterad programmering

7HQWDPHQLNRQVWUXNWLRQVPHWRGHU 'HOWHQWDPHQ / VQLQJDURFKNRPPHQWDUHU

Övningsuppgifter STYRNING - i Mikrodatorteknik för U2 2010

F4: Assemblerprogrammering

Ett program som frågar regelbundet om något skall utföras. Exempelvis om spänningen på ett batteri sjunkit under en viss nivå.

Transkript:

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 References: [SUM3U-complete] ATMEL AT91SAM ARM-based Flash MCU - SAM3U Series (Complete manual), 2012 2

Vad händer vid start? Efter att man get kretsen ström eller reset så är processorn helt tom eller i okänt tillstånd. För att komma i känt tillstånd så görs Hämta ett ord/adress ifrån minne(0.x00000000) och lägg det i stackpekaren (SP=R14) Hämta ett ord/adress ifrån minne(0.x00000004) och lägg det i programräknaren (PC=R15), dvs hoppa till den adress som anges på adress 4. Så efter reset måste ickeflyktigt minne ligga på adress 0 och framåt en bit. 3

SAM3U - SoC 4

Minneskarta Kapitel 8, sid 30 i [SUM3U-complete] 5

Hur mycket minne har vi? Se Kap 9, sid 31, i [SAM3U-Complete]. The SAM3U4 (256 KBytes internal Flash version) embeds a total of 48 Kbytes high-speed SRAM (32 Kbytes SRAM0 and 16 Kbytes SRAM1). Enligt minneskartan startar SRAM0 på 0x20000000 och med 32kB (2 15 byte) så kommer vi ha minne upp till 0x20007FFF. Det är sedan ett hål tills SRAM1 startar 6

Användning av minne Lägg kod i början av interna minnet Sätt stackpekaren till toppen av minnet (vi låter den växa neråt). SP måste vara på jämn ordgräns. I lab 3 så måste vi också ha plats för en avbrottsvektor, den läggs lämpligen före koden eller i den andra minnesbanken. 7

Watchdog Timer Kapitel 15 i [SUM3U-complete]: The Watchdog Timer can be used to prevent system lockup if the software becomes trapped in a deadlock. It features a 12-bit down counter that allows a watchdog period of up to 16 seconds (slow clock at 32.768 khz). It can generate a general reset or a processor reset only. In addition, it can be stopped while the processor is in debug mode or idle mode. Slås automatiskt på efter reset Så om funktionen inte behövs så måste vi slå av den (inom 16 sekunder). Jmf sid 242 [SUM3Ucomplete] 8

Slå av watchdog timer WDT_MR EQU 0x400E1254 ; Watchdog Timer Mode Register ; disable WatchDog ----------------------------------- LDR R0,=WDT_MR LDR R1,=0X8000 STR R1,[R0] 9

Power Management and Clocks Alla pereferienheter som inte används klockas inte för att spara ström. Så de enheter som vi vill använda måste klockas (sätt resp. bit i peripherial clock enable). Jmf sid 481 i [SUM3U-complete] och tabellen för Peripheral Identifiers", på sid 43 i samma dockument. ; initiering Peripheral Clock ------------------------ PMC_PCER EQU 0x400E0410 ; Peripheral Clock Enable Register main LDR R0,=PMC_PCER LDR R1,=0XC00 STR R1,[R0] 10

Exempelmall #include SAM3U.h ; Fördeklarerade namn fil som vi ska ta fram Namn1 EQU <adress> Namn2 EQU <tal> THUMB ORG <kodstart> Main: <sätt upp stacken> <sätt upp avbrottsvektor> <slå av watchdog timer> <slå på peripherial clock för PortA&B> <sätt upp portarna> <övrig initiering> <resten av koden> Evigt B Evigt Konst DCx tal ; konstanter x={8,16,32} Utrymme DSx antal ; reserverat utrymm END 11

Övningsexempel: Subrutin Biträknare Skriv ett komplett program som räknar ettor i ett bitmönster. Gör en subrutin som tar hand om biträkningen. Talet antas vara ett 32-bitars tal. Bitmönstret har pushats på stacken innan anrop. Svaret ska läggas på samma position (så att det kan poppas av den anropande rutinen. Tips: Vänsterskiftning skiftar ut MSB i C-flaggan 12

Övningsexempel: Subrutin lowercase Konstruera ett program som gör om gemener till versaler. Endast gemener skall förändras Anta att en teckensträng ligger i minnet med NULL (talet 0) som avslut. Adressen till strängen ligger på en adress kallad START. Tips: ASCII tecknen för gemenerna a-z ligger mellan 97-122 (0x61-0x7A) 13

Lab2 Målet med laborationen är att få begrepp om Subrutiner Strukturering av en större kod med hjälp av subrutiner Konstruktion av subrutiner In/utparametrar. Lokala variabler Maskning av bitar till ett register 14

Sammanfattning Bekanta dig med databladen Med en bra mall så kan du fokusera på den viktiga koden. (Se till att ha en mall för uppstart och initiering; mall för huvudprogram; mall för subrutiner) 15