11741
Kommentar:
|
12065
|
Gelöschter Text ist auf diese Art markiert. | Hinzugefügter Text ist auf diese Art markiert. |
Zeile 255: | Zeile 255: |
* Bausteine/Module mit SPI Schnittstelle - `DOG Display <http://www.lcd-module.de/produkte/dog.html>`_ - `MAX7219 <http://datasheets.maximintegrated.com/en/ds/MAX7219-MAX7221.pdf>`_ - `PCA9555 <http://www.nxp.com/documents/data_sheet/PCA9555.pdf>`_ * Logikanalysator mit Linux GUI: http://www.saleae.com |
Embedded Linux im Sommer 2014
H. Hoegl, <Hubert.Hoegl@hs-augsburg.de>, 2014
URL: http://elk.informatik.hs-augsburg.de/hhweb/elinux/
Tafelbilder: https://elk.informatik.hs-augsburg.de/dav/elinux-14/tafel/
Moodle: https://moodle.hs-augsburg.de/course/view.php?id=2417
1 Hausaufgaben
Die Loesungen der Hausaufgaben geben Sie bitte in Moodle ab:
https://moodle.hs-augsburg.de/course/view.php?id=2417
1.1 28. Maerz 2014
Einführung (komplett)
http://elk.informatik.hs-augsburg.de/hhweb/elinux/Aufgaben/allgemein.html#intro
1.2 4. April 2014
Nochmal die Inhalte der Vorlesung vom 4. April durchdenken.
Abschnitt ueber Hostrechner lesen:
http://elk.informatik.hs-augsburg.de/hhweb/elinux/Gliederung/main.html#der-entwicklungsrechner
Aufgaben zum Hostrechner
http://elk.informatik.hs-augsburg.de/hhweb/elinux/Aufgaben/allgemein.html#der-entwicklungsrechner
Gerüst für ein Kommandozeilenprogramm entwickeln (siehe Kommandozeile).
Das Kapitel 2 des Buches http://www.advancedlinuxprogramming.com/alp-folder/ heisst Writing Good GNU/Linux Software. Darin finden Sie unter anderem, wie man Kommandozeilen-Parameter mit getopt richtig programmiert.
Wie jede Woche: Kenntnis der Kommandozeile verbessern
Abgabe des 2. Aufgabenblattes verlängert auf 30. April.
1.3 25. April 2014
Lesen Sie in der Gliederung den Abschnitt ueber den Entwicklungsrechner
http://elk.informatik.hs-augsburg.de/hhweb/elinux/Gliederung/main.html#der-entwicklungsrechner
und beantworten Sie die Fragen dazu:
http://elk.informatik.hs-augsburg.de/hhweb/elinux/Aufgaben/allgemein.html#der-entwicklungsrechner
Lesen Sie im Buch von Karim Yaghmour das Kapitel 2 ("Basic Concepts")
Holen Sie sich die Programmbeispiele:
git clone git://hhoegl.informatik.fh-augsburg.de/elinux-src
Da auf Gnublin das git Programm installiert ist, koennen Sie die Beispiele gleich auf Gnublin holen.
Die Beispiele kann man auch in einem Source Browser ansehen:
http://hhoegl.informatik.fh-augsburg.de:8000/elinux-src
Kommunikation mit serieller Schnittstelle (UART)
- zu Fuss in C
- mit Gnublin API (C++)
- mit Python
Gnublin Erweiterungsmodule
http://elk.informatik.hs-augsburg.de/hhweb/elinux/Gnublin/Module.html
- Interfacing DOG Display und Bedientasten
- Interfacing einer S0 Schnittstelle eines Strommessgeraetes Eltako-WSZ12DE-32A (2000 Impulse je kWh)
1.4 2. Mai 2014
Lesen Sie den Abschnitt ueber den UART in der Gliederung
http://elk.informatik.hs-augsburg.de/hhweb/elinux/Gliederung/main.html#uart
Fragen zur UART Schnittstelle:
- Wie greift man in C auf den UART zu?
- Wie greift man in Python auf den UART zu?
- Unterstuetzt das Gnublin-API den UART?
Fragen zur SPI Schnittstelle:
- Wo im Kernel steht, wie man auf die SPI Schnittstelle zugreift?
Beschreiben Sie die verschiedenen Schichten der Gnublin-API Software.
Setzen Sie die Zeit auf Ihrem Embedded Linux Rechner mit dem NTP Protokoll:
sudo ntpdate de.pool.ntp.org
Vergessen Sie nicht, vorher die Zeitzone zu setzen mit sudo tzselect oder sudo dpkg-reconfigure tzdata.
1.5 9. Mai 2014
XXX
2 Vorlesungen/Praktika
Im Praktikum bearbeiten Sie folgende Pflichtversuche neben Ihrem Projekt:
http://elk.informatik.hs-augsburg.de/hhweb/elinux/Aufgaben/versuche-mit-gnublin.html
2.3 11. April 2014
Letzter Aufruf: In Moodle eintragen (siehe oben)
Erfahrungsaustausch: Toolchain installieren (ELDK)
ELDK5X86=/opt/eldk-5.5/armv5te/sysroots/i686-eldk-linux P1=$ELDK5X86/usr/bin/armv5te-linux-gnueabi/ export ARCH=arm export CROSS_COMPILE=arm-linux-gnueabi- export PATH=$P1:$PATH
Die SD Karte
/bin/dd, /sbin/fdisk, /sbin/cfdisk, /sbin/mkfs.ext3
Disk /dev/sdb: 1 GB, 1003484160 bytes 255 heads, 63 sectors/track, 122 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sdb2 1 2 8032 df BootIt /dev/sdb1 3 122 979870 83 Linux
Gnublin Installer http://wiki.gnublin.org/index.php/Gnublin_Installer
Gnublin Wiki, alle Seiten
General Purpose I/O (GPIO)
Informationen im Wiki
- http://wiki.gnublin.org/index.php/GPIO (gnublin-gpio, sysfs)
- http://wiki.gnublin.org/index.php/API_GPIO (Gnublin API)
- http://wiki.gnublin.org/index.php/Berechtigungen_GPIO
- http://wiki.gnublin.org/index.php/GPIO#Interrupt_eines_GPIO_Pins_aktivieren (Interrupts in C und Python)
Kernel Doku linux-2.6.33-lpc313x/Documentation/gpio.txt
Dazu zunaechst den Kernel-Quelltext holen:
git clone https://github.com/embeddedprojects/gnublin-lpc3131-2.6.33.git
Gnublin Live CD http://gnublin.embedded-projects.net/live-cd/
Tafelbild https://elk.informatik.hs-augsburg.de/dav/elinux-14/tafel/
2.5 2. Mai 2014
Hardware, welche die serielle Schnittstelle verwendet
http://elk.informatik.hs-augsburg.de/hhweb/es/Gliederung/img/serielle-module.jpg
SPI Schnittstelle
Gnublin API
Tafelbild https://elk.informatik.hs-augsburg.de/dav/elinux-14/tafel/
Lesen
2.6 9. Mai 2014
- Wiederholung
- Erinnerung: Pflichtaufgaben mit Gnublin (bzw. Ihrem verwendeten Board)
- Bausteine/Module mit SPI Schnittstelle
- Logikanalysator mit Linux GUI: http://www.saleae.com
- I2C
- 1-Wire
3 Projektvorschläge
Hier sind erst mal ein paar Ideen:
- 1-Wire Erweiterung zum Schalten und Überwachen von Temperaturen
- Barcode Scanner an Gnublin
- Fernsteuern und Überwachen mit Mobilfunk-Modem
- Alarmanlage mit Fenster-/Türkontakt, Näherungssensor
4 Die tatsächlichen Projekte
- Alarmanlage (Peter, Keilbach)
- Hundefütterungsanlage (Bonhoeffer)
- Morselicht (Schmid, Keller, Weisshaar)
- Schnittstelle zu einem Wechselrichter über Bluetooth und Infrarot (Abwandner, Beham)
- Wohnwagen (Görlich)
- Stromzähler bei PV-Anlage (Laton, Boemmel)
- WLAN Router und mehr (Scheja)
- 1-Wire (von Hollen, Hrstka, Grieco)
- Anwesenheitssensor (Mogk, Sebald)
- Fahrradschloss (Kazemi, Liashenko, Maximov)
- Frequenzmessung zur Bestimmung der Feuchte (Vockinger)
- Kaffeemaschine mit Gnublin steuern (Mauch, Spegel)
- Überwachung von Fräsmaschinen (Rädler, erst in SS15)
5 Tipps
Beachten: Immer auch das Gnublin Wiki durchsuchen.
5.1 udev Regel fuer Terminalprogramm
In Datei /etc/udev/rules.d/81-gnublin-serial.rules: SUBSYSTEM=="tty", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea60", SYMLINK+="gnublin-console", MODE="0666" sudo /etc/init.d/udev restart oder sudo service udev restart Nach erneutem Anstecken des USB Konsolenkabel sieht man das Geraet ``/dev/gnublin-console``.
5.2 kermit
Man page: man kermit
Installation mit
apt-get install ckermit apt-get install lrzsz # auf Host und Gnublin
Konfigurationsdatei ~/.kermrc:
set line /dev/gnublin-console # set line /dev/ttyUSB0 set speed 115200 set carrier-watch off set handshake none set flow-control none robust set file type bin set file name lit set rec pack 1000 set window 5 set parity none set prefixing all set reliable off set clearchannel off set streaming off set protocol xmodem-crc download {} {sz %s} {} {rz %s} {} set terminal type xterm
Prompt
(/home/hhoegl/) C-Kermit> C-Kermit> c # Connect ... Kermit im Terminal Modus ... C-\ c # Vom Terminal- in Kommando-Modus send [/binary] <filename> # Datei senden C-Kermit> q # Quit
Wenn man Dateien von Gnublin zum PC uebertragen will, dann muss man auf Gnublin "sz <datei>" eingeben. Kermit auf dem PC erkennt das und speichert die Datei ab! SZ hat erstaunlich viele Optionen, siehe "sz --help".
5.3 picocom
Installation
apt-get install picocom apt-get install lrzsz # auf Host und Gnublin
Kommandos
sudo picocom -b 115200 /dev/ttyUSB0 sudo picocom -b 115200 --send-cmd "sz -vv" --receive-cmd "rz -vv" /dev/ttyUSB0 Beenden mit C-a C-x Dateien senden mit C-a C-s Alles weitere: man picocom
Eventuell problematisch: GNU Readline C-a (Cursor an linken Rand) ist identisch mit Picocom Meta-Zeichen.
5.4 Verbindung zum Netz
Das ist in diesem Text beschrieben:
http://elk.informatik.hs-augsburg.de/pub/rtlabor/Gnublin/appnotes/pseudo-netz.html
5.5 Kompilieren
Auf Gnublin nativ kompilieren. Ist zwar langsam, geht aber für kleine Programme.
Auf Host kompilieren ("Cross-Kompilierung")
Anleitung für ELDK: http://wiki.gnublin.org/index.php/C/C%2B%2B_Entwicklungsumgebung_installieren
Tipp: Nimm aktuelle Version 5.5:
ftp://ftp.denx.de/pub/eldk/5.5/targets/armv5te/eldk-eglibc-i686-arm-toolchain-qte-5.5.sh
5.6 Kommandozeilen-Programme
Vasudav Ram, Developing a Linux command-line utility, 2002
http://www.advancedlinuxprogramming.com/alp-folder/
Kapitel 2: Writing good GNU/Linux Software
5.7 User hinzufügen und löschen
Mit adduser paul wird ein neuer User angelegt. Danach existiert ein neues Home-Verzeichnis /home/paul. Mit deluser paul kann man den User wieder löschen.