Gast
#4993885
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.