ST32, GCC, Prozessor-Status-Wort schreiben

Gast #2372562
Lesenswert?

Hallo!

laut ARM infocenter schreibt man beim Cortex-M3 das PSW folgendermaßen:
1
msr apsr,r0

Ich bekomme dabei die GCC assembler-Fehlermeldung: writing to APSR 
without specifying a bitmask is deprecated

hingegen funktioniert das ganze, wenn man folgendes schreibt.
1
msr apsr_nzcvq,r0

Laut ARM Webseite gibt es aber für den Cortex-M3 die Option _nzcvq 
nicht, und msr apsr alleine müsste eindeutig sein.

In den Compilereinstellungen ist explizit festgelegt, dass für den CM3 
kompiliert werden soll. Und die kompilierte Datei funktioniert auch auf 
dem ST32 (mit der Option _nzcvq) einwandfrei. Trotzdem will ich _nzcvq 
verwenden, weil es vielleicht mit anderen GCC-Versionen?? Probleme 
macht?
Toolchain: aktuelle Codesourcery g++ lite eabi


PS: Bei einem nxp17xx mit lpcxpresso reicht ein msr apsr aus

Jemand ein ähnliches Problem?
Gast #2377758
Lesenswert?

Vielen Dank!
Scheinbar wurde das noch nicht auf der arm-webseite angepasst.
http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0489c/Cihibbbh.html
1
Show/hideSyntax (ARMv7-M and ARMv6-M only)
2

3
You can also use the following syntax on ARMv7 and ARMv6M.
4

5
MSR{cond} psr, Rm
6

7
..
8
where psr can be any of: APSR, IPSR, EPSR ...

Aber im architecture reference manual (Seite 799) konnte ich genau das 
nachvollziehen was du geschrieben hast. Vielen Dank nochmal!

Is auch irgendwie logisch, da mit den Cortex-M4 mit DSP das flag _g 
verwendet werden kann.

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