STM32F100RB (discovery) geht nicht im Simulator

Gast #2590697
Hallo,

ich versuche das STM32-Discovery Board auch im Simulator zu betreiben.
Über ST-Link funktioniert uVision4 auf der realen Hardware wunderbar.
Aber im Simulator lässt sich das Projekt nicht starten.
Die Fehlermeldung lautet:
*** error 65: access violation at 0x0000000C : no 'read' permission

PC ist übrigens auf 0 initialisiert.

Den Effekt habe ich auch mit den unter 
C:\keil\arm\boards\st\stm32-discovery mitgelieferten Beispielen.

Ist das ein bekanntes Problem, oder liegt es an meiner Version?

Ich habe
MDK-Lite        V4.22a
SARMCM3.DLL     V4.22a
DARMSTM32.DLL   V1.63.0.0 bzw.
DCM.DLL         V1.3.0.0

Oder brache ich bestimmte Parameter?

Ich habe schon einiges probiert - allerdings ohne Erfolg.

Vielen Dank
rainer
Gast #2591637
Hallo Rainer,

versuche es mit einem Initialization File unter
Options for Target (Simulator Seite).

Inhalt:

/* 128k flash */
map 0x08000000,  0x08020000 READ EXEC

/* 8k ram */
map 0x40000000,  0x40002000 READ WRITE

/* register */
map 0x40000000,  0x40030000 READ WRITE

xPSR=0x01000000
SP=0x20000B70
PC=0x0800026C

Evt. musst du die Adressen für den PC und SP noch anpassen.

Gruß
Gast #2591962
Hallo,

vielen Dank für die schnelle Antwort.

Der Zugriffsfehler auf den Peripheriebereich sind jetzt weg.
Allerdings ist das Hauptproblem noch immer da.

In der Interrupt-Vektor-Tabelle steht am Anfang der Reset-Vektor und der 
initiale Stackpointer. Die IVT liegt auf Adresse 0x08000000.
Mit  _WDWORD(0xE000ED08, 0x08000000) wird auch das Vektorregister dahin 
initialisiert.

Mit
   sp = _RDWORD(0x08000000)
   pc = _RDWORD(0x08000004)
erfolgt diese Initialisierung auch beim ersten Start des Debuggers.
D.h. die Vektortabelle ist korrekt aufgebaut.

Beim späteren RESET wird dies allerdings nicht mehr ausgeführt. PC zeugt 
dann auf 0, was natürlich zu Problemen führt.

Beim debuggen mit STLink auf der Hardware werden beim RESET die Register 
SP und PC richtig initialisiert.

Grüße
rainer
Gast #2592059
Hallo,
vielen Dank für den Hinweis.

Dann werde ich mal die beiden Kandidaten vergleichen und die Adressliste 
vergleichen. Wenn diese abwärtskompatibel ist, dann reicht mir das 
vollkommen.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.