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

Slides:



Advertisements
Verwante presentaties
28 juni 2009 Paëllanamiddag 1 Paëllanamiddag 28 juni 2009 Voorbereiding vrijdagavond (Loopt automatisch - 7 seconden)
Advertisements

Hoe werkt een rekenmachine?
NEDERLANDS WOORD BEELD IN & IN Klik met de muis
Personalisatie van de Archis website Naam: Sing Hsu Student nr: Datum: 24 Juni 2004.
Global e-Society Complex België - Regio Vlaanderen e-Regio Provincie Limburg Stad Hasselt Percelen.
Par. 3.1 Computers zijn overal
Jerry van den Heuvel Pim van der Lee
Ronde (Sport & Spel) Quiz Night !
Auteursomgeving voor Digitale Componenten
PowerPC Practicum. Introductie Doel practicum = Computers begrijpen Leer de werking van een computer door een emulator te bouwen.
Een optimale benutting van vierkante meters Breda, 6 juni 2007.
1/1/ eindhoven university of technology / faculty of Computer Science 2IC20:Computersystemen Week 4: Instructieformaten adressering assembleertalen (zelfstudie.
1/1/ /e/e eindhoven university of technology 5JJ20:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 2(2): Instructieformaten adressering assembleertalen.
C programma int main(){ } Compilatie met devc++ in file main.c Gecompileerd programma in file FirstProgram.exe Mov R1, 120 Mov R2, 160 ADD R1, R2.
1/1/ /e/e eindhoven university of technology 5JJ20:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 3(1): Instructietypen (1)
1Ben Bruidegom Hoe werkt een rekenmachine? Ben Bruidegom AMSTEL Instituut Universiteit van Amsterdam.
1Ben Bruidegom 1 Hoe werkt een “loopje” nu precies? Recapitulatie rekenmachines week 1 Van rekenmachine naar rekenmachine met “loopjes”
1Ben Bruidegom A Harvard Machine Calculator Calculator  Computer.
Auteursomgeving voor Digitale Componenten
1Ben Bruidegom A Harvard Machine Recapitulatie Calculator Calculator  Calculator met “loopjes” Calculator met “loopjes”  Processor.
2009 Tevredenheidsenquête Resultaten Opleidingsinstellingen.
Hoe werkt een rekenmachine?
1Ben Bruidegom 1 De Harvard Machine Van rekenmachine met “loopjes” naar processor.
1 Van Harvard naar MIPS. 2 3 Van Harvard naar MIPS Microprocessor without Interlocked Pipeline Stages Verschillen met de Harvard machine: - 32 Registers.
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren 1 Les 3 - onderwerpen Het.
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Wouter van Ooijen Mail: Sheets en.
Vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Onderwerpen voor vandaag Het ARM bord met wat library functies.
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren 1 Les 4 - onderwerpen Multiplexen.
PEMSY1http:// 1  Herhaling: combineren van assembler en C  Herhaling: subroutine  geen nieuwe opgave Voorbeeld tentamen:
PEMSY1http:// 1  Herhaling: - ACPS - set status, conditioneel uitvoeren - indexed addressing  Nieuw: - CMP, CMN - half-word.
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Wouter van Ooijen Mail:
Computertechniek 2 – ARM assembler Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1  herhaling ARM assembler instructies.
Mail: Jan Zuurbier  Mail:
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Wouter van Ooijen Mail:
1/1/ eindhoven university of technology / faculty of Computer Science 2IC20:Computersystemen Week 3: Instructietypen (1)
ECHT ONGELOOFLIJK. Lees alle getallen. langzaam en rij voor rij
Samenwerking tussen processor, registers en RAMgeheugen
17/08/2014 | pag. 1 Fractale en Wavelet Beeldcompressie Les 5.
17/08/2014 | pag. 1 Fractale en Wavelet Beeldcompressie Les 3.
Fractale en Wavelet Beeldcompressie
Fractale en Wavelet Beeldcompressie
Computertechniek 2 – ARM assembler Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1  herhaling ARM assembler instructies.
De financiële functie: Integrale bedrijfsanalyse©
Logistics: a driver for innovation Low costs High value Flexibility now and later Superior technology Timwood - T > No transport - I > No Inventory - M.
1 Zie ook identiteit.pdf willen denkenvoelen 5 Zie ook identiteit.pdf.
Inleiding computersystemen en netwerken deel 3 Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 3.1 Peter Kramer Mail:
PEMSY1http:// 1  Herhaling ARM assembler instructies  branch instructie  conditionele instructies en de flags  oefening.
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1  een MIDI track interpreteren, laten zien en afspelen.
2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 1 Les 3 - onderwerpen  DB036 printjes subroutines.
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1  herhaling ARM assembler instructies  assembler.
PEMSY1http:// 1  Herhaling: combineren van assembler en C  Herhaling: subroutine  Oefening: melodie Klas EV2B: week.
Computertechniek 2 – ARM assembler Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1  programma draaien vanuit ROM.
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren 1 Les 6 - onderwerpen Uitleg.
Onderwerp: PIC assembler programmeren
2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 1 Les 2 - onderwerpen  Helaas nog geen printjes.
HOGESCHOOL ROTTERDAM / CMI Computersystemen 2 (TIRCCMS02 - Operating systems)
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Wouter van Ooijen Mail: Sheets en.
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren 1 Les 2 - onderwerpen MPLAB.
VPEMSY1, D3ECPT2 : ARM Assembler 1 Hogeschool Utrecht / Electrical Engineering & Design 1  Herhaling: CMP, CMN,
PEMSY1http:// 1  Herhaling nieuwe instructies van vorige week  nieuw: combineren van assembler en C  oefeningen: assembler.
2TPRJ5 – PIC assembler Hogeschool Utrecht / Institute for Information & Communication Technology Wouter van Ooijen Mail: Sheets.
Computertechniek 2 – ARM assembler Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Wouter van Ooijen Mail:
Vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Onderwerpen voor vandaag Een embedded systeem: ARM bord.
2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 1 Les 3 - onderwerpen Instruction timing Shadow.
VPEMSY1, D3ECPT2 : ARM Assembler Hogeschool Utrecht / Electrical Engineering & Design 1  Herhaling B/BL, conditions,
Wat gaan we doen? Herhaling ARM assembler instructies
Wat gaan we doen? Herhaling: ACPS; indexed addressing; half-word/byte
Transcript van de presentatie:

VPEMSY1, D3ECPT2, DU1EMSY1 : ARM Assemblerhttp:// Hogeschool Utrecht / Electrical Engineering & Design 1 Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Wouter van Ooijen Mail: Sheets en info: Onderwerp: Programmeren van een Embedded Systeem Literatuur:ARM system on chip architecture S.B. Furber Addison Wesley Longman

VPEMSY1, D3ECPT2, DU1EMSY1 : ARM Assemblerhttp:// 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

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

VPEMSY1, D3ECPT2, DU1EMSY1 : ARM Assemblerhttp:// 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

VPEMSY1, D3ECPT2, DU1EMSY1 : ARM Assemblerhttp:// 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

VPEMSY1, D3ECPT2, DU1EMSY1 : ARM Assemblerhttp:// Hogeschool Utrecht / Electrical Engineering & Design 6  ergens in, deel van een geheel  vaste functie, dus niet vrij programmeerbaar

VPEMSY1, D3ECPT2, DU1EMSY1 : ARM Assemblerhttp:// Hogeschool Utrecht / Electrical Engineering & Design 7 niet:  snel  zo snel mogelijk  interactief, batch wel:  op tijd!

VPEMSY1, D3ECPT2, DU1EMSY1 : ARM Assemblerhttp:// Hogeschool Utrecht / Electrical Engineering & Design 8 responstijd nut

VPEMSY1, D3ECPT2, DU1EMSY1 : ARM Assemblerhttp:// 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,...

VPEMSY1, D3ECPT2, DU1EMSY1 : ARM Assemblerhttp:// Hogeschool Utrecht / Electrical Engineering & Design 10  IP  kale chip  chip in behuizing  module  PCB  box (bv PLC)

VPEMSY1, D3ECPT2, DU1EMSY1 : ARM Assemblerhttp:// 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

VPEMSY1, D3ECPT2, DU1EMSY1 : ARM Assemblerhttp:// 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

VPEMSY1, D3ECPT2, DU1EMSY1 : ARM Assemblerhttp:// 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...

VPEMSY1, D3ECPT2, DU1EMSY1 : ARM Assemblerhttp:// 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

VPEMSY1, D3ECPT2, DU1EMSY1 : ARM Assemblerhttp:// 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

VPEMSY1, D3ECPT2, DU1EMSY1 : ARM Assemblerhttp:// 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

VPEMSY1, D3ECPT2, DU1EMSY1 : ARM Assemblerhttp:// 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 ……. FFFF FFFB FFFF FFFC FFFF FFFD FFFF FFFE FFFF geheugen ARM processor chip

VPEMSY1, D3ECPT2, DU1EMSY1 : ARM Assemblerhttp:// 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

VPEMSY1, D3ECPT2, DU1EMSY1 : ARM Assemblerhttp:// 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

VPEMSY1, D3ECPT2, DU1EMSY1 : ARM Assemblerhttp:// 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 ……. FFFF FFFB FFFF FFFC FFFF FFFD FFFF FFFE FFFF geheugen

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

VPEMSY1, D3ECPT2, DU1EMSY1 : ARM Assemblerhttp:// 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 ……. FFFF FFFB FFFF FFFC FFFF FFFD FFFF FFFE FFFF geheugen

VPEMSY1, D3ECPT2, DU1EMSY1 : ARM Assemblerhttp:// Hogeschool Utrecht / Electrical Engineering & Design 23 Data Movement – load from memory LDR destination, [ source_pointer ] Examples: –LDRr1, [ r3 ]

VPEMSY1, D3ECPT2, DU1EMSY1 : ARM Assemblerhttp:// Hogeschool Utrecht / Electrical Engineering & Design 24 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

VPEMSY1, D3ECPT2, DU1EMSY1 : ARM Assemblerhttp:// Hogeschool Utrecht / Electrical Engineering & Design 25 Data Movement – save to memory STR destination, [ destination_pointer ] Examples: –STRr1, [ r3 ]

VPEMSY1, D3ECPT2, DU1EMSY1 : ARM Assemblerhttp:// 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 ……. FFFF FFFB FFFF FFFC FFFF FFFD FFFF FFFE FFFF geheugen

VPEMSY1, D3ECPT2, DU1EMSY1 : ARM Assemblerhttp:// 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

VPEMSY1, D3ECPT2, DU1EMSY1 : ARM Assemblerhttp:// 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

VPEMSY1, D3ECPT2, DU1EMSY1 : ARM Assemblerhttp:// 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

VPEMSY1, D3ECPT2, DU1EMSY1 : ARM Assemblerhttp:// 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 ……. FFFF FFFB FFFF FFFC FFFF FFFD FFFF FFFE FFFF geheugen +

VPEMSY1, D3ECPT2, DU1EMSY1 : ARM Assemblerhttp:// 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)

VPEMSY1, D3ECPT2, DU1EMSY1 : ARM Assemblerhttp:// Hogeschool Utrecht / Electrical Engineering & Design 32.global main LABEL1:.word 10 LABEL2:.word 11 X:.word 12 Y:.word 13 Z:.word begin main hier komt je einde main klaar: b klaar

VPEMSY1, D3ECPT2, DU1EMSY1 : ARM Assemblerhttp:// 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)

VPEMSY1, D3ECPT2, DU1EMSY1 : ARM Assemblerhttp:// 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

VPEMSY1, D3ECPT2, DU1EMSY1 : ARM Assemblerhttp:// 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

VPEMSY1, D3ECPT2, DU1EMSY1 : ARM Assemblerhttp:// Hogeschool Utrecht / Electrical Engineering & Design 36 Maak de registers en een stuk geheugen zichtbaar

VPEMSY1, D3ECPT2, DU1EMSY1 : ARM Assemblerhttp:// Hogeschool Utrecht / Electrical Engineering & Design 37

VPEMSY1, D3ECPT2, DU1EMSY1 : ARM Assemblerhttp:// 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

VPEMSY1, D3ECPT2, DU1EMSY1 : ARM Assemblerhttp:// Hogeschool Utrecht / Electrical Engineering & Design 39 Doen – thuis lezen lees 3.1 t/m blz t/m blz 58 halverwege

VPEMSY1, D3ECPT2, DU1EMSY1 : ARM Assemblerhttp:// 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.