2008 2009 VPEMSY 1 D 3 ECPT 2

  • Slides: 27
Download presentation
2008 -2009 VPEMSY 1, D 3 ECPT 2 : ARM Assembler http: //www. voti.

2008 -2009 VPEMSY 1, D 3 ECPT 2 : ARM Assembler http: //www. voti. nl/hvu/PEMSY 1 1 Ø Herhaling: ACPS; indexed addressing; half-word/byte Ø Nieuw: - CMP, CMN - format 2 nd argument (operand 2) Ø direct aansturen van I/O pinnen (programmed I/O) Ø oefening: taa-tuu Hogeschool Utrecht / Electrical Engineering & Design

2008 -2009 VPEMSY 1, D 3 ECPT 2 : ARM Assembler http: //www. voti.

2008 -2009 VPEMSY 1, D 3 ECPT 2 : ARM Assembler http: //www. voti. nl/hvu/PEMSY 1 ACPS = ARM Procedure Call Standard R 0 – R 3 : function arguments R 0 (R 1, R 2, R 3) : function result R 4 - R 8 : local scratch R 9 : afblijven R 10 -11 : local scratch R 13 : SP R 14 : LR R 15 : PC R 0 – R 3 are *not* preserved R 4 -R 8, R 10 -R 11 *are* preserved (boek p 175 -180) Hogeschool Utrecht / Electrical Engineering & Design 2

2008 -2009 VPEMSY 1, D 3 ECPT 2 : ARM Assembler LDR LDR R

