## page was renamed from es2praktikum #format rst #language de :Autor: Hubert Hoegl ```` :Datum: 2013-10-24 .. contents:: Inhalt .. sectnum:: WS14/15 ======= ``_ 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. 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 - http://elk.informatik.hs-augsburg.de/hhweb/labor/arm/stm32-discovery/index.html - http://elk.informatik.hs-augsburg.de/cdrom-es 1. 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) - http://elk.informatik.fh-augsburg.de/pub/stm32lab - 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 - Cscope http://cscope.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 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/``. WS09/10 ======= * http://elk.informatik.hs-augsburg.de/hhwiki/ES2Praktikum0910