De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

2008-2009 VPEMSY1, D3ECPT2, DU1EMSY1 : ARM Assemblerhttp://www.voti.nl/hvu Hogeschool Utrecht / Electrical Engineering & Design 1 Hogeschool van Utrecht.

Verwante presentaties


Presentatie over: "2008-2009 VPEMSY1, D3ECPT2, DU1EMSY1 : ARM Assemblerhttp://www.voti.nl/hvu Hogeschool Utrecht / Electrical Engineering & Design 1 Hogeschool van Utrecht."— Transcript van de presentatie:

1 2008-2009 VPEMSY1, D3ECPT2, DU1EMSY1 : ARM Assemblerhttp://www.voti.nl/hvu Hogeschool Utrecht / Electrical Engineering & Design 1 Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Wouter van Ooijen Mail: wouter@voti.nl Sheets en info: www.voti.nl/hvu Onderwerp: Programmeren van een Embedded Systeem Literatuur:ARM system on chip architecture S.B. Furber Addison Wesley Longman 0-201-67519-6

2 2008-2009 VPEMSY1, D3ECPT2, DU1EMSY1 : ARM Assemblerhttp://www.voti.nl/hvu Hogeschool Utrecht / Electrical Engineering & Design 2  instructie aan de hand van sheets  boek als ondersteuning  opgaves, in de les of thuis maken  ARM V3.2 bordje aanschaffen (€ 60), wordt in volgende vak(ken) weer gebruikt  tentamen

3 2008-2009 VPEMSY1, D3ECPT2, DU1EMSY1 : ARM Assemblerhttp://www.voti.nl/hvu Hogeschool Utrecht / Electrical Engineering & Design 3  inleiding embedded/real-time/microcontrollers  eerste uitleg ARM assembly language  oefeningen ARM assembler met de simulator

4 2008-2009 VPEMSY1, D3ECPT2, DU1EMSY1 : ARM Assemblerhttp://www.voti.nl/hvu Hogeschool Utrecht / Electrical Engineering & Design 4 steeds meer transistoren op een chip... losse transistor logica analoge ICs programmeerbare logica klant-specifieke logica micro processor micro controller ‘super’ microprocessor uC als IP

5 2008-2009 VPEMSY1, D3ECPT2, DU1EMSY1 : ARM Assemblerhttp://www.voti.nl/hvu Hogeschool Utrecht / Electrical Engineering & Design 5 meestal:  ‘computer-achtig’ ding  geschikt voor real-time  geschikt voor embedded gebruik  combinatie van processor, ROM, RAM, I/O,...  compact  goedkoop  zuinig

6 2008-2009 VPEMSY1, D3ECPT2, DU1EMSY1 : ARM Assemblerhttp://www.voti.nl/hvu Hogeschool Utrecht / Electrical Engineering & Design 6  ergens in, deel van een geheel  vaste functie, dus niet vrij programmeerbaar

7 2008-2009 VPEMSY1, D3ECPT2, DU1EMSY1 : ARM Assemblerhttp://www.voti.nl/hvu Hogeschool Utrecht / Electrical Engineering & Design 7 niet:  snel  zo snel mogelijk  interactief, batch wel:  op tijd!

8 2008-2009 VPEMSY1, D3ECPT2, DU1EMSY1 : ARM Assemblerhttp://www.voti.nl/hvu Hogeschool Utrecht / Electrical Engineering & Design 8 responstijd nut

9 2008-2009 VPEMSY1, D3ECPT2, DU1EMSY1 : ARM Assemblerhttp://www.voti.nl/hvu Hogeschool Utrecht / Electrical Engineering & Design 9 ultra-goedkoop chinees, inclusief de documentatie lastig verkrijgbaar general-purpose PIC, Atmel, 8051, 68HC high-end ARM, PowerPC special purpose DSP, ethernet, USB, analoog,...

10 2008-2009 VPEMSY1, D3ECPT2, DU1EMSY1 : ARM Assemblerhttp://www.voti.nl/hvu Hogeschool Utrecht / Electrical Engineering & Design 10  IP  kale chip  chip in behuizing  module  PCB  box (bv PLC)

11 2008-2009 VPEMSY1, D3ECPT2, DU1EMSY1 : ARM Assemblerhttp://www.voti.nl/hvu Hogeschool Utrecht / Electrical Engineering & Design 11 bijna altijd cross-development:  jij werkt op een PC  daar draait je editor, compiler, assembler, linker assembler, linker  loader of programmer om te laden  evt. In-Circuit Debugger  luxer: ICE  primitiever: burn and crash

