STM32F100RB (discovery) geht nicht im Simulator

Gast #2590697
Lesenswert?

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
Lesenswert?

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
Lesenswert?

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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren