Ich versuche, diese Inline-Code für ARMV4T Chip zu kompilieren,GCC: ungültige literale Konstante: Pool muss näher
asm ("LDR R2, =a1");
gcc antwortet, dass
ungültig literale Konstante: Pool näher sein muss
Ich habe versucht, a1 in der Nähe der Funktion zu bewegen, aber immer noch den gleichen Fehler.
Wie behebt man diesen Fehler?
'a1' ist ein Registername; Können Sie ein anderes Etikett ausprobieren, um zu sehen, ob es funktioniert? Meinst du eine Bezeichnung oder den Wert '0xa1'? Sie können 'asm (" ldr r2, = a1 \ nb 1f \ n .ltorg \ n 1: \ n ")' verwenden, was immer funktionieren sollte, aber normalerweise brauchen Sie das nicht. –
Da Sie gcc verwenden, wie wäre es mit erweiterten asm und Auflisten von a1 als Eingabe? –