De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

Computertechniek 2 – ARM assembler Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Wouter van Ooijen Mail:

Verwante presentaties


Presentatie over: "Computertechniek 2 – ARM assembler Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Wouter van Ooijen Mail:"— Transcript van de presentatie:

1 Computertechniek 2 – ARM assembler 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/D3ECPT2 Onderwerp: Programmeren van een Embedded Systeem Literatuur:ARM system on chip architecture S.B. Furber Addison Wesley Longman 0-201-67519-6

2 Computertechniek 2 – ARM assembler Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 2  instructie aan de hand van sheets  boek als ondersteuning  opgaves, in de les of thuis maken  ARM bordje aanschaffen, wordt in volgend vak weer gebruikt  tentamen

3 Computertechniek 2 – ARM assembler Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 3  inleiding embedded/real-time/microcontrollers  eerste uitleg ARM assembly language  oefeningen ARM assembler met de simulator

4 Computertechniek 2 – ARM assembler Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 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 Computertechniek 2 – ARM assembler Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 5 meestal:  ‘computer-achtig’ ding  geschikt voor real-time  geschikt voor embedded gebruik  combinatie van processor, ROM, RAM, I/O,...  compact  goedkoop  zuinig

6 Computertechniek 2 – ARM assembler Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 6  ergens in, deel van een geheel  vaste functie, dus niet vrij programmeerbaar

7 Computertechniek 2 – ARM assembler Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 7 niet:  snel  zo snel mogelijk  interactief, batch wel:  op tijd!

8 Computertechniek 2 – ARM assembler Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 8 responstijd nut

9 Computertechniek 2 – ARM assembler Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 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 Computertechniek 2 – ARM assembler Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 10  IP  kale chip  chip in behuizing  module  PCB  box (bv PLC)

11 Computertechniek 2 – ARM assembler Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 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  luxer: ICE  primitiever: burn and crash

12 Computertechniek 2 – ARM assembler Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 12 C (of een andere HLL): grof  makkelijk en snel  reduceert de ontwikkelkosten Assembler: nauwkeurig  moeilijker, specifiek, meer werk  reduceert de hardware kosten

13 Computertechniek 2 – ARM assembler Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 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 Computertechniek 2 – ARM assembler Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 14 CISC  doe zo veel mogelijk per instructie  codeer instructies compact RISC  voer zoveel mogelijk instructies uit  codeer instructies simpel

15 Computertechniek 2 – ARM assembler Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 15 @ delay @ this is not ARM code! movlw0x00 delay_loop: addlw0x01 skpz goto delay_loop een assembler fragment

16 Computertechniek 2 – ARM assembler Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 16  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

17 Computertechniek 2 – ARM assembler Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 17 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

18 Computertechniek 2 – ARM assembler Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 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 Computertechniek 2 – ARM assembler Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 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

20 Computertechniek 2 – ARM assembler Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 20 Data Movement – load from a register MOV destination, source Examples: –MOVr0, r1 –MOVr1, r2 –MOVr2, r3

21 Computertechniek 2 – ARM assembler Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 21 Data Movement – load from memory LDR destination, [ source_pointer ] Examples: –LDRr1, [ r3 ]

22 Computertechniek 2 – ARM assembler Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 22 Data Movement – save to memory STR destination, [ destination_pointer ] Examples: –STRr1, [ r3 ]

23 Computertechniek 2 – ARM assembler Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 23 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

24 Computertechniek 2 – ARM assembler Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 24 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

25 Computertechniek 2 – ARM assembler Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 25 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

26 Computertechniek 2 – ARM assembler Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 26 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)

27 Computertechniek 2 – ARM assembler Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 27. global main getal_1 :.word 11 getal_2 :.word 22 getal_3 :.word 33 som :.word 99999 main: @ hier komt uw code: done: b done

28 Computertechniek 2 – ARM assembler Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 28 na downloaden zet onder file > target settings:  Target = Simulator (als je netjes afsluit blijft zou dit moeten blijven staan)

29 Computertechniek 2 – ARM assembler Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 29 (evt. kan je breakpoints zetten of verwijderen)  run als het goed is kom je nu op een breakpoint aan het begin van main

30 Computertechniek 2 – ARM assembler Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 30 Loop nu instructie voor instructie door je programma heen (step) Let op wat er veranderd in de regsiters en (uiteindelijk) in het geheugen

31 Computertechniek 2 – ARM assembler Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 31 Maak de registers en een stuk gehuegen zichtbaar

32 Computertechniek 2 – ARM assembler Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 32

33 Computertechniek 2 – ARM assembler Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 33 -Doe twee stappen, -kijk in R1 waar in het geheugen getal_1 terecht is gekomen -Laat je geheugen venster daarheen wijzen

34 Computertechniek 2 – ARM assembler Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 34 Doen – thuis lezen lees 3.1 t/m blz 52 3.2 t/m blz 58 halverwege

35 Computertechniek 2 – ARM assembler Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 35 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 LABEL1 en LABEL2 verwisselt. 3.Schrijf en test een programma dat de waarden in de geheugenlocaties X en Y optelt, en het resultaat in geheugenlocatie Z zet.


Download ppt "Computertechniek 2 – ARM assembler Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Wouter van Ooijen Mail:"

Verwante presentaties


Ads door Google