arm-linux-gnueabi-compiler-Optionen

Ich bin mit, arm-linux-gnueabi-gcc zum kompilieren von C Programmen für ARM-Prozessoren unter Linux. Allerdings bin ich mir nicht sicher, was ist der Standard-ARM-Modus, für die es kompiliert.

Beispielsweise für den C-code:

test.c

unsigned int main()
{
    return 0x1ffff;
}

arm-linux-gnueabi-gcc -o test test.c

nun, wenn ich einen Blick in das disassembly der main () - Funktion mit objdump, ich kann sehen:

arm-linux-gnueabi-objdump -d test

<main>:

    push    {r7}
    add r7, sp, #0
    movw    r3, #65535  ; 0xffff
    movt    r3, #1
    mov r0, r3
    mov sp, r7
    pop {r7}
    bx  lr

scheint es, dass dies der Demontage für den Daumen-Modus von ARM (wegen dem push-Befehl).

Wie kann ich die Anzeige der Demontage wie folgt vor:

      .sect ".text"
      .global _fn
_fn:  MOVW A1,#65535
      MOVT A1,#1

      BX LR

oder diese

      .sect ".text"
      .global _fn
_fn:  LDR A1, CON1
      BX LR

      .sect ".text"
      .align 4
CON1: .word 0x1ffff

Sah ich dieses Beispiel hier:

http://e2e.ti.com/support/development_tools/compiler/f/343/t/40580.aspx

allerdings bin ich nicht zum anzeigen der Demontage die Art und Weise es wird dort angezeigt.

Dank.

InformationsquelleAutor Neon Flash | 2013-08-20
Schreibe einen Kommentar