Lieber Besucher, herzlich willkommen bei: RCLine Forum. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

o.dippel

RCLine User

  • »o.dippel« ist der Autor dieses Themas

Wohnort: Büdingen / Hessen

Beruf: Software-Developer

  • Nachricht senden

1

Freitag, 16. Januar 2009, 13:35

STM32 Programmierung unter Linux

Hi Leute,
da der relativ neue STM32 ein sehr Interessanter Microcontroller ist,
währe ein dazu passender Thread ganz Praktisch.

Da für Windows genügend Anleitungen existieren,
gehen wir hier mal den Linux weg,
und erörtern die Möglichkeiten, den STM32 und deren Entwicklungs-Hardware (Primer 1 & 2, STM32-H103),
unter Linux zu Programmieren (compiler, flashtools, ...).

Hier mal eine paar Links von Olli und dr.klepp (aus diesem Thread) :

Bezugsquellen:
* http://elmicro.com/de/stm32proto.html (Header-Board's)
* http://www.futurlec.com/ET-STM32_Stamp.shtml (Header-Board)
* http://www.sander-electronic.de/es0028.html (Header-Board's)
* http://www.sander-electronic.de/es0027.html (Primer 1)
* http://www.sander-electronic.de/es0030.html (Primer 2 / im Moment nur mit Windows-Tools Flashbar)
* http://www.sander-electronic.de/be00069.html (einzelne MPU's)

Linux-Tools:
* http://openocd.berlios.de/web/ (JTAG-Tool)
* http://www.codesourcery.com/gnu_toolchai…?@template=lite (Toolchain / lite)
* http://rcos.codingmonkey.de/Downloads/Co…olchain_0.1.deb (Toolchain / thumb2 / Debian)
* http://tuxotronic.org/wiki/tutorial/stm3…flash-over-uart (Flash-Tool / Python)

Sonstiges:
* http://www.gnuarm.org/
* http://www.stm32circle.com/hom/index.php
* http://www.linux-arm.org/LinuxKernel/LinuxM3
* http://www.eluaproject.net/en/Building_GCC_for_Cortex

Have fun, feel free
euer Ollili :dumm:

o.dippel

RCLine User

  • »o.dippel« ist der Autor dieses Themas

Wohnort: Büdingen / Hessen

Beruf: Software-Developer

  • Nachricht senden

2

Freitag, 16. Januar 2009, 13:45

Primer 2

Zitat

Original von dr.klepp
bin skeptisch, was primer2 und linux angeht. SDW ist nicht im openOCD drinnen.

wahrscheinlich muss man das ding aber so umbauen, dass man es per jtag flashen kann. wenn du weißt wie das geht, immer raus damit, ich muss das auch tun, mit windoof als zwischenlösung läßt es sich nicht leben.

in virtualbox läuft bei mir ein windoof mit ride7 und dem zeug dazu. die software ist so was von bugg, das ist zum kotzen. neuester schrei ist, dass nach jedem flashen der usb-bus zurückgesetzt werden muss, weil das ver** flashprogramm den bus nicht korrekt schließt. ergo bekommt der primer keinen reset :wall:


Hast du Infos zu 'SDW', kannte ich bisher nicht :shy:
Das mit dem JTAG schau ich mir mal an,
doch ich denke es wird einfacher es über Seriell-1 zu versuchen.


:w

3

Freitag, 16. Januar 2009, 14:10

SWD = Serial Wire Debug

was das tolles kann, was jtag nicht kann, wissen die marketinggötter.

