1 WS14/15¶
2 WS13/14¶
Link zur Veranstaltung
Bitte hier Ihre Erfahrungen hinschreiben. Wo haengt es? Was hat gut funktioniert? Wo ist was neues ausprobiert worden? Welche Linux-Distributionen werden verwendet? Wer verwendet VirtualBox? Und so weiter. Die Seite ist in Restructured Text formatiert.
Meine Erfahrungen (H. Hoegl):
Direkt nach dem „load“ in gdb (stlink) sollte man den Reset Knopf auf dem Discovery Board druecken, sonst laeuft das Programm nicht los.
Auf dem Discovery Board sind zwei LEDs (rot) beim USB Anschluss und zwei (gruen, blau) auf der gegenueber liegenden Seite beim Ziel AVR. Das Blinken der roten LEDs hat etwas mit dem Debug-Interface zu tun. Fuer die Anwendung sind nur die beiden anderen intessant.
Manche verwenden aus Prinzip nicht Vi(m): Alternativen sind mcedit (midnight commander), nano, gedit, sonstige?
Stlink stuerzt bei manchen gelegentlich ab. Als Alternative kann man OpenOCD verwenden, vielleicht sollte man OpenOCD auch gleich am Anfang vorziehen. Wie ist die Meinung?
Zum Flashen in OpenOCD: In
asm/01_blinky/
gibt es die GDB Kommandodatei.gdbinit
. Darin habe ich noch zwei Funktionen eingefuegt zum Flashen (also zunaechstgit pull
eingeben). In OpenOCD flasht man ueblicherweise nicht mit „load main.elf“, sondern mit einer Folge an Kommandos, die sich direkt an die Telnet Schnittstelle wenden.Die Kommentarzeichen im GNU Assembler sind
#
: Am Anfang der Zeile bis Zeilenende@
: Irgendwo in der Zeile bis Zeilenende/* ... */
: wie in C
Damit man immer das in Assembler oft übliche „;“ Zeichen verwenden kann, muss man einen Präprozessor schreiben, so wie der
preasm.tcl
inasm/01_blinky
. Die Tcl Programme werden vontclsh
ausgefuehrt, den findet man im Pakettcl8.5
. Die Rechte muessen so gesetzt sein:chmod 755 preasm.tcl
. Wer moechte, der kann sich seinen Praeprozessor in seiner Lieblingssprache neu schreiben.
3 WS12/13¶
Im Wintersemester 2012/2013 werden wir nach den zwei Vorlesungsblöcken am Mittwoch Nachmittag ab etwa 17 Uhr bis 19 Uhr jeweils eine praktische Übung machen.
- Literatur
17.10.2012
Hardware kennenlernen (AVR, STM32, LM3S811, Gnublin)
24.10.2012
GNU Toolchain (Codesourcery), make, OpenOCD
http://elk.informatik.fh-augsburg.de/pub/downloads/cs/ (mit Login und Passwort!)
STM32 Assembler Beispiel
git clone ssh://git@hhoegl.informatik.fh-augsburg.de:8022/srv/git/stm32-at-hsa.git
31.10.2012
OpenOCD selber kompilieren
7.11.2012
Bibliotheken
cmsis (http://cmsis.arm.com)
stm32f10x_stdperiph_lib.zip, stm32_usb-fs-device_lib.zip (siehe ST Micro Cortex M3 Homepage)
libopencm3
„Summon ARM Toolchain“ http://elk.informatik.fh-augsburg.de/pub/downloads/sat/
Kompilierte lib: http://elk.informatik.fh-augsburg.de/pub/downloads/libopencm3/
Im Source Code navigieren
Exuberant Ctags http://ctags.sourceforge.net
CBrowser http://cbrowser.sourceforge.net
14.11.2012
—
21.11.2012
Virtualbox. Mit der aktuellen Version und der installierten Erweiterung funktioniert USB für die meisten Geräte. Jedoch führt das Einstecken des STM32 Discovery beim virtuellen Linux nach ein paar Sekunden zu einer Kernel Exception. Der Effekt trat auch bei anderen Linux Distributionen auf. Auch der VMware Player zeigt das gleiche Problem. Das Discovery Board wird nur von einem „realen“ Linux oder Windows mit USB 2.0 Anschluss akzeptiert. Mit einem USB 3.0 Anschluss klappt es nicht.
libopenstm32, Lizenz, Aufbau des Quelltextes, Organisation der Dateien
git, tkgit, clone, Versionen, Branches
summon arm toolchain (sat) kompilieren (Voraussetzung: libgmp-dev, libmfpr-dev, libmpc-dev, build-essential, gettext, flex, bison, patch).
Navigation im Quelltext mit exuberant-ctags.
STM32 standard peripherals library, Lizenz
STM32 USB full-speed library, Lizenz Aufbau des Quelltextes, welche Beispiele sind dabei? Welche Compiler werden unterstützt?
28.11.2012
Betriebssysteme
FreeRTOS, http://www.freertos.org (C)
ChibiOS, http://www.chibios.org (C)
scmRTOS, http://scmrtos.sourceforge.net (C++)
5.12.2012
FreeRTOS
Low-Power Programmierung
Lesestoff
Keil/Grobe, Designing Energy Efficient Systems with Cortex M Controller (auf CD, Seite 1-11).
Elecia White, Kap 10 (Reducing Power Consumption)
Insiders Guide to STM32, Kap. 6
12.12.2012
—
19.12.2012
Lernstoff fuer Weihnachtsferien festlegen
4 WS10/11¶
Versuche mit Embedded Linux
Feuchtesensor (AVR Mega32 und NGW100)
SMS versenden mit Linux (NGW100)
Programmiersprache GO (Beagle Board)
Windmessung mit einem kleinen Gleichstrommotor (AVR, GUI mit Python/Qt auf PC)
Aquariumsteuerung mit Arduino
http://elk.informatik.fh-augsburg.de/hhwiki/ES2Praktikum1011
Archiviert in srv/abgaben/ws1011-es2-prak/
.