Autor:Hubert Hoegl <Hubert.Hoegl@hs-augsburg.de>
Datum:2013-10-24

2   WS13/14

Link zur Veranstaltung

http://hhoegl.informatik.hs-augsburg.de/hhweb/labor/arm/stm32lab/index.html

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 zunaechst git 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 in asm/01_blinky. Die Tcl Programme werden von tclsh ausgefuehrt, den findet man im Paket tcl8.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
  1. 17.10.2012

    Hardware kennenlernen (AVR, STM32, LM3S811, Gnublin)

  2. 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
  3. 31.10.2012

    OpenOCD selber kompilieren

  4. 7.11.2012

    Bibliotheken

    Im Source Code navigieren

  5. 14.11.2012

    ---

  6. 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?
  7. 28.11.2012

  8. 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
  9. 12.12.2012

    ---

  10. 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/.

ES2PraktikumFrueher (zuletzt geƤndert am 2017-03-06 13:31:21 durch HubertHoegl)