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
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ß
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
Die Device-Simulation wird von Keil nicht für alle Derivate und nie vollständig gepflegt. Inbesondere der STM32F100RB http://www.keil.com/dd/chip/5086.htm ist so ein Kandidat. Gegebenfalls hilft es auf einen anderen Controller umzusteigen (2.Projekt) z.B. auf den STM32F103RB, der simuliert sich besser: http://www.keil.com/dd/chip/4231.htm Gruß
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.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.