Forum: Mikrocontroller und Digitale Elektronik STM32&Keil Cannot access Memory Fehler


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Pepe (Gast)


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

von Rufus Τ. F. (rufus) (Moderator) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Hast Du Dir mal angesehen, wie groß diese vier Strukturen sind, und das 
mit der Größe des Stacks abgeglichen?

von Pepe (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Stacksize ist 1024. Und die 4 Structs haben insgesamt 38 Byte. Sollte 
also kein Thema sein.

Außerdem kann ich mir nicht erklären, warum die Reihenfolge der Structs 
was ausmacht.

Hab das Ganze jetzt noch auf einem anderem PC ausprobiert und habe dort 
das gleiche Ergebnis. Die eine Reihenfolge funktioniert, die andere 
macht beim Starten Probleme.

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]
  • [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.