ARM Assembler Programmierer anwesend?

Gast #2863556
Lesenswert?

Ich wuerde gerne im IAR Compiler im Inline-Assembler fuer STM32 aus 
einem
Bootloader mein Hauptprogramm anspringen.

Meine Idee:

asm("ldr r0, =0x08008000");
[hier wird dann noch der Stack geladen und dann gesprungen]

Leider sieht der Compiler/Assembler einen Syntaxerror in der Zeile am 
Gleichheitszeichen. Hat jemand eine Idee wie man das Problem loesen 
kann?

Olaf
Gast #2863601
Lesenswert?

Oliver J. schrieb:
> Du kannst keinen 32Bit-Wert in einem Thumb2-Befehl unterbringen. Der ist
> nämlich maximal 32-bit breit. Merkst du was?
>
> Du könntest zum Beispiel die Konstante 0x08008000 im Code (hinter dem
> Sprung) ablegen und relativ zum PC laden.

Das macht LDR Reg,const bereits. Es ist eine Pseudoinstruktion.
Bei MOV Reg,const wäre das richtig.

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