8558
Kommentar:
|
8521
|
Gelöschter Text ist auf diese Art markiert. | Hinzugefügter Text ist auf diese Art markiert. |
Zeile 266: | Zeile 266: |
Ältere Praktika ================ |
|
Zeile 270: | Zeile 268: |
```````````` | ============ |
Zeile 286: | Zeile 284: |
````````````` | ============ |
Autor: | Hubert Hoegl <Hubert.Hoegl@hs-augsburg.de> |
---|---|
Datum: | 2013-10-24 |
Inhalt
1 ES2 Praktikum im WS14/15
[[EmbeddedSystems2WS1415]]
2 Embedded Systems II Praktikum im WS13/14
Link zur Veranstaltung
http://elk.informatik.fh-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 Embedded Systems II Praktikum im 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
- 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++)
- Betriebssysteme
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 Recherche: STM32 Discovery Projekte mit GCC
Hubert Hoegl, 2013-01-31
- http://hackaday.com/2012/06/19/stm32-demo-code-carries-extra-hidden-copyrights/
- Programming STM32 F2, F4 ARMs under Linux: A Tutorial from Scratch http://www.triplespark.net/elec/pdev/arm/stm32.html
- Setting up Eclipse and Code Sourcery lite for STM32 Discovery Development https://sites.google.com/site/stm32discovery/open-source-development-with-the-stm32-discovery/setting-up-eclipse-for-stm32-discovery-development
-
Erwaehnt auch Bibliotheken und ChibiOS (kann STM32 Discovery).
Geoffrey Brown, Discovering the STM32 Microcontroller, Januar 2013, 244 Seiten (das ist der Kurs C335 - "Computer Structures", Indiana University, Department of Computer Science, Bloomington).
Lab Manual
http://www.cs.indiana.edu/~geobrown/book.pdf
Code
https://github.com/geoffreymbrown/STM32-Template
Fortsetzungskurs P442 in Arbeit (Goofy Giggles)
http://www.cs.indiana.edu/~geobrown/goofy.html
Homepage des Autors
Demos (von kommerz. IDE nach gcc uebertragen)
http://cgi.cs.indiana.edu/~geobrown/stm32/Main/Demos
STM32 Discovery: The Basics - Creating a Project (zur Zeit mit Keil IDE, spaeter GCC)
http://www.codeproject.com/Articles/149950/STM32-Discovery-The-Basics-Creating-a-Project
Code: fromA-Z_step2.zip (download mit member-login)
GCC linker script and STM32 (a tutorial)
http://developers.stf12.net/cpp-demo/gcc-linker-script-and-stm32-a-tutorial
http://www.diller-technologies.de/stm32.html
Zugehoeriger Thread auf uc.net
http://www.mikrocontroller.net/topic/258652
Verwendet CooCox IDE
Code: 22_I2C_DMA.zip
STM32F3 Discovery Board (behandelt auch ChibiOS, das gut unterstuetzt wird).
http://www.eevblog.com/forum/microcontrollers/stm32-f3-discovery-board/
CooCox CoIDE mit STM32F4-Discovery Board
5 Winter 10/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/.