600 likes | 775 Views
hardware en ontwikkelomgeving voor 2TPRJ8. Wouter van Ooijen Mail: wouter@voti.nl Sheets en info: www.voti.nl/hvu/2TPRJ8 www.voti.nl/hvu/arm. onderwerpen. het ARM bordje de fiets Virtual Machine - opstarten DevEnv – opstarten, editen, compileren debuggen met Insight
E N D
hardware en ontwikkelomgeving voor 2TPRJ8 Wouter van Ooijen Mail: wouter@voti.nl Sheets en info: www.voti.nl/hvu/2TPRJ8 www.voti.nl/hvu/arm Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
onderwerpen • het ARM bordje • de fiets • Virtual Machine - opstarten • DevEnv – opstarten, editen, compileren • debuggen met Insight • downloaden met OCD Commander • het BSP • opdrachten Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
het ARM bordje • Philips ARM2106 microcontroller (64k RAM, 128k FLASH) • voeding uit USB (maar geen USB communicatie) • LCD 2x16 char (HD44780-compatible) • klein luidsprekertje • 16 schakelaars, uitlezen via 2 x HC165 schuifregisters • 8 LEDjes, aansturen via 1 x HC595 schuifregister • parallel JTAG programming interface (McGraigor Wiggler compatibel) • RS232 serial interface • connector voor uitbreidingen http://www.voti/nl/hvu/arm Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
LPC2106 (ARM chip) Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
Uitlezen v.d. toetsjes Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
Aansturen v.d. LEDjes Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
JTAG interface RS232 interface Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
de fiets • snelheidsregeling voor een LEGO motortje • aansluiting van een hall (= magneet) sensor Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
de fiets Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
Virtual Machine • Log in (met je email en password) • ‘Start’ de Virtual Machine met het Artisan image • In de Virtual machine settings moet de paralelle poort meegenomen worden • Nu kan je de Virtual Machine echt starten • Als je een USB stick wil gebruiken dan moet je die nu pas inpluggen Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
Virtual Machine Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
Virtual Machine Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
Virtual Machine Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
Virtual Machine Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
Virtual Machine Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
DevEnv • PSPAD editor • GNU assmbler/C/C++ compiler • Insight debugger • MAC_MOT TCP-to-parallel JTAG interface Los: • OCD Commander (Philips Flash utility) • C++ BSP/RTOS Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
DevEnv • installeer de files uit de BSP (BikeComputer.zip?) • in een lege directory • let op: geen spaties in de pathname • dubbel-klik op de .ppr file Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
DevEnv PsPad editor met GNU tools voor ARM asm/C/C++ ontwikkeling Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
DevEnv build foutmeldingen Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
DevEnv Als je dit krijgt bij het linken heb je debugger/loader niet afgesloten Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
Jullie werken uitsluitend in RAM. De microcontroller heeft 64Kb RAM, maar daar moet alles in: code, globale data, stack. Wees dus “een beetje” zunig. Downloaden met de de JTAG debugger gaat niet erg snel. Zuinig zijn met code werkt dus sneller! Een klasse op zich kost geen code, maar (klasse) variabelen en (klasse) functies wel! Downloaden met de OCD Commander gaat veel sneller, maar je kan dan nauelijks debuggen. Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
sluit het bordje aan (USB + parallel) Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
Dit is de setting voor JTAG Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
Insight debugger • start debugger Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
Insight debugger 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) Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
Insight debugger run > download Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
Insight debugger Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
Insight debugger continue Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
Insight debugger als het goed is kom je nu op het breakpoint aan het begin van main Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
Insight debugger Je kan breakpoints toevoegen of verwijderen (ook in andere source files) Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
Insight debugger Je kan variabelen (en andere lijsten) bekijken Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
Insight debugger Je kan regel voor regel het programma uitvoeren Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
Insight debugger continue Zoals het een embedded programma betaamt eindigt ons programma nooit. stop Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
Insight debugger Na een ‘stop’ zit je meestal ergens in assembler Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
loader : OCD commander start de OCD Commander Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
loader : OCD commander check Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
loader : OCD commander Load file Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
loader : OCD commander Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
loader : OCD commander Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
loader : OCD commander run Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
loader : OCD commander Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
loader : OCD commander Overnieuw: Halt Load file Go Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
MAC_MOT Als je dit krijgt moet je dat ding installeren / starten. Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
MAC_MOT Als je dit thuis krijgt kan je onder control panel > system > hardware > device manager (select view > show hidden devices) > non plug-and-pray devices > MAC_MOT > driver instellen op status = started, type = automatic Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
MAC_MOT Als de thuis die MAC_MOT driver niet kan vinden: installeer de Macraigor OCD commander (de link staat op www.voti.nl/hvu/arm) Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
troubles... Als het echt niet werkt: de USB aansluiting er even uithalen om het bordje te resetten, evt ook je PC resetten. Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
class C_BSP { public: // get the one and only BSP: static C_BSP * getInstance( void ); C_Busy * busy; C_Interrupts * interrupts; C_Timer0 * timer0; C_Timer1 * timer1; C_Pins * pins; C_Beeper * beeper; C_LEDs * leds; C_Keyboard * keyboard; C_LCD * lcd; private: . . . Chip On-board peripherals Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
class C_Busy { public: // wait n microseconds void waitUs( int n ); // wait n milliseconds void waitMs( int n ); private: . . . Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology