Für Slides und Code Beispiele, siehe Lektion 1
Achtung: Arbeiten Sie nicht direkt auf diesem Repository.
Erstellen Sie eine persönliche Kopie, mit diesem GitHub Classroom Link.
- Hardware bzw. Compiler-abhängige Konstanten:
#include <limits.h>
- Schreiben Sie ein Programm my_range.c, das für die Typen char, int, long, short Wertebereiche so ausgibt:
type: TYPE_SIZE byte, TYPE_MIN .. TYPE_MAX
- Erweitern Sie das Programm für unsigned Typen.
- Tipp: $ gcc FILE.c -M zeigt include Pfade an.
- Command-Line Argumente als Parameter von main:
int main(int argc, char *argv[]);
- Schreiben Sie ein Programm my_args.c, das alle Command-Line Argumente mit Index ausgibt:
$ ./my_args hoi => 0: ./my_args, 1: hoi
- Erweitern Sie das Programm, dass es einen Fehler ausgibt, falls ein Argument nicht aus [a-z]* besteht.
- Erstellen Sie eine Datei my_tree.c mit einem Struct Typ Tree mit Zeigern auf left, right vom selben Typ, und einem String label von maximal 32 Byte Länge.
- Instanzieren Sie einen binären Baum mit 3 Blättern, verwenden Sie dazu die Funktionen malloc und free.
- Erweitern Sie den Node Typ für Bäume mit variabler Anzahl (N > 2) Ästen, wie Darwin's Tree of Life.
- Erstellen Sie ein C Struct Typ für BLE Pakete gemäss: https://devzone.nordicsemi.com/f/nordic-q-a/12211/ble-packet-structure in einer neuen Datei my_ble.c
- Erstellen Sie ein makefile für Ihren Hands-on Code.
- Verwenden Sie die Compiler Flags aus dem Script.
- Korrigieren Sie allfällige neue Kompilationsfehler.
- Führen Sie make clean aus, vor dem git commit.
- Lokale Änderungen committen und pushen.
- GitHub Issue erstellen mit "Bitte um Review, @tamberg".
- Offene Fragen ausformulieren, was geht nicht, was haben Sie versucht.
- GitHub mailt mir (@tamberg) automatisch, ich versuche in weniger als 24h zu antworten :)
Auf Ihrem Computer
- Zu Beginn jeder Lektion wird der Hands-on Repository Link freigeschaltet
- Nachdem Sie das "Assessment" annehmen, bekommen Sie per Email ein Repository
- Die REPO_URL enthält Ihren GitHub Account USER_NAME und Ihre Klasse 3ia oder 3ib, z.B.
https://github.com/fhnw-syspr-3ia/fhnw-syspr-work-01-tamberg
Auf dem Raspberry Pi
- Repository klonen
$ cd ~ $ git clone REPO_URL
- Neue Datei kreieren
$ git add FILE
- Änderungen committen
$ git commit FILE -m "Fixed all bugs"
- Änderungen hochladen
$ git push
Auf dem Raspberry Pi
- Neue oder bestehende Datei öffnen mit $ nano FILE
- Editieren (Achtung, nano hat kein Undo)
- Speichern mit
CRTL-X
Y
RETURN
Auf Ihrem Computer
- Terminal öffnen (Mac) oder
WINDOWS
R
cmdRETURN
(Windows) - SSH Session starten mit
$ ssh pi@raspberrypi.local