20200401-01 ARM基礎アセンブリ内容説明
1基本形式led.s
2コードのコンパイル
-gデバッグ情報の出力
-cコンパイルしてリンクしない
3リンク先を確定し、oファイルを指定した場所へリンクする
-ttextリンクアドレスの指定
-o elfファイルの生成
4記録生成に必要なもの.binファイル
-O出力フォーマットbinaryバイナリの指定
-Sソースファイルの再配置情報やシンボル情報はコピーしない
-gソースファイルのデバッグ情報をコピーしない
5ファイルの内容を表示する必要がある場合
ファイルをバイナリからアセンブリコードに逆送金する
6 Makefile
.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