Im HQ befinden sich zur Zeit für verschiedene Bastelprojekte und Experimente fünf STM32F4 Discovery Boards. == Doku == * Produktseite und Doku: http://www.st.com/internet/evalboard/product/252419.jsp * Projekte auf Github: https://github.com/sebseb7/pentstm32f4 * Deutsche Doku zu STM32-Controllern allgemein: http://www.mikrocontroller.net/articles/STM32 * Prozessor: STM32F407 VG [http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/DATASHEET/DM00037051.pdf Datasheet] * [http://pentapad.hq.c3d2.de/p/TA_Hack_Your_Arm Etherpad zum Themenabend] am 11.07.2012 === eLua === für das board gibt es auch einen noch nicht upstream geflossenen elua support http://wiki.eluaproject.net/STM32F4DISCOVERY dieser findet sich auch github https://github.com/jsnyder/elua/tree/bikeNomad-master _john bastelt wohl da mit mal etwas rum. Bereits gestestete erste Schritte:
	git clone git@github.com:tuxcodejohn/elua.git 
…
	cd elua
	git checkout -b origin/bikeNomad-master
…
	export PATH=$PATH:/
	scons board=STM32F4DSCY prog 
…
jetzt solltest man elua_lua_stm32f407vg.bin im aktuellen verzeichnis finden... sonst war wohl noch irgendeine vorraussetzung nicht erfüllt... siehe auch toolchain. Um diese auf eines dieser boards zu programmieren brauchst du ein Programmiertool. Zum Beispiel das dfu-util (mindestens in der Version 0.5)
2 b continued... === Exemplare in Benutzung === Boards sind gegenwärtig verliehen an bzw. in Benutzung durch: * koeart * john * lachmoewe (ein defektes Board liegt im HQ, auf der Platinenunterseite steht grün auf grün DEFEKT) === Toolchain === Um lustige Software für das Board zu bauen ohne irgendwie eine Entwicklungsumgebung zu kaufen musst Du Dir Deien eigene CrossToolchain bauen. Für MacOS und Linux:
jsnyder arm-eabi-toolchain: https://github.com/jsnyder/arm-eabi-toolchain
ACHTUNG! BAUT EWIG! Zum Testen dann sebseb7's pentstm32f4 clonen und
make 
make flash 
machen. Bei mir hats mit arm-eabi nicht auf Anhieb geklappt, da kein Hardware float support mitkompiliert wurde. In den makefiles
./Makefile 
./STM32_DSP_Lib/build/Makefile 
./STM32F4xx_StdPeriph_Driver/build/Makefile
muss dann jeweils -mfloat-abi=softfp gesetzt sein, dann sollte es gehen. === Troubleshooting === ==== Couldn't find any ST-Link/V2 devices ==== -make flash liefert den Fehler WARN src/stlink-usb.c: Couldn't find any ST-Link/V2 devices. ===== add this to your /etc/udev/rules.d/ dir --------------------49-stlinkv2.rules: SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="3748", \ OWNER:="john",MODE:="0660", \ SYMLINK+="stlinkv2_%n" replace john with your username ... ==== gdb ==== Wenn Deine Software nicht will, kannst Du wie auf dem Ta vorgestellt zu drastischen Mitteln wie dem gdb greifen. Den nötigen gdb-server gibt es auf https://github.com/texane/stlink ==== Hard Fault Handler ==== Der Tip mit dem hfh kam auf dem ta etwas kurz. hier ein link, der doch ganz gut erklärt, wie man einen sinnvollen hfh bekommt: http://blog.frankvh.com/2011/12/07/cortex-m3-m4-hard-fault-handler/ ==== Disassembler ==== Wenn dem Code auch im gdb nicht beizukommen ist, oder Dein HFH (siehe oben) Dir eine Adresse ausspuckt und Du nun wisses willst, was an dieser adresse geschiet, ist es es häufig nützlich einen Disassembler auf das elf binary abzufeuern und nachzusehen, was dem chip da grade Sorgen bereitet. Das geht zum Beispiel mit dem aus den binutils stammenden Tool objdump so: arm-none-eabi-objdump -dsl foo.elf > foodis.txt [[Kategorie:Projekt]]