12 2008-2009 VPEMSY1, D3ECPT2, DU1EMSY1 : ARM Assemblerhttp://www.voti.nl/hvu Hogeschool Utrecht / Electrical Engineering & Design 12 C (of een andere HLL): grof  makkelijk en snel  reduceert de ontwikkelkosten Assembler: nauwkeurig  moeilijker, specifiek, meer werk  reduceert de hardware kosten

13 2008-2009 VPEMSY1, D3ECPT2, DU1EMSY1 : ARM Assemblerhttp://www.voti.nl/hvu Hogeschool Utrecht / Electrical Engineering & Design 13  vaak het meeste in C  kritische delen soms in assembler  kennis van assembler is nuttig voor efficient gebruik van een controller, ook in C !  het zal je maar gebeuren: een bug in je compiler...

14 2008-2009 VPEMSY1, D3ECPT2, DU1EMSY1 : ARM Assemblerhttp://www.voti.nl/hvu Hogeschool Utrecht / Electrical Engineering & Design 14 CISC  doe zo veel mogelijk per instructie  codeer instructies compact RISC  voer zoveel mogelijk instructies uit  codeer instructies simpel

15 2008-2009 VPEMSY1, D3ECPT2, DU1EMSY1 : ARM Assemblerhttp://www.voti.nl/hvu Hogeschool Utrecht / Electrical Engineering & Design 15  1983 : een opvolger voor the BEEP  uit pure noodzaak: RISC, klein  Acorn RISC Machine  zuinig (veel MIPS per Watt)  krachtig  beschikbaar als chip, maar ook als IP  interne of externe bus  MAC

16 2008-2009 VPEMSY1, D3ECPT2, DU1EMSY1 : ARM Assemblerhttp://www.voti.nl/hvu Hogeschool Utrecht / Electrical Engineering & Design 16 ARM Advanced RISC Machines load store architecture fixed length 32-bit instructions 3-address instruction formats many instructions execute in one cycle instructions are conditionally executed

17 2008-2009 VPEMSY1, D3ECPT2, DU1EMSY1 : ARM Assemblerhttp://www.voti.nl/hvu Hogeschool Utrecht / Electrical Engineering & Design 17 registers en geheugen R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 = SP R14 = LR R15 = PC registers 0000 0000 0001 0000 0002 0000 0003 0000 0004 0000 0005 0000 0006 0000 0007 0000 0008 0000 0009 ……. FFFF FFFB FFFF FFFC FFFF FFFD FFFF FFFE FFFF geheugen ARM processor chip

18 2008-2009 VPEMSY1, D3ECPT2, DU1EMSY1 : ARM Assemblerhttp://www.voti.nl/hvu Hogeschool Utrecht / Electrical Engineering & Design 18 ARM User Programming model r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 (PC) CPSR 31 0 N Z C V r13: stack pointer r14: link register 31 0 Status register

19 2008-2009 VPEMSY1, D3ECPT2, DU1EMSY1 : ARM Assemblerhttp://www.voti.nl/hvu Hogeschool Utrecht / Electrical Engineering & Design 19 Data Movement – load a constant value LDR destination, =value Examples: –LDRr0, =10 –LDRr1, =’a’ –LDRr2, =buffer  Let op: het boek gebruikt ADR R2, buffer  Geen # betekent: er volgt een label  Dit is geen ‘echte’ ARM instructie  Destination moet een register zijn

20 2008-2009 VPEMSY1, D3ECPT2, DU1EMSY1 : ARM Assemblerhttp://www.voti.nl/hvu Hogeschool Utrecht / Electrical Engineering & Design 20 LDR R0, =value R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 = SP R14 = LR R15 = PC registers 0000 0000 0001 0000 0002 0000 0003 0000 0004 0000 0005 0000 0006 0000 0007 0000 0008 0000 0009 ……. FFFF FFFB FFFF FFFC FFFF FFFD FFFF FFFE FFFF geheugen

21 2008-2009 VPEMSY1, D3ECPT2, DU1EMSY1 : ARM Assemblerhttp://www.voti.nl/hvu Hogeschool Utrecht / Electrical Engineering & Design 21 Data Movement – load from a register MOV destination, source Examples: –MOVr0, r1 –MOVr1, r2 –MOVr2, r3

