De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

2007-2008 PEMSY1http://www.voti.nl/hvu/PEMSY1 1  Herhaling: - ACPS - set status, conditioneel uitvoeren - indexed addressing  Nieuw: - CMP, CMN - half-word.

Verwante presentaties


Presentatie over: "2007-2008 PEMSY1http://www.voti.nl/hvu/PEMSY1 1  Herhaling: - ACPS - set status, conditioneel uitvoeren - indexed addressing  Nieuw: - CMP, CMN - half-word."— Transcript van de presentatie:

1 PEMSY1http://www.voti.nl/hvu/PEMSY1 1  Herhaling: - ACPS - set status, conditioneel uitvoeren - indexed addressing  Nieuw: - CMP, CMN - half-word and byte instructions - format 2 nd argument (operand 2)  direct aansturen van I/O pinnen (programmed I/O)  oefening: taa-tuu taa-tuu taa-tuu

2 PEMSY1http://www.voti.nl/hvu/PEMSY1 2 ACPS = ARM Procedure Call Standard R0 – R3 : function arguments R0 (R1, R2, R3) : function result R4 - R8 : local scratch R9 : afblijven R10-11 : local scratch R13 : SP R14 : LR R15 : PC R0 – R3 are *not* preserved R4-R8, R10-R11 *are* preserved (boek p )

3 PEMSY1http://www.voti.nl/hvu/PEMSY1 3 ADDR0, R1, tel op ADDS R0, R1, en zet status ADDEQ R0, R1, doe alleen als ‘EQ’ ADDSEQ R0, R1, combinatie

4 PEMSY1http://www.voti.nl/hvu/PEMSY1 4 LDR R0, [ R1 ] LDR R0, [ R1 ], #4 LDR R0, [ R1, #4 ] LDR R0, [ R1, #4 ] !

5 PEMSY1http://www.voti.nl/hvu/PEMSY1 5 (herhaling) LDR R0, [ R1 ] R0 R R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 = SP R14 = LR R15 = PC registers ……. FFFF FFFB FFFF FFFC FFFF FFFD FFFF FFFE FFFF geheugen

6 PEMSY1http://www.voti.nl/hvu/PEMSY1 6 (herhaling) LDR R0, [ R1 ], #4 R0 R R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 = SP R14 = LR R15 = PC registers ……. FFFF FFFB FFFF FFFC FFFF FFFD FFFF FFFE FFFF geheugen

7 PEMSY1http://www.voti.nl/hvu/PEMSY1 7 (herhaling) LDRH R0, [ R1, #4 ] R0 R R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 = SP R14 = LR R15 = PC registers ……. FFFF FFFB FFFF FFFC FFFF FFFD FFFF FFFE FFFF geheugen

8 PEMSY1http://www.voti.nl/hvu/PEMSY1 8 (herhaling) LDRH R0, [ R1, #4 ] ! R0 R R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 = SP R14 = LR R15 = PC registers ……. FFFF FFFB FFFF FFFC FFFF FFFD FFFF FFFE FFFF geheugen

9 PEMSY1http://www.voti.nl/hvu/PEMSY1 9 CMP R1, R2 CMP R1, #15 CMN R1, R2 CMN R1, #10  boek p52 bovenaan + 5.7

10 PEMSY1http://www.voti.nl/hvu/PEMSY1 10 CMP R2, R1 R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 = SP R14 = LR R15 = PC registers ……. FFFF FFFB FFFF FFFC FFFF FFFD FFFF FFFE FFFF geheugen - flags

11 PEMSY1http://www.voti.nl/hvu/PEMSY1 11 CMN R1, #15 R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 = SP R14 = LR R15 = PC registers ……. FFFF FFFB FFFF FFFC FFFF FFFD FFFF FFFE FFFF geheugen - flags -

12 PEMSY1http://www.voti.nl/hvu/PEMSY1 12 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 net zo bij STR

13 PEMSY1http://www.voti.nl/hvu/PEMSY1 13 MOV R0, R1 ADD R0, R1, #2 SUBC R0, R1, R2, LSL #5 ADDS R1, R2, R3, ASR R4  boek p

