Download de presentatie
De presentatie wordt gedownload. Even geduld aub
GepubliceerdLander Janssens Laatst gewijzigd meer dan 9 jaar geleden
1
vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Onderwerpen voor vandaag Een embedded systeem: ARM bord knipperen
2
vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 2
3
vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 3 sluit een bordje aan (parallel + USB) installeer de files uit les7.rar in een lege directory let op: geen spaties in de pathname dubbel-klik op de.ppr file
4
vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 4 flip.c #include "ark.h" void ARK_LEDs_write( int LEDs ); void ARK_wait_us( int N ); int main(){ while(1){ ARK_LEDs_write( 0x55 ); ARK_wait_us( 500 * 1000 ); ARK_LEDs_write( 0xAA ); ARK_wait_us( 500 * 1000 ); } return 0; }
5
vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 5 PsPad editor met GNU tools voor ARM asm/C/C++ ontwikkeling
6
vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 6 build start debugger
7
vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 7 zet onder file > target settings: Target = Remote/TCP Hostname = 127.0.0.1 Port = 8888 (als je netjes afsluit blijft zou dit moeten blijven staan)
8
vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 8 run > download
9
vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 9
10
vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 10 continue
11
vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 11 als het goed is kom je nu op het breakpoint aan het begin van main
12
vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 12 continue Zoals het een embedded programma betaamt eindigt ons programma nooit. stop
13
vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 13 Na een ‘stop’ zit je meestal ergens in assembler
14
vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 14
15
vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 15 kitt.c #include "ark.h" void show( int n ){ ARK_LEDs_write( 1 << n ); ARK_wait_us( 50 * 1000 ); } int main(){ int i; for(;;){ for( i = 0; i < 8; i++ ){ show( i ); } for( i = 6; i > 0; i-- ){ show( i ); } } return 0; }
16
vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 16 Je kan breakpoints toevoegen of verwijderen (ook in andere source files)
17
vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 17 Je kan variabelen (en andere lijsten) bekijken
18
vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 18 Je kan regel voor regel het programma uitvoeren
19
vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 19 Als je dit krijgt heb je debugger/loader niet afgesloten
20
vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 20 Voor als het even echt niet meer werkt: als je de debugger hebt afgesloten moeten al die DOS schermen ook weg zijn (evt met de hand sluiten) De editor sluiten en weer opstarten de USB en Paralelle kabels er even uithalen om het bordje te resetten, USB eerst weer aansluiten, dan parallel. PC uitzetten en weer aanzetten
21
vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 21 Opdracht : ”knipperen” – 1/2 Schrijf een functie void LED( int n, int x ); Die de LED op positie n uit (als x == 0 ) of aan (als x != 0 ) zet. Die functie gebruikt een globale variabele All_LEDs waarin de toestand van alle LEDs wordt bijgehouden. Die variable wordt bijgewerkt, daarna kan ARK_LEDs_write worden aangeroepen.
22
vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 22 Opdracht : ”knipperen” – 2/2 Gebruik twee FSM’s om een LED op 1/2 Hz en een andere LED op 1/3 Hz te laten knipperen. Je main functie roept de beide FSMs aan, die roepen weer de LED functie aan. Het event dat de main aan de FSMs doorgeeft moet zijn “er is weer 100 ms voorbij”. De FSMs hebben alleen een teller nodig, dus niet echt een state. De initialisatie mag in de main gebeuren.
Verwante presentaties
© 2024 SlidePlayer.nl Inc.
All rights reserved.