22 2008-2009 VPEMSY1, D3ECPT2, DU1EMSY1 : ARM Assemblerhttp://www.voti.nl/hvu Hogeschool Utrecht / Electrical Engineering & Design 22 MOV R0, R1 R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 = SP R14 = LR R15 = PC registers 0000 0000 0001 0000 0002 0000 0003 0000 0004 0000 0005 0000 0006 0000 0007 0000 0008 0000 0009 ……. FFFF FFFB FFFF FFFC FFFF FFFD FFFF FFFE FFFF geheugen

23 2008-2009 VPEMSY1, D3ECPT2, DU1EMSY1 : ARM Assemblerhttp://www.voti.nl/hvu Hogeschool Utrecht / Electrical Engineering & Design 23 Data Movement – load from memory LDR destination, [ source_pointer ] Examples: –LDRr1, [ r3 ]

24 2008-2009 VPEMSY1, D3ECPT2, DU1EMSY1 : ARM Assemblerhttp://www.voti.nl/hvu Hogeschool Utrecht / Electrical Engineering & Design 24 LDR R0, [ R1 ] R0 R1000 0004 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 = SP R14 = LR R15 = PC registers 0000 0000 0001 0000 0002 0000 0003 0000 0004 0000 0005 0000 0006 0000 0007 0000 0008 0000 0009 ……. FFFF FFFB FFFF FFFC FFFF FFFD FFFF FFFE FFFF geheugen

25 2008-2009 VPEMSY1, D3ECPT2, DU1EMSY1 : ARM Assemblerhttp://www.voti.nl/hvu Hogeschool Utrecht / Electrical Engineering & Design 25 Data Movement – save to memory STR destination, [ destination_pointer ] Examples: –STRr1, [ r3 ]

26 2008-2009 VPEMSY1, D3ECPT2, DU1EMSY1 : ARM Assemblerhttp://www.voti.nl/hvu Hogeschool Utrecht / Electrical Engineering & Design 26 STR R0, [ R1 ] R0 R1FFFF FFFC R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 = SP R14 = LR R15 = PC registers 0000 0000 0001 0000 0002 0000 0003 0000 0004 0000 0005 0000 0006 0000 0007 0000 0008 0000 0009 ……. FFFF FFFB FFFF FFFC FFFF FFFD FFFF FFFE FFFF geheugen

27 2008-2009 VPEMSY1, D3ECPT2, DU1EMSY1 : ARM Assemblerhttp://www.voti.nl/hvu Hogeschool Utrecht / Electrical Engineering & Design 27 Data processing Instructions Largest group of instructions, all sharing the same instruction format. Contains: –Arithmetic operations –Comparisons (no results - just set condition codes) –Logical operations –Data movement between registers Remember, this is a load / store architecture NOT –These instruction only work on registers, NOT memory. They each perform a specific operation on one or two operands. –First operand always a register - Rn

28 2008-2009 VPEMSY1, D3ECPT2, DU1EMSY1 : ARM Assemblerhttp://www.voti.nl/hvu Hogeschool Utrecht / Electrical Engineering & Design 28 Arithmetic Operations Operations are: –ADDoperand1 + operand2 –ADCoperand1 + operand2 + carry –SUBoperand1 - operand2 –SBCoperand1 - operand2 + carry -1 –RSBoperand2 - operand1 –RSCoperand2 - operand1 + carry - 1 Syntax: – Rd, Rn, Operand2 Examples –ADD r0, r1, r2 –SUBGT r3, r3, #1 –RSBLES r4, r5, #5

29 2008-2009 VPEMSY1, D3ECPT2, DU1EMSY1 : ARM Assemblerhttp://www.voti.nl/hvu Hogeschool Utrecht / Electrical Engineering & Design 29 Logical Operations Operations are: –ANDoperand1 AND operand2 –EORoperand1 EOR operand2 –ORRoperand1 OR operand2 –BICoperand1 AND NOT operand2 [ie bit clear] Syntax: – Rd, Rn, Operand2 Examples: –ANDr0, r1, r2 –BICEQr2, r3, #7 –EORSr1,r3,r0