14 PEMSY1http://www.voti.nl/hvu/PEMSY1 14

15 PEMSY1http://www.voti.nl/hvu/PEMSY1 15  LPC2148 architectuur  I/O pin function selection  I/O pin direction selection  I/O pin manipulation

16 PEMSY1http://www.voti.nl/hvu/PEMSY1 16

17 PEMSY1http://www.voti.nl/hvu/PEMSY1 17 User Manual P.7

18 PEMSY1http://www.voti.nl/hvu/PEMSY1 18 User Manual P.8

19 PEMSY1http://www.voti.nl/hvu/PEMSY1 19 User Manual P.26 LDR R0,=0 LDR R1,=SCS STR R0,[R1]

20 PEMSY1http://www.voti.nl/hvu/PEMSY1 20 User Manual P.75

21 PEMSY1http://www.voti.nl/hvu/PEMSY1 21 User Manual P.76

22 PEMSY1http://www.voti.nl/hvu/PEMSY1 22 User Manual P.82

23 PEMSY1http://www.voti.nl/hvu/PEMSY1 23 User Manual P.82

24 PEMSY1http://www.voti.nl/hvu/PEMSY1 24 /* General Purpose IO 0 */ IO0PIN = 0xe IO0SET = 0xe IO0DIR = 0xe IO0CLR = 0xe002800c /* General Purpose IO 1 */ IO1PIN = 0xe IO1SET = 0xe IO1DIR = 0xe IO1CLR = 0xe002801c /* Pin Connect Block */ PINSEL0 = 0xe002c000 PINSEL1 = 0xe002c004 File (part of): lpc214x.inc Use: #include ”lpc214x.inc”

25 PEMSY1http://www.voti.nl/hvu/PEMSY1 25 /* General Purpose IO 0 */ #define IO0PIN (*(volatile unsigned int *)(0xe )) #define IO0SET (*(volatile unsigned int *)(0xe )) #define IO0DIR (*(volatile unsigned int *)(0xe )) #define IO0CLR (*(volatile unsigned int *)(0xe002800c)) /* General Purpose IO 1 */ #define IO1PIN (*(volatile unsigned int *)(0xe )) #define IO1SET (*(volatile unsigned int *)(0xe )) #define IO1DIR (*(volatile unsigned int *)(0xe )) #define IO1CLR (*(volatile unsigned int *)(0xe002801c)) /* Pin Connect Block */ #define PINSEL0 (*(volatile unsigned int *)(0xe002c000)) #define PINSEL1 (*(volatile unsigned int *)(0xe002c004)) File (part of): lpc214x.h

26 PEMSY1http://www.voti.nl/hvu/PEMSY1 26 (dit is code voor een LPC2106)

27 PEMSY1http://www.voti.nl/hvu/PEMSY1 27 (dit is code voor een LPC2106)

28 PEMSY1http://www.voti.nl/hvu/PEMSY1 28 Schrijf de subroutines (hou je aan de APCS!): LspInit - geen parameters - maakt de LSP pin een GPIO en output - blijft van de andere pinnen af! LspHigh - geen parameters - neemt aan dat LspInit al is aangeroepen - maakt de LSP pin hoog LspLow - geen parameters - neemt aan dat LspInit al is aangeroepen - maakt de LSP pin laag

29 PEMSY1http://www.voti.nl/hvu/PEMSY1 29 Schrijf de subroutines (hou je aan de APCS!): LspBeep - R0 = duur van 1 periode in µs - R1 = aantal perioden - gebruikt LspHigh en LspLow Test deze functies door programma te schrijven dat (in een eeuwigdurende lus) het volgende doet: 1.Piep gedurende 1 seconde op 1 kHz seconde stilte 3.Piep gedurende 1 seconde op 2 kHz seconde stilte Ga uit van de hello.zip als startpunt, de LCD code kan je natuurlijk weglaten.


Download ppt "2007-2008 PEMSY1http://www.voti.nl/hvu/PEMSY1 1  Herhaling: - ACPS - set status, conditioneel uitvoeren - indexed addressing  Nieuw: - CMP, CMN - half-word."

Verwante presentaties


Ads door Google