STM32 mit Codesourcery will kein C++

Gast #1673103
Lesenswert?

Hallo zusammen,
Ich beschäftige mich seit kurzer Zeit mit dem STM32 und benutze den 
STM32F105RB, also mit 128k Flash und 32k RAM.

Zum Einstieg benutze ich das Projekt "stm32_chan_fat" von M. Thomas.
Das Linkerskript habe ich an den größeren RAM angepasst und es 
funktioniert auch alles gut.
Ich kann das Programm in den Flash laden und debuggen.
Zum testen lasse ich einfach einen Portpin toggeln.

Jetzt wollte ich Templates benutzen und habe dafür auf C++ umgeschaltet.
main.c in main.cpp umbenannt und im makefile bei CPPSRC eingefügt.

Das Programm läuft sauber an, aber nur ein paar Zyklen, dann ist Ruhe.
Zylin zeigt das Programm weiter als running an, aber der Portpin toggelt 
nicht mehr.

Ich bin ziemlicher Neuling auf dem Gebiet.
Muss ich noch etwas anpassen, damit es mit C++ sauber läuft?

Vielen Dank im Voraus!
Flo
Moderator Persönliche Seite #1673272
Lesenswert?

Im "STM32 ChaN-Fat"-Projekt habe ich, wenn richtig erinnert noch nicht 
alles reingepackt, was für C++-Unterstützung erforderlich ist 
(Linker-Script und Startup). Mglw. ist dieses Projekt eine bessere Basis 
für Experimente mit C++: 
http://www.siwawi.arubi.uni-kl.de/avr_projects/arm_projects/index.html#cm3_cpp1 
- es ist nicht allzu ausgiebig getestet (eigentlich nur mit dem 
enthaltenen Demo-Code, also nicht mit templates). Rückmeldungen und 
Fehlerberichte willkommen.
(Habe den Thread ins "GCC" Forum verschoben - passt dort besser)
Gast #1673479
Lesenswert?

So, schon das nächste Problem.
Mit dem C++ Projekt scheinen keine Interrupts zu laufen.
Ich will USART1 mit TX Interrupt benutzen.
Der gleiche Code funktioniert im "stm32_chan_fat" aber nicht im C++ 
Projekt.
Vielleicht weißt Du auf die Schnelle, woran das liegen kann?

Vielleicht bin ich aber auch mit C++ falsch.
Ich habe eine schöne Template-Funktion gefunden, die den Zugriff auf 
Port Pins sehr einfach macht.
http://www.webalice.it/fede.tft/stm32/stm32_gpio_and_template_metaprogramming.html
Deshalb und weil C++ noch einige nette Erweiterungen zu C hat, wollte 
ich C++ benutzen.
Ich könnte die Portzugriffe natürlich auch ohne Templates machen.
Unter C gibt es bestimmt auch Tricks, das zu vereinfachen.

Macht es Sinn, auf C++ zu gehen, oder besser C?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren