Tutorium Arbeiten mit dem M_Dongle Labor Mikrocontroller mit NUC130 Prof. Dr.-Ing. F. Kesel Dipl.-Ing. (FH) J. Hampel Dipl.-Ing. (FH) A. Reber 13.4.2015 Version5.5 Inhalt 1 Der M_Dongle .................................................................................................................. 2 2 Funktionen des M_Dongles .............................................................................................. 2 3 2.1 Standard-Schnittstellen ............................................................................................. 3 2.2 LC-Anzeige ............................................................................................................... 3 2.3 Analog-Eingang ........................................................................................................ 3 2.4 Weitere Funktionen ................................................................................................... 3 Die Laborumgebung ......................................................................................................... 4 3.1 Installation der Entwicklungssoftware zu Hause ........................................................ 4 3.2 Die Entwicklungssoftware Keil uVision4 .................................................................... 5 3.3 Die Ordnerstruktur .................................................................................................... 5 3.4 Keil µVision mit Blinky testen .................................................................................... 6 4 Neues Projekt anlegen ..................................................................................................... 7 5 Projekt erstellen .............................................................................................................. 11 6 5.1 Einstellungen der Entwicklungsumgebung anpassen .............................................. 11 5.2 Einstellungen für das Zielssystem ........................................................................... 12 5.3 Projektdatei übersetzen .......................................................................................... 13 5.4 Projekt zusammenfügen ......................................................................................... 14 5.5 Einstellungen fürs Zielsystem (Target) vornehmen ................................................. 15 5.6 Programm auf das Zielsystem übertragen und starten ............................................ 16 5.7 Übung: Mein_Blinky ................................................................................................ 16 5.8 Projekt säubern ....................................................................................................... 17 5.9 Projekt kopieren ...................................................................................................... 17 Hinweise zum Simulator und Debugger .......................................................................... 18 6.1 Übung: Syntax und Logik- Fehler finden ................................................................. 21 7 Abnahme ........................................................................................................................ 21 8 Anhang ........................................................................................................................... 22 9 8.1 Einrückungsstil (indent style) Allman / BSD / „East Coast“ ...................................... 22 8.2 Datentypen ............................................................................................................. 22 Literatur .......................................................................................................................... 24 __________________________________________________________________________________________ Mikrocontroller Labor: Tutorium -1- 1 Der M_Dongle Abbildung1 : Lehr- und Laborplattform auf Basis des NUC130 von Nuvoton mit Cortex-M0. Prozessoren werden nicht nur in PCs, Laptops und Netbooks eingesetzt sondern auch in sehr vielen Geräten und Systemen, deren vordergründige Aufgabe nicht die Verarbeitung von Daten sondern die eigentliche Funktion des Gerätes ist. Prozessoren für diese Art der Anwendung werden Mikrocontroller(uC) genannt. Das zur Funktion nötige System (die Leiterplatte mit den erforderlichen Bauteilen) wird als eigenständiges System betrachtet, dass in ein Gerät integriert (eingebettet) wird. Um die Funktionsweise und die Handhabung eines Mikrocontrollers zu erlernen werden Testumgebungen (Evaluationboards) verwendet. Beim M_Dongle handelt es sich um eine solche Testumgebung. Die Hardware basiert auf Projektarbeiten von Michael Rothbarth und Benjamin Walz und ist eine komplette Eigenentwicklung, die an die Anforderungen der Mikrocontroller-Labore angepasst wurde. Die Hardware stellt die am meisten genutzten Grundelemente wie, z.B. LC-Anzeige, Taster, LEDs und Analogwert-Eingabe zur Verfügung. Wie es sich für einen modernen Mikrocontroller „gehört“, ist außerdem eine Vielzahl von Standard-Schnittstellen vorhanden. Der verwendete µC NUC130VE3CN verfügt über einen Cortex-M0-Controllerkern (NUC130) mit 128 KB Flash und 16 KB SRAM. Im Folgenden werden die Funktionen und die Programmierung des M_Dongle erklärt. 2 Funktionen des M_Dongles Das M_Dongle ist ein Mikrocontroller-System mit einem NUC130VE3CN Controller mit Cortex-M0 CPU und einer großen Anzahl von Schnittstellenbausteinen. Neben dem Reset-Taster sind zwei Einzeltaster und ein 5-fach Taster (Joystick) vorhanden. Als Ausgabeeinheit dient eine LED-Leiste. Zur Analogwertsimulation ist ein Potentiometer verbaut und mittels Piezo-Lautsprecher können Töne erzeugt werden. Das enthaltene LCD ist grafikfähig und hat eine Größe von 128 x 64 Pixel. Der Hauptvorteil des M_Dongles ist jedoch die Schnittstellenvielfalt des NUC130. Über Stecker sind die Schnittstellen CAN, UART, USB, I2C, I2S und SPI verfügbar. Weiterhin kann auch ein PWM-Port mit vier Ausgängen genutzt werden. Die Software kann per Download-Adapter über CON2 (NULink notwendig) oder mittels Bootloader und den USB-Anschluss auf das Board geladen werden. Zur Energieversorgung kann der USB-Port, der Debug-Port oder ein externes 5V-Netzteil verwendet werden. __________________________________________________________________________________________ Mikrocontroller Labor: Tutorium -2- 2.1 Standard-Schnittstellen Bezeichner Art Beschreibung CON 3 USB USB 2.0 mit maximal 12 MBaud CON 4 CAN CAN 2.0B mit maximal 1 MBaud CON 5 UART UART mit Rxd und Txd bis 300 KBit BU 1 UART UART mit Rxd, Txd, RTS und CTS, kein Schnittstellentreiber BU 2 I2C 2-fach I2C mit Interrupt-Möglichkeit BU 4 SPI SPI mit zwei Slave-Select Signalen BU 8 SPI SPI mit zwei Slave-Select Signalen 2.2 LC-Anzeige Das LC-Display hat außer den Zeilen-/Spaltentreibern und einem Bildspeicher keine Intelligenz. Somit muss sich der Anwender um die Erzeugung der Buchstaben kümmern. Dies hat jedoch den Vorteil, dass die Anzeige komplett selber gestaltet werden kann. Die Beleuchtung ist im RGB-Format vorhanden, so dass unterschiedliche Farben erzeugt werden können. Mittels PWM kann die Helligkeit geregelt werden. 2.3 Analog-Eingang Der Analog-Port ADC[2] des NUC130VE3CN wurde mit dem Potentiometer PT1 verbunden. 2.4 Weitere Funktionen Das M_Dongle verfügt zu Lernzwecken über eine Reihe von weiteren Funktionen. Ausführliche Informationen sind im Dokument _Documents\M_Dongle Technical Reference Manual.pdf zu finden. 8-fach LED-Zeile Joystick mit fünf Tastern 2 Taster an Portpins 1 x I2S 6 x PWM 2 x Komparator __________________________________________________________________________________________ Mikrocontroller Labor: Tutorium -3- 3 Die Laborumgebung Am Laborarbeitsplatz erwartet Sie ein PC unter Windows und ein M_Dongle, dass per USB mit dem PC verbunden ist. PC USB-Kabel M_Dongle Abbildung 1: Aufbau des Laborarbeitsplatzes (schematisch) Zur erfolgreichen Durchführung der Versuche müssen Sie mit der Laborumgebung vertraut sein. Außerdem ist es möglich, das Programm mit der Simulatoroption von KEIL vorab zu testen. Dafür ist das Entwicklungsboard nicht erforderlich. 3.1 Installation der Entwicklungssoftware zu Hause Damit Sie sich auf die Arbeiten im Labor gründlich vorbereiten, sollten Sie Teile von Programmen bereits zu Hause entwickeln und testen. Sie können zur Vorbereitung nach Absprache mit den Laboringenieuren aber auch das Mikrocontroller-Labor an der Hochschule außerhalb der belegten Termine nutzen. Die Software µVision4 für ARM kann bei Keil direkt herunter geladen werden. https://www.keil.com/ __________________________________________________________________________________________ Mikrocontroller Labor: Tutorium -4- 3.2 Die Entwicklungssoftware Keil uVision4 Das Programm kann direkt gestartet werden oder es wird im entsprechenden Ordner ein Doppelklick auf das Projektfile ausgeführt XXName.uvproj . 3.3 Die Ordnerstruktur Abbildung 3: Ordnerstruktur In einem Ordner M_Dongle befinden sich alle benötigten Ordner und Dateien. Dieser Ordner steht als Download zur Verfügung und sollte im eigenen Anmeldeverzeichnis gespeichert werden (z.B. Login/MR_Labor/). Da die Datensicherheit für den Laborrechner nicht garantiert werden kann, sollte das Verzeichnis auf einen anderen Datenträger oder den Studenten-Server gesichert werden. Die Inhalte der Ordner, die mit einem_ (Underscore) beginnen sind Systemordner, sie enthalten Dokumente und vorgegebene Dateien die unbedingt zum Betrieb nötig sind. Sie dürfen nur von den Entwicklern des M_Dongle geändert werden. _Anleitung Hier finden Sie unter anderem dieses Dokument. _Copy Der Ordner _Copy enthält Dateien die nach dem Anlegen in den neuen Projektordner kopiert werden müssen. Die Dateien init.c,init.h und startup_NUC1xx.s können direkt kopiert werden. Nach dem Kopieren dürfen sie auch verändert werden. Die Datei Projectxy.c sollte beim Kopieren auf den aktuellen Projektnamen umbenannt werden. Sie enthält die main() Funktion. Wenn nötig kann auch eine entsprechende Headerdatei im Projektordner ergänzt werden. _Documents Alle wichtigen Dokumente sind selbstverständlich auch online verfügbar, hier allerdings befinden sie sich in einem Ordner. Wie sicherlich bekannt ist werden alle Dokumente zum Cortex M0 von ARM veröffentlicht, die Dokumente zu dem verwendeten uC finden sich auf der Homepage des Hersteller nuvoton und die Unterlagen zum M_Dongle auf der Laborseite. _Driver _Module Es wird zwischen Treibern und Modulen unterschieden. Treiber stellen die Funktionalität der benötigten Peripherieeinheiten zur Verfügung wie z.B. Treiber für die SPI-Schnittstelle über die die LC-Anzeige angeschlossen ist. Darüber hinausgehende Funktionen zur Nutzung der LC-Anzeige befinden sich im entsprechenden Modul. Blinky Blinky ist das Hello World der embedded Softwareentwickler. Da nicht immer ein Display zur Ausgabe bereit steht, aber in der Regel immer eine LED auf den Boards verbautist, ist die blinkende LED immer als Beispiel verfügbar. Im Laufe der Zeit wird sich der Ordner M_Dongle mit weiteren Projektordnern füllen. __________________________________________________________________________________________ Mikrocontroller Labor: Tutorium -5- 3.4 Keil µVision mit Blinky testen Im Ordner Blinky befindet sich die Datei Blinky.uvproj nach einem Doppelklick öffnet sich die Entwicklungsumgebung. Abbildung 4: Die Entwicklungsumgebung 1. Schritt Translate (Strg+F7) Die aktuelle Datei wird übersetzt (compiliert) und auf Fehler überprüft. Die aktuelle µVision Version verfügt aber auch über Dynamic Syntax Checking d.h. die Fehler werden bereits beim Eingeben markiert. Die Markierung verschwindet sobald die Zeile fertig geschrieben oder die Fehler korrigiert wurden. 2. Schritt Build (F7) Die zum Projekt gehörenden Dateien werden zu einem auf dem uC ausführbaren Programm zusammengefasst. 3. Schritt Download Das ausführbare Programm wird auf das M_Dongle übertragen und gestartet. __________________________________________________________________________________________ Mikrocontroller Labor: Tutorium -6- 4 Neues Projekt anlegen Im Gegensatz zu anderen Entwicklungsumgebungen legt µVision für ein Projekt nicht automatisch einen neuen Ordner an. Dies muss im Vorfeld „von Hand“ erledigt werden. Hier wurde z.B. der Name Mein_Blinky gewählt. Abbildung 5: Projektordner neu anlegen Zum Anlegen eines neuen Projektes findet man unter „Project“ den Eintrag „New uVisionProject ...“, der dann folgende Fenster zur Auswahl des Projektordners öffnet. Abbildung 6: Projekt neu anlegen Hier ist es nun wichtig, erst den Projektordner zu wählen, bevor der Projektname eingetragen wird. Hält man sich nicht daran, so wird keine korrekte Projektumgebung erzeugt. Nach Speichern erscheint folgendes Fenster in dem der Hersteller ausgewählt wird: Abbildung 7: Hersteller Nuvoton auswählen __________________________________________________________________________________________ Mikrocontroller Labor: Tutorium -7- Nun muss der gewünschte Prozessor NUC130VE3CN ausgewählt werden. Abbildung 8: Prozessor auswählen Start Up Code wird nicht eingefügt sondern aus dem _Copy Verzeichnis kopiert. Abbildung 9: Start Up Code einfügen Nein __________________________________________________________________________________________ Mikrocontroller Labor: Tutorium -8- Die IDE erscheint nun mit einem leeren Projektfenster. Abbildung 9: IDE anpassen Das Projekt wird nun zur besseren Verwaltung angepasst. 1. Target in NUC130VE3CN umbenennen (Taget1 mit Maus anklicken und F2 drücken) 2. Source Group1 in Aufgabe umbenennen (könnte aber auch ein anderer Name wie Projekt sein) 3. Gruppen Driver und Module ergänzen (Klick mit rechter Maustaste auf NUC130VE3CN) Die vorgenommen Ergänzungen haben keinen Einfluss auf die Daten auf der Festplatte sondern dienen nur der Übersicht im Projekt. Nun werden alle Dateien aus dem _Copy Ordner in den neuen Projektordner kopiert. Die Datei Projektxy.c wird sinnvoll umbenannt. Es kann auch der Name des Ordners verwendet werden z.B Mein_Blinky.c oder ein anderer aussagekräftiger Name. Abbildung 10: Dateien kopieren und umbenennen __________________________________________________________________________________________ Mikrocontroller Labor: Tutorium -9- Diese Dateien und benötigte Treiber und Module müssen nun dem Projekt hinzugefügt werden. Nach einem Klick mit der rechten Maustaste öffnet sich das folgende Fenster: Abbildung 11: Dateien ins Projekt einbinden Die Dateien müssen aus den entsprechenden Ordnern ausgewählt werden. Auch hier handelt es sich nur um logische Zuordnungen im Projekt. Wenn alles korrekt eingefügt wurde, sieht das Projektfenster wie folgt aus: Abbildung 12: Das fertige Projekt Mein_Blinky.c: Projektdatei mit main Funktion und Endlosschleife init.c Für jedes Eval-Board sind Grundeinstellungen vorzunehmen, diese werden in der Funktion Board_Init() zusammengefasst. startup_NUC1xx.s: Normaler Startup-Code für den µC. Driver_M_Dongle.c: Dies ist eine der angepassten Bibliotheken mit Funktionen für das M_DONGLE. __________________________________________________________________________________________ Mikrocontroller Labor: Tutorium - 10 - 5 5.1 Projekt erstellen Einstellungen der Entwicklungsumgebung anpassen Die IDE bietet Arbeitshilfen an, hierzu gehört Code Completion und Dynamic Syntax Checking. Sollte dies nicht automatisch erfolgen, so muss unter Edit\Configuration… im Reiter Text Completition folgend Einstellung vorgenommen werden: Abbildung 13: Einstellungen Text Completion Diese Einstellungen beziehen sich auf den Entwicklungsrechner und müssen beim Wechsel des Rechners erneut vorgenommen werden. __________________________________________________________________________________________ Mikrocontroller Labor: Tutorium - 11 - 5.2 Einstellungen für das Zielssystem Nun müssen bei den Target-Options noch einige Projekteinstellungen vorgenommen werden: Abbildung 14: Target Options einstellen Im Reiter C/C++ und Asm müssen Auto includes ausgeschlossen werden: Abbildung 15: Auto includes abschalten Da es verschiedene Versionen des M_Dongle gibt muss die Definition des verwendeten M_Donle global in den C/C++ Einstellungen erfolgen. Define: M_DONGLE_V1 Abbildung 15: Auto includes abschalten und Define festlegen __________________________________________________________________________________________ Mikrocontroller Labor: Tutorium - 12 - 5.3 Projektdatei übersetzen Die ausgewählte Datei hier Mein_Blinky.c kann nun übersetzt werden (Translate). Abbildung 17: Projektdatei übersetzen Das Output Fenster zeigt nun folgendes an: compiling Mein_Blinky.c... "Mein_Blinky.c" - 0 Error(s), 0 Warning(s). Wichtig: Fehler sind zu beheben und Warnungen müssen beachtet werden. Es fällt auf, das keine Header-Files zum Projekt hinzugefügt wurden. Dies ist Absicht, da nur so erkannt werden kann, welche Files von den C-Dateien benutzt werden. Wurde eine Projektdatei einmal übersetzt, können die Header-Files unter den einzelnen C-Files angezeigt werden: NUC1xx.h In diesem HEADER sind die Hardwareabhängigkeiten, also die Registeradressen des Mikrocontrollers angegeben. Nuvoton hat bei allen NUC1xx Derivaten die gleichen Adressen für die Register verwendet. Da das leider nicht immer so ist, muss hier darauf geachtet werden, dass die richtige Datei, passend zum gewünschten Controller, eingebunden wird. BoardConfig.h Wichtige Defines für das M_Dongle. stdint.h Neue integer Datentypen z.B. int8_t anstelle von char. core_cm0.h CMSIS Cortex-M0 Core Peripheral Access Layer Header File Abbildung 18: Header Dateien im Projekt __________________________________________________________________________________________ Mikrocontroller Labor: Tutorium - 13 - 5.4 Projekt zusammenfügen Nun muss das Projekt erstellt werden (Build). Alle Projektdateien werden zu einem binären File zusammengefügt, das auf das Zielsystem geladen werden kann. Abbildung 19: Projekt zusammenfügen Das Output Fenster zeigt nun folgendes an: Build target 'NUC130VE3CN' linking... Program Size: Code=3296 RO-data=224 RW-data=36 ZI-data=1124 ".\Mein_Blinky.axf" - 0 Error(s), 0 Warning(s). Wichtig: Fehler sind zu beheben und Warnungen müssen beachtet werden. __________________________________________________________________________________________ Mikrocontroller Labor: Tutorium - 14 - 5.5 Einstellungen fürs Zielsystem (Target) vornehmen Als Debugg-Tool muss hier der NULink Debugger verwendet werden. Abbildung 20: Debugger auswählen Das Debugg-Tool wird auch Programmer eingesetzt. Es kann noch eine hilfreiche Einstellung ergänzt werden, die das Programm nach dem Download automatisch startet. Abbildung 21: Reset and Run auswählen __________________________________________________________________________________________ Mikrocontroller Labor: Tutorium - 15 - 5.6 Programm auf das Zielsystem übertragen und starten Mit dem Button kann nun das Projekt aufs Board geladen werden, allerdings hier noch ohne sichtbare Funktion. Abbildung 22: Programm auf Zielsystem übertragen Es ist auf den blauen Balken, der den Downloadvorgang anzeigt, zu achten. Nach erfolgreichem Download erscheint folgende Meldung im Output-Fenster: Load "C:\\Users\\..\\M_DONGLE_V2\\Mein_Blinky\\Mein_Blinky.axf" 5.7 Übung: Mein_Blinky Bevor die gewünschte Funktionalität realisiert werden kann sind folgende weitere Angaben nötigt: #define DELAYS 5000 #define DELAYL 8*DELAYS Das obige Projekt ist zur erstellen und um folgende Funktionalität zu erweitern: while(1) { M_GPIO_BIT_CLEAR(BIT_LED0); M_GPIO_BIT_SET(BIT_LED1); DrvSystem_Wait_us(DELAYS); M_GPIO_BIT_SET(BIT_LED0); M_GPIO_BIT_CLEAR(BIT_LED1); DrvSystem_Wait_us(DELAYL); } __________________________________________________________________________________________ Mikrocontroller Labor: Tutorium - 16 - 5.8 Projekt säubern Der translate und build Vorgang erzeugt viele Daten. Diese können vor einem Kopiervorgang aus dem Projekt entfernt werden durch den Aufruf von Project\Clean target. Abbildung 23: Unnötige Dateien aus Projekt entfernen 5.9 Projekt kopieren Es ist sinnvoll bei Softwareprojekten und dazu gehören auch Übungen und Laboraufgaben die Entwicklung in Teilaufgaben zu unterteilen. Der Beginn mit der Realisierung einer Teilaufgabe sollte mit einer neuen Versionsnummer im Projekt begonnen werden. Im unserem Beispiel blinken in der ersten Version V1 zwei Leds. In dem weiterentwickelten Projekt sollen nun vier Leds blinken. Hier wäre nun eine neu Version V2 sinnvoll. Die bereits lauffähige Version V1 sollte nun VOR der weiteren Bearbeitung kopiert werden. Hierzu sollte ein Clean target ausgeführt und dann die IDE geschlossen werden. Nun kann der Projekt Ordner kopiert werden. Es wird üblicherweise eine Versionsnummer angehängt _V2 (Auf keinen Fall Leerzeichen in den Namen für Ordner oder Dateien verwenden!!). Abbildung 24: Kopierter Projektordner In dem Ordner Mein_Blinky_V2 kann nun wieder die Datei Mein_Blinky.uvproj geöffnet werden. Es reicht aus den Namen des Ordners zu ändern, der Name der Projektdatei kann beibehalten werden. Im Kopf der Datei, die die main() Funktion enthält sollten nun aber Ergänzungen für die Version V2 hinzugefügt werden. /******************************************************************************* * Projektname: Mein_Blinky * Prozessor: NUC130VE * Funktion: Leds blinken * Erstellungsdatum: 7.3.13 * Bearbeiter: JH * History: V1 2 Leds blinken * V2 4 Leds blinken *******************************************************************************/ Gelegentlich ist es nötig Änderungen innerhalb eines Projekteteils zu sichern, oder es werden bei bereits lauffähigen Softwareteilen Verbesserungen vorgenommen. Hier ist es üblich z.B. auf eine Version 2.1 zu kopieren also hier z.B. Mein_Blinky_V2_1 ! Projekte sollten sorgfältig verwaltet werden. __________________________________________________________________________________________ Mikrocontroller Labor: Tutorium - 17 - 6 Hinweise zum Simulator und Debugger Die Unterscheidung zwischen Simulator und Debugger, also dem Herunterladen des lauffähigen Programms auf das Laborboard, ist für den Nutzer nicht ohne weiteres ersichtlich. Die Oberfläche und der Start der Anwendung sind jeweils identisch. Durch die vom Nutzer getroffenen Voreinstellungen entscheidet sich, ob simuliert oder ob das Programm auf das Laborboard geladen wird. Die Defaulteinstellung steht auf Simulator. Abbildung 25: Target Optionen Über –> Project -> Option für Target oder das entsprechende Icon wird folgender Dialog erreicht: Ist das Feld Use Simulator ausgewählt, so wird simuliert. Soll der Debugger verwendet werden, so muss UseNULink Debugger ausgewählt werden. Abbildung 26: Debug Einstellungen Der Debug Vorgang wird über ->Debug -> Start oder über das entsprechende Icon begonnen. Abbildung 27: Debug Session starten Nach dem Start des Debuggers/Simulators stehen die Funktionen zur Verfügung, die schon aus den Laboren der Informatik bekannt sind. Sind während des Debuggens Breakpoints im Code verankert worden, darf die Hardware nicht einfach mit dem Reset-Taster zurückgesetzt werden, sondern nur über den Button „Start/Stopp“. __________________________________________________________________________________________ Mikrocontroller Labor: Tutorium - 18 - 6.1 Simulator einrichten Steht keine Hardware zur Verfügung, so kann auch der Simulator zur Fehlersuche verwendet werden. Allerdings muss der Simulator vor der Benutzung entsprechend initialisiert werden, da für den NUC130 keine Grundinitialisierung vorgenommen wird. Zu diesem Zweck wird die Datei debug.ini aus dem Ordner _copy in den aktuellen Projektordner kopiert. In einem letzten Schritt wird die Datei debug.ini als initialisation file eingetragen. Nun kann auch der Simulator verwendet werden. Zugriffe auf das Display sollten auskommentiert werden da sonst die entsprechende Kommunikation über die SPI Schnittstelle auch simuliert werden muss. Wird dies vergessen, so bleibt der Simulator bereits bei der Initialisierung des Displays in einer Loop stecken. Abbildung 28: Simulator ini Datei eintragen 6.2 Debugger/Simulator bedienen Abbildung 29: Bedienelemente Es stehen die üblichen Bedienelemente zur Verfügung. Run (bis zum nächsten Breakpoint), Stop. Reset, und verschieden Step Funktionen. __________________________________________________________________________________________ Mikrocontroller Labor: Tutorium - 19 - 6.3 Memory Fenster öffnen Abbildung 30: Memory Fenster öffnen Im ersten Fenster kann die Adresse 0x50004100 eingetragen werden und alle Register von Port E können beobachtet oder manipuliert werden. Abbildung 31: Memory Fenster 1 0x50004100 Abbildung 32: Seite 181 NUC130/NUC140 Technical Reference Manuel __________________________________________________________________________________________ Mikrocontroller Labor: Tutorium - 20 - Im zweiten Fenster kann die Adresse 0x50004300 eingetragen werden und alle Pin Data Register von Port E können beobachtet oder manipuliert werden. Abbildung 33: Memory Fenster 2 0x50004300 Abbildung 34: Seite 183 NUC130/NUC140 Technical Reference Manuel 6.4 Übung: Syntax und Logik- Fehler finden Zu Testzwecken sollen die LEDs 0-3 nacheinander aufleuchten. LED3 soll 8x so lange leuchten wie die anderen LEDs. In dem vorliegenden Projekt My_Blinky_is_buggy haben sich leider eine ganze Anzahl Fehler eingeschlichen. Anpassen des Einrückungsstils Anpassen des Variablennamens Syntaxfehler korrigieren Nachdem sich das Projekt jetzt erstellen und auf das Board herunterladen lässt, ist die Enttäuschung sicher groß, die gewünschte Funktion ist nicht erkennbar. Die logischen Fehler sind mit dem Debugger zu suchen und zu beheben. 7 Abnahme □ Das funktionierende Programm wurde im Debugger vorgeführt: Name:________________________________________________ Matrikelnummer:________________________________________ Datum:________________________________________________ __________________________________________________________________________________________ Mikrocontroller Labor: Tutorium - 21 - Unterschrift:____________________________________________ Anhang 8 Einrückungsstil (indent style) Allman / BSD / „East Coast“ 8.1 uint32_t f(uint32_t ui32x, uint32_t ui32y, uint32_t ui32z) { uint32_t ui32qux; if (ui32x < foo(ui32y, ui32z)) { ui32qux = 0; } else { while (ui32z > 0) { ui32qux += foo(ui32z, ui32z); ui32z--; } } return ui32qux; } Quelle: http://de.wikipedia.org/wiki/Einr%C3%BCckungsstil 8.2 Datentypen Datentyp char int8_t uint8_t int16_t uint16_t int32_t uint32_t float Kennung c i8 ui8 i16 ui16 i32 ui32 f Größe 1 Byte 1 Byte 1 Byte 2 Byte 2 Byte 4 Byte 4 Byte 4Byte double d 8 Byte Beschreibung Zeichen Zahlenwerte -128 bis 127 Zahlenwerte 0 bis 255 -32768 bis 32767 0 bis 65535 -2^31 bis 2^31-1 0 bis 2^32-1 Kommazahlen sehr rechenintensiv Kommazahlen extrem rechenintensiv __________________________________________________________________________________________ Mikrocontroller Labor: Tutorium - 22 - 8.3 Programmablaufplan (PAP) Quelle: Formelsammlung, Berufliches Gymnasium (TG), 1.5.2 Informationstechnik, Stand 2008 __________________________________________________________________________________________ Mikrocontroller Labor: Tutorium - 23 - 9 [1] [2] [3] [4] Literatur M_Dongle, Dokumentation, HS Pforzheim 2012 µVision User's Guide http://www.keil.com/ C_Programmierung_mit_dem_M_Dongle, HS Pforzheim 2013 Quelle: http://de.wikipedia.org/wiki/Einr%C3%BCckungsstil __________________________________________________________________________________________ Mikrocontroller Labor: Tutorium - 24 -
© Copyright 2024