Forum: Mikrocontroller und Digitale Elektronik STM32F4 Assembler


von kilaz (Gast)


Lesenswert?

Hi,
ich versuche gerade mein Assembler etwas aufzufrischen und moechte 
deshalb folgendes machen:

unsigned int buffer[20];
buffer[0] = 0x10000FA5; //Address: 0x10000FA0
buffer[1] = 0xe1a00000; //Address: 0x10000FA4 NOP
buffer[2] = 0xe1a00000; //Address> 0x10000FA8 NP

_asm __volatile_
(
  "movw R1, #0x0fa0\n"
  "movt R1, #0x1000\n"
  "ldr pc, [r1, #0]\n"
);

In buffer[0] steht die Adresse von buffer[1] drinnen. In buffer[1] steht 
die Instruktion, welche ich ausfuehren will (NOP). Im Assemblercode lade 
ich zuerst die Adresse von buffer[0] in R1 und lade darauf hin den 
program counter mit dem Wert an der Adresse in R1. Nun betraegt der PC 
0x10000FA5. Allerdings bekomme ich dann diese Meldung: 
prvGetRegistersFromStack (pulFaultStackAddress=0x10000f78 
<Task1Stack+3960>).
Sieht jemand das Problem? Stack sollte ja executable sein, MPU sollte 
deaktiviert sein.

von Dr. Sommer (Gast)


Lesenswert?

Warum schon wieder?
Beitrag "STM32 Assembler"

von kilaz (Gast)


Lesenswert?

nun möchte ich Code vom Stack ausführen, d.h. der PC hat nun einen Wert 
vom Stackbereich - das funktioniert leider nicht so wie im anderen 
Thread

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
Noch kein Account? Hier anmelden.