Hallo.
Hab ein Problem, was ich mir nicht erklären kann:
Verwende Keil 5.23 & STM32F405 mit CAN1. CMSIS 4.5.0 & STM32F4xx_DFP
1.0.8.
Habe eine Setup-Routine für den CAN1 geschrieben. Habe folgende 4 lokale
Vars in Verwendung:
void canSetup(void)
{
int i;
GPIO_InitTypeDef GPIO_InitStructure;
CAN_InitTypeDef CAN_InitStructure;
NVIC_InitTypeDef NVIC_InitStructure;
CAN_FilterInitTypeDef CAN_FilterInitStructure;
... eigentlicher Init Code ....
}
Wenn ich nun mit Debugger starte (Ctrl-F5) und mit F5 laufen lasse,
erhalte ich im Command-Fenster "Cannot access memory" und im Disassembly
lauter "0000 movs r0,r0". Wenn ich allerdings mit F10 bis zur while
(1)-Schleife in main.c im Einzelschritt durchgehe, kann ich die
Anwendung danach laufen lassen.
Vertausche ich allerdings die Reihenfolge der Vars wie unten, geht
wieder alles wie erwartet.
void canSetup(void)
{
int i;
CAN_InitTypeDef CAN_InitStructure; (getauscht)
GPIO_InitTypeDef GPIO_InitStructure; (getauscht)
NVIC_InitTypeDef NVIC_InitStructure;
CAN_FilterInitTypeDef CAN_FilterInitStructure;
... eigentlicher Init Code ....
}
Hab jetzt schon mehrmals gegen geprüft. Auch schon PC & Hardware
komplett ausgeschaltet. Hab immer das gleiche Verhalten.
Hat da jemand eine Ahnung was dahinter steckt? Das Verhalten macht mich
gerade etwas nachdenklich...
Vielen Dank.
Pepe.