arm-linux-gcc 编译选项
-c 预处理、编译和汇编源文件,但不进行连接
-S 编译后停止,不进行汇编
-E 预处理后停止,不进行编译
-o 制定输出文件
-Wall 警告信息
-g 产生调试信息
-O O0 O1 O2 O3 除了O0不优化,其余都优化
-llibrary 连接名为library的库文件
-nostartfiles 不连接标准系统启动文件
-nostdlib 不连接标准库文件
-static 静态编译
arm-linxu-ld选项
直接制定代码段、数据段、BSS段
-Ttext startaddr
-Tdata startaddr
-Tbss startaddr
-Txxx.lds 使用链接脚本
arm-linux-objcopy
-O 指定输出格式,常见有binary
-S 不从源文件中复制重定位信息和符号信息到目标文件中去
arm-linux-objdump
-D 反汇编所有段
eg. arm-linux-objdump -D elf_file > dis_file
一个现成的Makefile
led_on.bin:led_on.S main.c
arm-linux-gcc -g -c -o led_on.o led_on.S
arm-linux-gcc -g -c -o main.o main.c
arm-linux-ld -Ttext 0x00000000 -g led_on.o main.o -o led_on_elf
arm-linux-objcopy -O binary -S led_on_elf led_on.bin
arm-linux-objdump -D -m arm led_on_elf > led_on.dis
clean:
rm -f led_on.bin led_on_elf *.o
uboot状态下,tftp用法:tftp addr filename
bl main;bl指令第一是跳转,第二是吧返回值保存到lr寄存器
阅读(2556) | 评论(0) | 转发(0) |