README on basic usage
parent
50c8981f38
commit
1d9fab3c7d
@ -1,6 +1,111 @@
|
||||
# DMM Demo
|
||||
# DMM Demo
|
||||
|
||||
Beispielprojekt zur Demonstration der wesentlichen Funktionen des DMM-Boards.
|
||||
Wird auch zur Installation des Bootloaders und Test nach der Inbetriebnahme
|
||||
eingesetzt.
|
||||
|
||||
## Anleitung
|
||||
|
||||
### Build-System und Entwicklungsumgebung
|
||||
|
||||
Als plattformübergreifendes Build-System Dient das
|
||||
[PlatformIO](https://platformio.org/). Diese steht sowohl als
|
||||
Kommandozeilen-Tool, als auch als [Erweiterung](https://marketplace.visualstudio.com/items?itemName=platformio.platformio-ide)
|
||||
zum [Visual Studio Code](https://code.visualstudio.com/).
|
||||
(auch unter Linux und MacOS verfügbar!)
|
||||
|
||||
Nutzt man das VSCode, so können nach der Installation der Erweiterung die unten
|
||||
aufgeführten Befehle auch *ohne Installation der PIO im Betriebssystem* in den
|
||||
Terminals innerhalb der IDE genutzt werden.
|
||||
|
||||
*Nur Linux:* zur Programmierung des Bootloaders mit JTAGICE muss dieser
|
||||
für nicht-root Nutzer per udev-Regel freigegeben werden. Erstelle dazu Datei
|
||||
`/etc/udev/rules.d/99-jtagice3.rules` mit:
|
||||
```
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2140", MODE="0666"
|
||||
```
|
||||
|
||||
### Auschecken und bauen
|
||||
Es sollte sichergestellt sein, dass [Git](https://git-scm.com/) installiert und
|
||||
der [eigene SSH-Schlüssel im GitLab-Profil hinterlegt](https://docs.gitlab.com/ee/ssh/)
|
||||
ist. Für Git-Anfänger finden sich im Internet zahlreiche Anleitungen, zum Beispiel
|
||||
[diese](https://www.freecodecamp.org/news/learn-the-basics-of-git-in-under-10-minutes-da548267cc91/).
|
||||
|
||||
*GUI:* VSCode unterstützt Git direkt und kann nach der Einrichtung als GUI
|
||||
genutzt werden.
|
||||
|
||||
Auschecken:
|
||||
```
|
||||
$ git clone git@teach.emg.ing.tu-bs.de:dmm/dmm-demo.git
|
||||
$ cd dmm-demo
|
||||
```
|
||||
|
||||
Es sind zwei PlatformIO-Environments definiert. `release` wird standardmäßig
|
||||
genutzt und ist auf die Programmierung per Bootloader ausgelegt. `debug` wird
|
||||
für das Aufspielen des Bootloaders oder Debugging mittels JTAGICE3 genutzt.
|
||||
|
||||
Bauen von `release`:
|
||||
```
|
||||
$ pio run
|
||||
```
|
||||
|
||||
Bauen von `debug`:
|
||||
```
|
||||
$ pio run -e debug
|
||||
|
||||
```
|
||||
|
||||
Dabei werden neben der Toolchain automatisch die für DMM-Projekte vorgesehenen
|
||||
[Bibliotheken](https://teach.emg.ing.tu-bs.de/git/dmm/dmm-libs) in den Ordner
|
||||
`dmm-demo/depends` heruntergeladen.
|
||||
|
||||
### Programmierung & Nutzung
|
||||
|
||||
*GUI*: die aufgeführten Befehle können auch aus dem PlatformIO-Toolbar des
|
||||
VSCode per Mausklick ausgeführt werden.
|
||||
|
||||
#### Aufspielen des Bootloaders
|
||||
|
||||
Auf einem neuen Board muss zunächst mittels JTAGICE3 ein Bootloader aufgespielt
|
||||
werden. Dazu wird es mit dem JTAG-Header verbunden (Polung beachten!).
|
||||
```
|
||||
$ pio run -t bootloader -e debug
|
||||
```
|
||||
|
||||
#### Aufspielen des Programms
|
||||
|
||||
Das Board muss per USB verbunden und Bootloader gestarted werden.
|
||||
*Zum Start des Bootloaders den Joystick in Richtung unten halten, Reset-Taste
|
||||
drücken und den Joystick loslassen. Die Aktivierung des Bootloaders erkennt man
|
||||
an zwei leichtenden roten LEDs auf dem Board*
|
||||
```
|
||||
$ pio run -t upload
|
||||
```
|
||||
Anschließend Reset-Taste drücken um das Programm zu starten.
|
||||
|
||||
#### UART-Kommunikation
|
||||
|
||||
Ein Teil des Demos beschäftigt sich mit Kommunikation über einen virtuellen
|
||||
SerialPort via USB. Der `COMx` (Windows) oder `/dev/ttyUSBx` (Linux) Port wird
|
||||
von PlattformIO automatisch erkannt. Dies geschieht anhand des `hwid` Parameters
|
||||
unter `boards/emgdmm_v3.json`, der den VID/PID des FTDI-Chips des DMM-Boards
|
||||
angibt. Ein Terminal kann somit einfach geöffnet werden:
|
||||
```
|
||||
pio device monitor
|
||||
```
|
||||
|
||||
Beim Drücken des Joystick im entsprechenden Teil des Demos wird nun eine Meldung
|
||||
angezeigt.
|
||||
|
||||
### Unit-Test
|
||||
|
||||
Die Demo enthält im Ordner `tests` einen Beispiel zur Ausführung von Unit-Tests
|
||||
auf dem Mikrocontroller. Dazu muss wie oben beschrieben der Bootloader aktiviert
|
||||
werden.
|
||||
```
|
||||
$ pio test
|
||||
```
|
||||
Nach dem Befehl wird eine Firmware auf das Board heruntergeladen, die bei der
|
||||
Ausführung per UART (wie auch bei `pio device monitor`) die Ergebnisse der
|
||||
Tests im Terminal ausgibt.
|
||||
|
||||
pio run -t bootloader -e debug
|
||||
pio run -t upload
|
||||
pio run test
|
||||
pio device monitor
|
||||
Loading…
Reference in New Issue