Forum: Mikrocontroller und Digitale Elektronik STM32 Bootloader Interrupts in Anwendung funktionieren nicht mehr


von Marco M. (marco123)


Lesenswert?

Hallo,
ich habe einen Bootloader für CAN für den STM32 geschrieben und alles 
funktioniert soweit. Mein Bootloader benutzt außer Systick keine 
Interrupts.

Bevor ich aus dem Bootloader zur Application springe, setze ich brav den 
Systick zurück.
1
        RCC_DeInit();
2
        SysTick->CTRL=0;
3
        SysTick->LOAD=0;
4
        SysTick->VAL=0;

in meiner Application benutze ich den Systick wieder um eine LDE blinken 
zu lassen.

Das war meine Testumgebung und alles hat funktioniert. Froh über meinen 
Triumpf habe ich mal eine andere Anwendung aufgespielt. Diese benutzte 
auch lediglich den Systick und funktionierte auch. Sobald ich jetzt eine 
Anwendung mit Interrupt Aufspiele funktionieren die Interrupts nicht. 
Das Programm verhält sich wie als würde ich vergessen haben die ISR 
einzufügen.

Natürtlich habe ich in der system_stm32f4.c den vectortabellenoffset 
deklariert. Sollte auch funktioniert haben, denn der resethandler wird 
ordnungsgemäß aufgerufen. Den benutze ich, um aus dem Programm wieder in 
den Bootloader zu kommen.

Die Funktion __disableirq() im bootloader hilft leider auch nicht.


Danke schonmal!!!

PS: Wenn der Bootloader einwandfrei funktioniert, werde ich ihn hier 
gerne zu Verfügung stellen. Er ist kompatibel mit dem CAN Bootloader von 
de Robotergruppe Aachen, sodass mit der selben PC Seite sowohl AVR als 
auch STMs programmiert werden können.

von Martin K. (martinko)


Lesenswert?

Hi,

Setzt Dein Bootloader die Adresse der Interrupttabelle (SCB->VTOR) vor 
dem Sprung in die Anwendung richtig?

Gruß Martin

von Marco M. (marco123)


Lesenswert?

Nein das mache ich erst in der Anwendung, indem ich in der 
stm32_system.c den Vectortableoffset setze.
Ich habe jetzt etwas herumgespielt und den teil meiner software, der von 
der isr abhängt nocheinmal neu eingefügt( war aus einem beispiel ) und 
jetzt läuft es... Ich habe mir sofort die alte version aus dem svn 
wieder angeschaut und sehe einfach keinen unterschied....
Total seltsam!!

von Waldi (Gast)


Lesenswert?

Hallo,

funktioniert dein Bootloader?
Ich hätte Interesse an einem CAN Bootloader mit dem ich den ST neu 
programmieren kann.

von Frank A. (_frank)


Lesenswert?

Hallo Marco,

gibt es vielleicht etwas Neues zu deinem Bootloader?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.