Tutorium Einführung - Hochschule Pforzheim

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 -