在linux中输入vi Makefile 来实现创建Makefile文件
注意:命令行前必须加TAB键
例如:将两个文件led.c和crt0.S汇编文件,制作一个Makefile文件
1 1 led.bin : crt0.S led.c
2 2 arm-linux-gcc -c -o crt0.o crt0.c
3 3 arm-linux-gcc -c -o led.o led.c
4 4 arm-linux-ld -Ttext 0x00000000 -g crt0.o led.o -o led_elf
5 5 arm-linux-objcopy -O binary -S led_elf led.bin
6 6 arm-linux-objdump -D -m arm led_elf > led.dis
7 7 clean:
8 8 rm -f led_elf led.dis led.bin *.o
led.bin : crt0.S led.c 指的是依赖关系,led.bin是目标文件,:后面是依赖文件
arm-linux-gcc 编译选项
-o 编译及链接,会生成一个exe可执行文件
-Wall 指定产生全部的警告信息
-O/-O2/-O3 数字越高,代表优化的更多,可以使生成的执行文件的提高执行效率
-c 编译不链接,会生成一个*.obj文件,若后面加了-o,则表示指定输出文件名称
-static 静态链接,生成的文件会非常大, 好处在于不需要动态链接库,也可以运行
-S 只激活预处理和编译,就是指把文件编译成为汇编代码
例如:
arm-linux-gcc -c -o led.o led.c :编译不链接
arm-linux-gcc -o led led.c :编译以及链接
arm-linux-ld 连接选项
-Ttext 0x00000000 指代码段头地址为0x00000000
-T链接脚本 指使用链接脚本来进行更复杂的地址设置,包括了代码段,数据段,bss段等
-o 后面指的将多个文件连接在一起,生成一个obj文件,上面的名称是led_elf。
-pie 生成动态链接地址段,一般在新版uboot里会看到
arm-linux-objcopy 复制选项,支持格式转换
-O binary 用来指定生成文件按照后面的格式来输出,其中binary是指生成二进制(.bin)文件。
-S 不从源文件中复制重定位信息和符号信息到目标文件中去
arm-linux-objdump 反编译选项
-D 反编译所有段
-b binary 指定反编译目标文件格式
-m ram 指定反编译目标文件所需的架构,这里是ram架构
上一篇:Linux 2440 LCD 控制器
下一篇:S3C6410 SPI全双工读写流程分析(原创)
推荐阅读最新更新时间:2024-11-17 13:00
设计资源 培训 开发板 精华推荐
- SM3257EN 写保护 U盘 USB2.0
- TS9010KCX5 RF 2.5mA, 1.5V CMOS LDO with Enable 典型应用电路
- 使用 Microchip Technology 的 MIC35302 的参考设计
- DER-578 - 2.5W, 通用输入,非隔离反激式转换器
- 使用 Analog Devices 的 LT1317BIS8 的参考设计
- 满足AMD K8低功耗移动处理器规范的电源
- ADP165CP-EVALZ,ADP165 LFCSP LDO 线性稳压器评估板
- Si4720-EVB,Si4720 高性能、76 至 108 MHz 数字无线电调谐器评估板
- LT3973IDD 5V 降压转换器的典型应用
- 3W, 3.3V, 12V, 20V AC转DC多路输出电子镇流器电源