20200401-01 ARM基礎アセンブリ内容説明


1基本形式led.s
.global _start //    

_start:

  



//   

loop:

    b loop


2コードのコンパイル
arm-linux-gnueabihf-gcc -g -c led.s -o led.o

-gデバッグ情報の出力
-cコンパイルしてリンクしない
 
 
3リンク先を確定し、oファイルを指定した場所へリンクする
arm-linux-gnueabihf-ld -Ttext 0x87800000 led.o -o led.elf

-ttextリンクアドレスの指定
-o elfファイルの生成
 
4記録生成に必要なもの.binファイル
arm-linux-gnueabihf-objcopy -O binary -S -g led.elf led.bin

-O出力フォーマットbinaryバイナリの指定
-Sソースファイルの再配置情報やシンボル情報はコピーしない
-gソースファイルのデバッグ情報をコピーしない
 
5ファイルの内容を表示する必要がある場合
arm-linux-gnueabihf-objdump -D led.elf > led.dis

ファイルをバイナリからアセンブリコードに逆送金する
 
6 Makefile
led.bin:led.s

    arm-linux-gnueabihf-gcc -g -c led.s -o led.o

    arm-linux-gnueabihf-ld -Ttext 0x87000000 led.o -o led.elf

    arm-linux-gnueabihf-objcopy -O binary -S -g led.elf led.bin

    arm-linux-gnueabihf-objdump -D led.elf > led.dis

clean:
    rm -rf *.o led.bin led.elf led.dis