2008 -2009 VPEMSY 1, D 3 ECPT 2 : ARM Assembler LDR LDR R 0, [ [ http: //www. voti. nl/hvu/PEMSY 1 R 1 ], #4 R 1, #4 ] ! LDRH R 0, [ R 1 ] LDRB R 0, [ R 1 ] Hogeschool Utrecht / Electrical Engineering & Design 3

2008 -2009 VPEMSY 1, D 3 ECPT 2 : ARM Assembler http: //www. voti.

2008 -2009 VPEMSY 1, D 3 ECPT 2 : ARM Assembler http: //www. voti. nl/hvu/PEMSY 1 (herhaling) LDR R 0, [ R 1 ] R 0 R 1 0000 0004 0000 0001 R 2 0000 0002 R 3 0000 0003 R 4 0000 0004 R 5 0000 0005 R 6 0000 0006 R 7 0000 0007 R 8 0000 0008 R 9 0000 0009 R 10 ……. R 11 FFFF FFFB R 12 FFFF FFFC R 13 = SP FFFF FFFD R 14 = LR FFFF FFFE R 15 = PC FFFF registers geheugen Hogeschool Utrecht / Electrical Engineering & Design 4

2008 -2009 VPEMSY 1, D 3 ECPT 2 : ARM Assembler http: //www. voti.

2008 -2009 VPEMSY 1, D 3 ECPT 2 : ARM Assembler http: //www. voti. nl/hvu/PEMSY 1 (herhaling) LDR R 0, [ R 1 ], #4 R 0 R 1 0000 0004 0000 0001 R 2 0000 0002 R 3 0000 0003 R 4 0000 0004 R 5 R 6 + R 7 R 8 0000 0005 0000 0006 0000 0007 0000 0008 R 9 0000 0009 R 10 ……. R 11 FFFF FFFB R 12 FFFF FFFC R 13 = SP FFFF FFFD R 14 = LR FFFF FFFE R 15 = PC FFFF registers geheugen Hogeschool Utrecht / Electrical Engineering & Design 5

2008 -2009 VPEMSY 1, D 3 ECPT 2 : ARM Assembler http: //www. voti.

2008 -2009 VPEMSY 1, D 3 ECPT 2 : ARM Assembler http: //www. voti. nl/hvu/PEMSY 1 (herhaling) LDRH R 0, [ R 1, #4 ] R 0 R 1 0000 0004 0000 0001 R 2 0000 0002 R 3 0000 0003 R 4 0000 0004 R 5 R 6 + 0000 0008 0000 0005 0000 0006 R 7 0000 0007 R 8 0000 0008 R 9 0000 0009 R 10 ……. R 11 FFFF FFFB R 12 FFFF FFFC R 13 = SP FFFF FFFD R 14 = LR FFFF FFFE R 15 = PC FFFF registers geheugen Hogeschool Utrecht / Electrical Engineering & Design 6

2008 -2009 VPEMSY 1, D 3 ECPT 2 : ARM Assembler http: //www. voti.

2008 -2009 VPEMSY 1, D 3 ECPT 2 : ARM Assembler http: //www. voti. nl/hvu/PEMSY 1 (herhaling) LDRB R 0, [ R 1, #4 ] ! R 0 R 1 0000 0004 0000 0001 R 2 0000 0002 R 3 0000 0003 R 4 0000 0004 R 5 R 6 + R 7 R 8 0000 0005 0000 0006 0000 0007 0000 0008 R 9 0000 0009 R 10 ……. R 11 FFFF FFFB R 12 FFFF FFFC R 13 = SP FFFF FFFD R 14 = LR FFFF FFFE R 15 = PC FFFF registers geheugen Hogeschool Utrecht / Electrical Engineering & Design 7

2008 -2009 VPEMSY 1, D 3 ECPT 2 : ARM Assembler http: //www. voti.

2008 -2009 VPEMSY 1, D 3 ECPT 2 : ARM Assembler http: //www. voti. nl/hvu/PEMSY 1 CMP R 1, R 2 CMP R 1, #15 CMN R 1, R 2 CMN R 1, #10 Ø boek p 52 bovenaan + 5. 7 Hogeschool Utrecht / Electrical Engineering & Design 8

2008 -2009 VPEMSY 1, D 3 ECPT 2 : ARM Assembler http: //www. voti.

2008 -2009 VPEMSY 1, D 3 ECPT 2 : ARM Assembler http: //www. voti. nl/hvu/PEMSY 1 CMP R 2, R 1 R 0 0000 R 1 0000 0001 R 2 0000 0002 R 3 0000 0003 R 4 R 5 - 0000 0004 0000 0005 R 6 0000 0006 R 7 0000 0007 R 8 0000 0008 R 9 0000 0009 R 10 ……. R 11 FFFF FFFB R 12 FFFF FFFC R 13 = SP R 14 = LR R 15 = PC registers flags FFFF FFFD FFFF FFFE FFFF geheugen Hogeschool Utrecht / Electrical Engineering & Design 9

2008 -2009 VPEMSY 1, D 3 ECPT 2 : ARM Assembler http: //www. voti.

2008 -2009 VPEMSY 1, D 3 ECPT 2 : ARM Assembler http: //www. voti. nl/hvu/PEMSY 1 CMN R 1, #15 R 0 0000 - R 1 R 2 R 3 R 4 R 5 - 0000 0001 0000 0002 0000 0003 0000 0004 0000 0005 R 6 0000 0006 R 7 0000 0007 R 8 0000 0008 R 9 0000 0009 R 10 ……. R 11 FFFF FFFB R 12 FFFF FFFC R 13 = SP R 14 = LR R 15 = PC registers flags FFFF FFFD FFFF FFFE FFFF geheugen Hogeschool Utrecht / Electrical Engineering & Design 10

2008 -2009 VPEMSY 1, D 3 ECPT 2 : ARM Assembler http: //www. voti.

2008 -2009 VPEMSY 1, D 3 ECPT 2 : ARM Assembler http: //www. voti. nl/hvu/PEMSY 1 MOV R 0, R 1 ADD R 0, R 1, #2 SUBC R 0, R 1, R 2, LSL #5 ADDS R 1, R 2, R 3, ASR R 4 Ø boek p 52. . 53 + 5. 7 Hogeschool Utrecht / Electrical Engineering & Design 11

2008 -2009 VPEMSY 1, D 3 ECPT 2 : ARM Assembler http: //www. voti.

2008 -2009 VPEMSY 1, D 3 ECPT 2 : ARM Assembler http: //www. voti. nl/hvu/PEMSY 1 Hogeschool Utrecht / Electrical Engineering & Design 12

2008 -2009 VPEMSY 1, D 3 ECPT 2 : ARM Assembler Ø Ø http:

2008 -2009 VPEMSY 1, D 3 ECPT 2 : ARM Assembler Ø Ø http: //www. voti. nl/hvu/PEMSY 1 LPC 2148 architectuur I/O pin function selection I/O pin direction selection I/O pin manipulation Hogeschool Utrecht / Electrical Engineering & Design 13

2008 -2009 VPEMSY 1, D 3 ECPT 2 : ARM Assembler http: //www. voti.

2008 -2009 VPEMSY 1, D 3 ECPT 2 : ARM Assembler http: //www. voti. nl/hvu/PEMSY 1 Hogeschool Utrecht / Electrical Engineering & Design 14

2008 -2009 VPEMSY 1, D 3 ECPT 2 : ARM Assembler http: //www. voti.

2008 -2009 VPEMSY 1, D 3 ECPT 2 : ARM Assembler http: //www. voti. nl/hvu/PEMSY 1 Hogeschool Utrecht / Electrical Engineering & Design User Manual P. 7 15

2008 -2009 VPEMSY 1, D 3 ECPT 2 : ARM Assembler http: //www. voti.

2008 -2009 VPEMSY 1, D 3 ECPT 2 : ARM Assembler http: //www. voti. nl/hvu/PEMSY 1 User Manual P. 8 Hogeschool Utrecht / Electrical Engineering & Design 16

2008 -2009 VPEMSY 1, D 3 ECPT 2 : ARM Assembler http: //www. voti.

2008 -2009 VPEMSY 1, D 3 ECPT 2 : ARM Assembler http: //www. voti. nl/hvu/PEMSY 1 LDR R 0, =0 LDR R 1, =SCS STR R 0, [R 1] User Manual P. 26 Hogeschool Utrecht / Electrical Engineering & Design 17

2008 -2009 VPEMSY 1, D 3 ECPT 2 : ARM Assembler http: //www. voti.

2008 -2009 VPEMSY 1, D 3 ECPT 2 : ARM Assembler http: //www. voti. nl/hvu/PEMSY 1 User Manual P. 75 Hogeschool Utrecht / Electrical Engineering & Design 18

2008 -2009 VPEMSY 1, D 3 ECPT 2 : ARM Assembler http: //www. voti.

2008 -2009 VPEMSY 1, D 3 ECPT 2 : ARM Assembler http: //www. voti. nl/hvu/PEMSY 1 User Manual P. 76 Hogeschool Utrecht / Electrical Engineering & Design 19

2008 -2009 VPEMSY 1, D 3 ECPT 2 : ARM Assembler http: //www. voti.

2008 -2009 VPEMSY 1, D 3 ECPT 2 : ARM Assembler http: //www. voti. nl/hvu/PEMSY 1 User Manual P. 82 Hogeschool Utrecht / Electrical Engineering & Design 20

2008 -2009 VPEMSY 1, D 3 ECPT 2 : ARM Assembler http: //www. voti.

2008 -2009 VPEMSY 1, D 3 ECPT 2 : ARM Assembler http: //www. voti. nl/hvu/PEMSY 1 User Manual P. 82 Hogeschool Utrecht / Electrical Engineering & Design 21

2008 -2009 VPEMSY 1, D 3 ECPT 2 : ARM Assembler http: //www. voti.

2008 -2009 VPEMSY 1, D 3 ECPT 2 : ARM Assembler http: //www. voti. nl/hvu/PEMSY 1 /* General Purpose IO 0 */ IO 0 PIN = 0 xe 0028000 IO 0 SET = 0 xe 0028004 IO 0 DIR = 0 xe 0028008 IO 0 CLR = 0 xe 002800 c /* General Purpose IO 1 */ IO 1 PIN = 0 xe 0028010 IO 1 SET = 0 xe 0028014 IO 1 DIR = 0 xe 0028018 IO 1 CLR = 0 xe 002801 c /* Pin Connect Block */ PINSEL 0 = 0 xe 002 c 000 PINSEL 1 = 0 xe 002 c 004 File (part of): lpc 214 x. inc Use: #include ”lpc 214 x. inc” Hogeschool Utrecht / Electrical Engineering & Design 22

2008 -2009 VPEMSY 1, D 3 ECPT 2 : ARM Assembler http: //www. voti.

2008 -2009 VPEMSY 1, D 3 ECPT 2 : ARM Assembler http: //www. voti. nl/hvu/PEMSY 1 /* General Purpose IO 0 */ #define IO 0 PIN #define IO 0 SET #define IO 0 DIR #define IO 0 CLR (*(volatile unsigned int int *)(0 xe 0028000)) *)(0 xe 0028004)) *)(0 xe 0028008)) *)(0 xe 002800 c)) /* General Purpose IO 1 */ #define IO 1 PIN #define IO 1 SET #define IO 1 DIR #define IO 1 CLR (*(volatile unsigned int int *)(0 xe 0028010)) *)(0 xe 0028014)) *)(0 xe 0028018)) *)(0 xe 002801 c)) /* Pin Connect Block */ #define PINSEL 0 #define PINSEL 1 (*(volatile unsigned int *)(0 xe 002 c 000)) (*(volatile unsigned int *)(0 xe 002 c 004)) File (part of): lpc 214 x. h Hogeschool Utrecht / Electrical Engineering & Design 23

2008 -2009 VPEMSY 1, D 3 ECPT 2 : ARM Assembler http: //www. voti.

2008 -2009 VPEMSY 1, D 3 ECPT 2 : ARM Assembler http: //www. voti. nl/hvu/PEMSY 1 (dit is code voor een LPC 2106) Hogeschool Utrecht / Electrical Engineering & Design 24

2008 -2009 VPEMSY 1, D 3 ECPT 2 : ARM Assembler http: //www. voti.

2008 -2009 VPEMSY 1, D 3 ECPT 2 : ARM Assembler http: //www. voti. nl/hvu/PEMSY 1 (dit is code voor een LPC 2106) Hogeschool Utrecht / Electrical Engineering & Design 25

2008 -2009 VPEMSY 1, D 3 ECPT 2 : ARM Assembler http: //www. voti.

2008 -2009 VPEMSY 1, D 3 ECPT 2 : ARM Assembler http: //www. voti. nl/hvu/PEMSY 1 Schrijf de subroutines (hou je aan de APCS!): Lsp. Init - geen parameters - maakt de LSP pin een GPIO en output - blijft van de andere pinnen af! Lsp. High - geen parameters - neemt aan dat Lsp. Init al is aangeroepen - maakt de LSP pin hoog Lsp. Low - geen parameters - neemt aan dat Lsp. Init al is aangeroepen - maakt de LSP pin laag Hogeschool Utrecht / Electrical Engineering & Design 26

2008 -2009 VPEMSY 1, D 3 ECPT 2 : ARM Assembler http: //www. voti.

2008 -2009 VPEMSY 1, D 3 ECPT 2 : ARM Assembler http: //www. voti. nl/hvu/PEMSY 1 27 Schrijf de subroutines (hou je aan de APCS!): Lsp. Beep - R 0 = duur van 1 periode in µs - R 1 = aantal perioden - gebruikt Lsp. High en Lsp. Low Test deze functies door programma te schrijven dat (in eeuwigdurende lus) het volgende doet: 1. 2. 3. 4. ‘Piep’ gedurende 1 seconde op 440 Hz 0. 1 seconde stilte ‘Piep’ gedurende 1 seconde op 880 Hz 0. 5 seconde stilte Ga uit van de blink. zip als startpunt; gebruik #include ”lpc 2148. h” Hogeschool Utrecht / Electrical Engineering & Design