引用韦东山gpio例子
led_on_c.bin : crt0.S led_on_c.c
arm-linux-gcc -g -c -o crt0.o crt0.S
arm-linux-gcc -g -c -o led_on_c.o led_on_c.c
arm-linux-ld -Ttext 0x0000000 -g crt0.o led_on_c.o -o led_on_c_elf
arm-linux-objcopy -O binary -S led_on_c_elf led_on_c.bin
arm-linux-objdump -D -m arm led_on_c_elf > led_on_c.dis
clean:
rm -f led_on_c.dis led_on_c.bin led_on_c_elf *.o
依赖 crt0.S led_on_c.c 执行命令
1、 arm-linux-gcc -g -c -o crt0.o crt0.S
gcc 编译
参数 -g 产生gdb调试信息、-c只编译不链接 、-o 生成文件名 crt0.S 表示源文件
2、 arm-linux-ld -Ttext 0x0000000 -g crt0.o led_on_c.o -o led_on_c_elf
ld 链接 -Ttext 0x0000000 代码从0地址开始保存
3、 arm-linux-objcopy -O binary -S led_on_c_elf led_on_c.bin
objcopy 格式转换
-O binary 表示输出格式为二进制 -S 不从源文件中复制重定位信息和符号信息到目标文件中.
led_on_c_elf 复制源文件 led_on_c.bin 输出的文件名字
4、 arm-linux-objdump -D -m arm led_on_c_elf > led_on_c.dis
objdump 查看反汇编代码
-D 反汇编所有段 -m arm 指定反汇编目标文件时使用arm的架构
led_on_c_elf > led_on_c.dis 把led_on_c_elf 的信息 输出到 led_on_c.dis 文件里