30 2008-2009 VPEMSY1, D3ECPT2, DU1EMSY1 : ARM Assemblerhttp://www.voti.nl/hvu Hogeschool Utrecht / Electrical Engineering & Design 30 ADD R3, R1, R2 R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 = SP R14 = LR R15 = PC registers 0000 0000 0001 0000 0002 0000 0003 0000 0004 0000 0005 0000 0006 0000 0007 0000 0008 0000 0009 ……. FFFF FFFB FFFF FFFC FFFF FFFD FFFF FFFE FFFF geheugen +

31 2008-2009 VPEMSY1, D3ECPT2, DU1EMSY1 : ARM Assemblerhttp://www.voti.nl/hvu Hogeschool Utrecht / Electrical Engineering & Design 31 copieer de files uit empty.zip  in een lege directory  let op: geen spaties in de pathname   dubbel-klik op de.ppr file  edit je main.s  build (ctrl-F9)  start debugger (F9)

32 2008-2009 VPEMSY1, D3ECPT2, DU1EMSY1 : ARM Assemblerhttp://www.voti.nl/hvu Hogeschool Utrecht / Electrical Engineering & Design 32.global main LABEL1:.word 10 LABEL2:.word 11 X:.word 12 Y:.word 13 Z:.word 14.align @ begin main main: @ hier komt je code @ einde main klaar: b klaar

33 2008-2009 VPEMSY1, D3ECPT2, DU1EMSY1 : ARM Assemblerhttp://www.voti.nl/hvu Hogeschool Utrecht / Electrical Engineering & Design 33 na starten van de debugger zet je onder file > target settings:  Target = Simulator (als je netjes afsluit blijft zou dit moeten blijven staan)

34 2008-2009 VPEMSY1, D3ECPT2, DU1EMSY1 : ARM Assemblerhttp://www.voti.nl/hvu Hogeschool Utrecht / Electrical Engineering & Design 34 (evt. kan je breakpoints zetten of verwijderen)  run als het goed is kom je nu op een breakpoint aan het begin van main

35 2008-2009 VPEMSY1, D3ECPT2, DU1EMSY1 : ARM Assemblerhttp://www.voti.nl/hvu Hogeschool Utrecht / Electrical Engineering & Design 35 Loop nu instructie voor instructie door je programma heen (step) Let op wat er veranderd in de regsiters en (uiteindelijk) in het geheugen

36 2008-2009 VPEMSY1, D3ECPT2, DU1EMSY1 : ARM Assemblerhttp://www.voti.nl/hvu Hogeschool Utrecht / Electrical Engineering & Design 36 Maak de registers en een stuk geheugen zichtbaar

37 2008-2009 VPEMSY1, D3ECPT2, DU1EMSY1 : ARM Assemblerhttp://www.voti.nl/hvu Hogeschool Utrecht / Electrical Engineering & Design 37

38 2008-2009 VPEMSY1, D3ECPT2, DU1EMSY1 : ARM Assemblerhttp://www.voti.nl/hvu Hogeschool Utrecht / Electrical Engineering & Design 38 -Doe twee stappen, -kijk in R1 waar in het geheugen getal_1 terecht is gekomen -Laat je geheugen venster daarheen wijzen

39 2008-2009 VPEMSY1, D3ECPT2, DU1EMSY1 : ARM Assemblerhttp://www.voti.nl/hvu Hogeschool Utrecht / Electrical Engineering & Design 39 Doen – thuis lezen lees 3.1 t/m blz 52 3.2 t/m blz 58 halverwege

40 2008-2009 VPEMSY1, D3ECPT2, DU1EMSY1 : ARM Assemblerhttp://www.voti.nl/hvu Hogeschool Utrecht / Electrical Engineering & Design 40 Doen - hier oefenen 1.Schrijf en test een programma dat de waarden in R0 en R1 verwisselt. Je hebt een extra register nodig. 2.Schrijf en test een programma dat de waarden in de geheugenlocaties X en Y optelt, en het resultaat in geheugenlocatie Z zet. 3.Schrijf en test een programma dat de waarden in de geheugenlocaties LABEL1 en LABEL2 verwisselt. Let goed op het verschil tussen een label en de inhoud van het geheugen op de plek van dat label.


Download ppt "2008-2009 VPEMSY1, D3ECPT2, DU1EMSY1 : ARM Assemblerhttp://www.voti.nl/hvu Hogeschool Utrecht / Electrical Engineering & Design 1 Hogeschool van Utrecht."

Verwante presentaties


Ads door Google