Code Composer Studio 4.x Hands-on Session Sebastian Meisner, sebastian.meisner@upb.de Fachgebiet Technische Informatik 1
Inhalt der Hands-on Sesion Präsentation Code Composer Studio (CCS) Aufgaben 2
Einleitung Code Composer Studio IDE IDE = Integrierte Entwicklungsumgebung Quelltexteingabe Kompilierung Debuggen In diesem Fall auch: Download des Programms vom Hast auf den µc Basiert auf Eclipse Eine Umgebung für alle Prozessoren/ Mikrocontroller von Texas Instruments ARM Cortex M, R, A MSP430 TMS320CXXX DSP's 3
Einführung StellarisWare Peripherie-Bibliothek zur Verwendung mit Stellaris µc's Konfiguration und Kommunikation mit allen Peripherien einheitliche Schnittstellen für alle Cortex-M3 Derivate geeignet Beispielapplikationen werden mitgeliefert Beispiele zur Anwendung der Bibliothek Startpunkt für Eigenentwicklungen Demonstration der Leistungsfähigkeit der HW 4
Code Composer starten Icon liegt auf dem Desktop Workspace im Benutzerverzeichnis anlegen Auf den Poolraumrechnern der technischen Informatik Laufwerk U:\ Falls die Frage nach einer gültigen Lizenz auftaucht... Lizenzserver als Option wählen Adresse: license3.uni-paderborn.de Port: 27000 Willkommen Bildschirm schließen Code Composer Studio starten 5
Projekt importieren Verzeichnis C:\StellarisWare ins eigene Benutzerverzeichnis nach U:\ kopieren File Import... Importfilter Ordner CCS Punkt Existing CCS/CCE Eclipse Projects Select Search Directory U:\StellarisWare\boards\ekevalbot Auf Finish klicken 6
Kontextmenü von qsautonomous öffnen Set as active project wählen Projektbaum aufklappen Datei qs-autonomous.c öffnen per Doppelklick Enthält die main() Funktion Das Projekt qs-autonomous lässt den Bot selbständig fahren und bei Kollision eine andere Richtung wählen Die Taster Switch1 und Switch2 starten und stoppen den Bot Aktives Projekt auswählen 7
Kompilieren und Download: Theorie... Bei eingebetteten Systemen ist ein Kommunikationskanal zum Zielsystem für Programmier- und Debugzwecke erforderlich Hier: Über das USB Kabel werden 2 Schnittstellen realisiert: ICDI (In-Circuit Debug Interface), welches intern JTAG benutzt Programmdownload Debugging Serielle Schnittstelle Für den Programmierer zur freien Verwendung UART0 UART0 PC USB- Bridge Driver USB USB-Cable ICDI USB- Bridge µc DEBUG DEBUG: - JTAG - SWD Evalbot 8
und Praxis Prüfe: USB Kabel zwischen PC und Evalbot ist gesteckt Korrekte Schnittstelle ambot ist mit ICDI bezeichnet Evalbot ist an (Taster ON/RESET betätigen) Debug/Launch Knopf anklicken (siehe rechts) Kompilier- und Download- Vorgang dauert einen Moment 9
Die Debug-Ansicht 10
Freier Programmlauf (Bis Breakpoint) Schaltflächen für den Programmablauf Einzelschritt in Funktionen hinein Assemblerschritt in Funktionen hinein Springt zum Ende der Funktion Pause Debuggen beenden Einzelschritt Funktionen überspringen Assemblerschritt Funktionen überspringen Neustart des Systems ( Reset System,vorher Breakpoint setzen!) Nur während Pause verfügbar 11
Breakpoints Ein Breakpoint hält den Programmlauf an der definierten Stelle an Inspektion des Programmzustandes möglich Weiter mit Einzelschritten oder freiem Lauf Bis zu fünf parallel aktive Breakpoints möglich Doppelklick Doppelklick 12
Menü: View Local Zeigt alle lokalen (stack) Variablen der aktuellen Funktion an. Wert, Adresse, Typ Werte können geändert werden! Nützlich um schwer zu testende Programmpfade zu aktivieren Nützliche Informationsfenster: Local 13
Nützliche Informationsfenster: Registers Menü: View Registers Zeigt übersichtlich alle Hardwareregister des µc Nützlich zur Überprüfung der Einstellungen der Peripherie Alle Register und Bitfelder sind mit Mnemonics bezeichnet. Genaue Erklärungen im Datenblatt nachlesen! Durch Klick auf einen Registerwert lässt sich dieser auch ändern! 14
Nützliche Informationsfenster: Memory Menü: View Memory Oben links: gewünschte Adresse einstellen Mitte rechts: Darstellung der Daten einstellen: 8, 16, 32 Bit Signed, Unsigned Bit, Char, Float, Integer, Hex Unten: Datendarstellung gemäß Einstellungen Variablennamen werden ebenfalls angezeigt Durch Klick auf einen Speicherwert lässt sich dieser ändern! 15
Cortex M3 Memory Map Adressbereich 0x0000 0000 0x0003 FFFF Beschreibung 256 KByte Programmspeicher 0x1000 0000 0x1FFF FFFF ROM 0x2000 0000 0x2001 7FFF 96 KByte SRAM 0x4000 0000 0x4400 0000 Peripherieregister Genauere Informationen bietet das Stellaris LM3S9B92 Microcontroller Data Sheet im Kapitel 2.4 Memory Model ab Seite 97. http://www.ti.com/lit/ds/symlink/lm3s9b92.pdf 16
Nützliche Informationsfenster: Breakpoints Menü View Breakpoints Zeigt eine Übersicht aller Breakpoints an Breakpoints für Speicherzugriffe lassen sich einrichten Symbol 3 blaue Kreise Hardware Watchpoint Praktisch zur Analyse von Pufferüberläufen oder ungewollten Änderungen an Variablen 17
Und jetzt ran an die Aufgaben! 5 Aufgaben http://www.cs.uni-paderborn.de/fachgebiete/computer-engineeringgroup/teaching/ws1112/ing-inf-prak.html Bei Fragen einfach melden! 18