seriell-1? bitte bitte mach dass das geht! (bisher 2 wochen auf ride und windoof ver** ... ich sag' mal lieber nichts mehr dazu)

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »dr.klepp« (17. Januar 2009, 01:07)


o.dippel

RCLine User

  • »o.dippel« ist der Autor dieses Themas

Wohnort: Büdingen / Hessen

Beruf: Software-Developer

  • Nachricht senden

4

Freitag, 16. Januar 2009, 15:01

Kann dir halt nur in der Theorie helfen (hab noch keine Hardware).

Aber wenn man den Schaltplan mal anschaut,
sieht man das R10-R12 an den BOOT(1/2) Pins hängt.

BOOT0 muss auf +3.2V
BOOT1 auf GND

Für BOOT0 muss nur der R12 gegen ein Jumper oder Schalter getauscht werden.
und von BOOT1 (R10) nur eine Brücke zu GND.
Damit hat man ihn schonmal im Seriell-Boot-Mode :D

Das andere Problem ist Seriell1,
denn dort hängt der IRDA-Port dran (direkt / ohne Widerstände) :no: .

Also, entweder raus mit dem Teil (U7 / IR-Tranceiver: TFDU4300) :no:

Oder man sorgt dafür, das dessen CS-Leitung auf das richtige Potential gezogen wird,
und Programmiert per IRDA-Adapter (Eigenbau ???) :ok:

5

Freitag, 16. Januar 2009, 21:56

ich hab' mal die dingerchen am print identifiziert, siehe bild.

ich würd' den U7 entfernen, wer braucht schon infrarot? das ding ist sowieso zu schwach.

der draht von R10 nach masse soll kein problem sen, lötponkte am masse-layer gibt's ja jede menge.

heikel ist nur der einbau vom schalter, das ist eine fuzzelarbeit. es geht aber auch anders, zumindest laut http://tuxotronic.org/wiki/tutorial/stm3…flash-over-uart : "Connect nDTR of serial port to Reset point via semi-key and/or connect button to Reset and GND points on primer board." - dann soll sich das ding mit python flasher programmieren lassen.

liege ich da richtig?
»zwieblum« hat folgendes Bild angehängt:
  • mod.jpg

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »dr.klepp« (16. Januar 2009, 22:09)


o.dippel

RCLine User

  • »o.dippel« ist der Autor dieses Themas

Wohnort: Büdingen / Hessen

Beruf: Software-Developer

  • Nachricht senden

6

Samstag, 17. Januar 2009, 00:40

Hi,

Zitat


heikel ist nur der einbau vom schalter, das ist eine fuzzelarbeit. es geht aber auch anders, zumindest laut http://tuxotronic.org/wiki/tutorial/stm3...flash-over-uart : "Connect nDTR of serial port to Reset point via semi-key and/or connect button to Reset and GND points on primer board." - dann soll sich das ding mit python flasher programmieren lassen.
liege ich da richtig?


Ja,
im Prinzip so wie beim Primer1 (Da haste auch gleich die richtigen Pins von U7)
aber darauf achten, das die mit DTR/RTS auch die mit 3.2V-TTL Pegel meinen,
und nicht direkt an die +-15V der RS232.

Hab heute irgendwo gelesen,
das das 1. Layout (aktuelle ?) einen kleinen Fehler hat,
und die Masse-Leitung am Spannungs-Regler zu schwach ist und durchbrennen kann.
Also wenn du schon mal dabei bist , nochmal eine kleine Brücke zu GND ;) (leider hab ich den Link verloren).

:w

EDIT: Achtung: R12 ist eine Brücke (0Ohm)

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »o.dippel« (17. Januar 2009, 00:49)


7

Samstag, 17. Januar 2009, 01:02

link ist irgendwo in http://www.stm32circle.com . übrigens sind die gerber-files vom primer2 nicht ident mit dem print vom primer2 :wall:

am primer1 hab' ich mittlerweile FreeRTOS laufen. mal schaun, ob das besser ist als CircleOS - ehrlich gesagt, schlechter kann ich mir nicht vorstellen ...

8

Samstag, 17. Januar 2009, 20:52

rlink dongle am primer2 ist aus unerfindlichen gründen gestorben. damit geht mein primer2 wieder zurück :angry:

vielleicht funktioniert primer3 ja besser oder raisonace kriegt dir qualitätsprobleme in den griff. damit ist bei mir primer1 der einzige primer :shake:

9

Freitag, 23. Januar 2009, 02:00

olli, ih hab' da ein kleines problem: sobald ein interrupt auftritt, schmeißts das programm (ich hab' deinen gcc genommen). hast du den von codesourcery in verwendung?

o.dippel

RCLine User

  • »o.dippel« ist der Autor dieses Themas

Wohnort: Büdingen / Hessen

Beruf: Software-Developer

  • Nachricht senden

10

Freitag, 23. Januar 2009, 16:25

Hi,

Zitat

olli, ih hab' da ein kleines problem: sobald ein interrupt auftritt, schmeißts das programm (ich hab' deinen gcc genommen).

Hab kein Problem mit Interrupts !!!
Beschreibe mal näheres (code).

Zitat

hast du den von codesourcery in verwendung?


:puke: Nöö :D

:w

11

Freitag, 23. Januar 2009, 23:29

danke, das hat schon geholfen :)

hab' circleos-3.3 jetzt mit deiner toolchain compiliert, funktioniert. waren anscheinend nur ein paar defines,

arm-elf-gcc -MD -D_STM32F103RBT6_ -D_STM3x_ -D_STM32x_ -mthumb -mcpu=cortex-m3 <source.c> -o <source.o>

und die sache rennt :ok:

arm-elf-gdb rennt auch mit openocd :D

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »dr.klepp« (23. Januar 2009, 23:29)