Hallo,
ich möchte ein aktuelles Firmwareprojekt eines STM32F4xx, geschrieben in 
C, in ein C++ Projekt migrieren, um für ein Firmwareupdate Klassen etc. 
nutzen zu können. Es findet zudem ein Wechsel der IDE statt (CooCox zu 
TrueStudio). Kompilierfähig ist bereits alles. Wenn ich ein C Projekt 
unter TrueStudio anlege, funktioniert die Timing Funktion mit Systick 
problemlos. Sobald ich ein C++ Projekt verwende, kompiliert auch alles 
ohne Probleme, beim Debuggen bleibt das Programm aber in der Delay 
Funktion hängen.
Die Variable Systick_Delay ist als
| 1 |  static volatile uint32_t Systick_Delay;
 | 
 in der systick.cpp Datei angelegt.
Code für die µs Delay Funktion:
| 1 | void delay_us(volatile uint32_t delay)
 | 
| 2 | {
 | 
| 3 |   Systick_Delay = delay;
 | 
| 4 | 
 | 
| 5 |   while(Systick_Delay != 0);
 | 
| 6 | }
 | 
Initialisierung des Systicks:
| 1 | void systick_init(void)
 | 
| 2 | {
 | 
| 3 |   RCC_ClocksTypeDef RCC_Clocks;
 | 
| 4 | 
 | 
| 5 |   // alle Variablen zurücksetzen
 | 
| 6 |   Systick_Delay=0;
 | 
| 7 | 
 | 
| 8 |   RCC_GetClocksFreq(&RCC_Clocks);
 | 
| 9 |   SysTick_Config((RCC_Clocks.HCLK_Frequency / 3000000));
 | 
| 10 | }
 | 
Die Delay Funktionen für die Millisekunden und Sekunden sind aus der µs 
- Funktion abgeleitet.
Der Systick Handler sieht folgendermaßen aus:
| 1 | void SysTick_Handler(void)
 | 
| 2 | {
 | 
| 3 |   //Tick für Delay
 | 
| 4 |   if(Systick_Delay != 0x00)
 | 
| 5 |   {
 | 
| 6 |   Systick_Delay--;
 | 
| 7 |   }
 | 
| 8 | }
 | 
Hat irgendjemand eine Idee, was C++ stören könnte, sodass die Delay 
Funktion plötzlich nicht mehr funktioniert? Ich bin mittlerweile total 
ratlos.
Ich habe bereits die CooCox - Standardkonfiguration, die beim erstellen 
des Projekts angelegt wird, komplett in TrueStudio übernommen, habe die 
systick - Dateien als .c deklariert und mit
 included, habe alle Clock Settings incl. PLL überprüft, aber ich finde 
einfach keinen Fehler.