www.mikrocontroller.net

Forum: Compiler & IDEs STM32 mit Codesourcery will kein C++


Autor: Flo (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

: Verschoben durch Moderator
Autor: Martin Thomas (mthomas) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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... 
- 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)

Autor: Flo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke.
Mit dem Projekt klappt es!

Autor: Flo (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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_a...
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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.