17
Hogeschool van Utrecht / Institute for Computer, Communicati on and Media Technology 1 Computertechniek 2 – ARM assembler herhaling ARM assembler instructies nieuwe ARM assembler instructie variaties het bordje en het gebruik ervan oefening

Wat gaan we doen?

Embed Size (px)

DESCRIPTION

Wat gaan we doen?. herhaling ARM assembler instructies nieuwe ARM assembler instructie variaties het bordje en het gebruik ervan oefening. Herhaling. LDR R0, =value@ load fixed value MOV R0, R1@ reg-reg copy LDR R0, [ R1 ]@ read from memory STR R0, [ R1 ]@ write to memory - PowerPoint PPT Presentation

Citation preview

Page 1: Wat gaan we doen?

Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology

1Computertechniek 2 – ARM assembler

herhaling ARM assembler instructies nieuwe ARM assembler instructie

variaties het bordje en het gebruik ervan oefening

Page 2: Wat gaan we doen?

Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology

2Computertechniek 2 – ARM assembler

LDR R0, =value @ load fixed valueMOV R0, R1 @ reg-reg copyLDR R0, [ R1 ] @ read from memorySTR R0, [ R1 ] @ write to memoryADD R0, R1, R2 @ R0 = R1 + R2ADD R0, R1, #15@ R0 = R1 + 15B label @ spring naar labelBL subroutine @ spring naar

subroutine

Page 3: Wat gaan we doen?

Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology

3Computertechniek 2 – ARM assembler

ADD R0, R1, R2 @ tel opADDS R0, R1, R2 @ en zet

statusADDEQ R0, R1, R2 @ doe

alleen als ‘EQ’ADDSEQ R0, R1, R2 @

combinatie

Page 4: Wat gaan we doen?

Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology

4Computertechniek 2 – ARM assembler

Variaties op LDR R0, [ R1 ]:

LDR R0, [ R1 ] @ word (32 bit)LDRH R0, [ R1 ] @ half-word (16 bit)LDRB R0, [ R1 ] @ byte (8 bit)

- H of B komt achteraan, dus: LDREQB - Let op de alignment van het geheugen adres!- Kan ook met STR

Page 5: Wat gaan we doen?

Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology

5Computertechniek 2 – ARM assembler

sluit een bordje aan (parallel + USB) installeer de files uit flip.zip

in een lege directory let op: geen spaties in de

pathname dubbel-klik op de .ppr file build start debugger

Page 6: Wat gaan we doen?

Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology

6Computertechniek 2 – ARM assembler

zet onder file > target settings:Target = Remote/TCPHostname = 127.0.0.1Port = 8888

(als je netjes afsluit blijft zou dit moeten blijven staan)

Page 7: Wat gaan we doen?

Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology

7Computertechniek 2 – ARM assembler

Als je dit krijgt moet je onder control panel > system > hardware > device manager (select view > show hidden devices) > non plug-and-pray devices > MAC_MOT > driver instellen op status = started, type = automatic

Page 8: Wat gaan we doen?

Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology

8Computertechniek 2 – ARM assembler

Als je dit krijgt heb je debugger/loader niet afgesloten

Page 9: Wat gaan we doen?

Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology

9Computertechniek 2 – ARM assembler

Voor als het even echt niet meer werkt: als je de debugger hebt afgesloten

moeten al die DOS schermen ook weg zijn (evt met de hand sluiten)

De editor sluiten en weer opstartende USB en Paralelle kabels er even

uithalen om het bordje te resetten, USB eerst weer aansluiten, dan parallel.

PC uitzetten en weer aanzetten

Page 10: Wat gaan we doen?

Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology

10Computertechniek 2 – ARM assembler

Page 11: Wat gaan we doen?

Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology

11Computertechniek 2 – ARM assembler

Page 12: Wat gaan we doen?

Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology

12Computertechniek 2 – ARM assembler

• ARK_LEDs_writeschrijft de laagste 8 bits van R0 naar de

LEDs, bitje == 1 LEDje is aan

• ARK_wait_uswacht R0 microseconds (micro = 10-6)

Beiden volgen de APCS!

Page 13: Wat gaan we doen?

Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology

13Computertechniek 2 – ARM assembler

APCS = ARM Procedure Call Standard

R0 - R3: function arguments

R0 : function result (if applicable)

R4 - R8 : local scratch (preserved)

R9 - R15 : specific use (avoid)

R0 - R3 are *not* preserved (caller-saved)

R4 - R8 *must* be preserved

(boek p175-180)

Page 14: Wat gaan we doen?

Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology

14Computertechniek 2 – ARM assembler

#include "ark.h" .global main

ARMmain: mov r0, r1

loop: ldr r0, =0x55 bl ARK_LEDs_write

ldr r0, =( 500 * 1000 ) bl ARK_wait_us

ldr r0, =0xAA bl ARK_LEDs_write

ldr r0, =( 500 * 1000 ) bl ARK_wait_us

b loop

Page 15: Wat gaan we doen?

Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology

15Computertechniek 2 – ARM assembler

Opdrachten:

Build en run het ‘flip’ programma op je bordje. Maak vervolgens zelf een programma dat op de LEDs een ‘KITT’ display laat zien. Maak hiervan twee versies:

1. Een Belgische versie: een reeks calls met de waarden (patronen) die je wilt laten zien.Dit is een uitbreiding van flip.S in de zelfde stijl.

Page 16: Wat gaan we doen?

Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology

16Computertechniek 2 – ARM assembler

Opdrachten (vervolg):

2. Maak vervolgens een ‘tabel-in-het-geheugen’ versie: zet in het geheugen een reeks “.hword N” waarden, met als N de opeenvolgende patronen. Gebruik een waarde die niet kan, bv “-1” als afsluiter. Je programma begint aan het begin van de reeks, leest telkens een waarde, toon die waarde, en wacht even, maar als het de afsluiter tegenkomt begin je weer opnieuw aan het begin van de reeks.

Page 17: Wat gaan we doen?

Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology

17Computertechniek 2 – ARM assembler

Opdrachten (vervolg):

Verwijder flip.S (of jouw versie daarvan) uit het project en voeg kitt.c toe. Dit is een C versie van het kitt display. Pas dit programma aan zodat het ledje snel naar links gaat en dan langzaam naar rechts.