定义一些变量
NAME=led_asm
CROSS_COMPILE = arm-none-linux-gnueabi-
编译
CC = $(CROSS_COMPILE)gcc
链接 将.o文件链接生成.elf文件
LD = $(CROSS_COMPILE)ld
将.elf文件生成.bin
.bin 是纯粹的二进制文件
.elf 包含符号
OBJCOPY = $(CROSS_COMPILE)objcopy
规则
all:
$(CC) -O0 -g -c $(NAME).S -o $(NAME).o
@ # -O0:对代码的优化等级
@ # -g:添加调试信息
@ # -c:只编译不链接
$(LD) -Ttext=0x43c00000 $(NAME).o -o $(NAME).elf
@ # -Ttext=0x43c00000:指定代码的起始位置
$(OBJCOPY) -O binary $(NAME).elf $(NAME).bin
@ # -O binary : 输出二进制文件
clean:
rm -rf *.elf *.bin *.o
install:
@ # 修改为自己的贡献文件夹路径
cp $(NAME).bin /mnt/hgfs/share/
关于命令的变量。
AR
函数库打包程序。默认命令是“ar”。
AS
汇编语言编译程序。默认命令是“as”。
CC
C语言编译程序。默认命令是“cc”。
CXX
C++语言编译程序。默认命令是“g++”。
CO
从 RCS文件中扩展文件程序。默认命令是“co”。
CPP
C程序的预处理器(输出是标准输出设备)。默认命令是“$(CC) –E”。
FC
Fortran 和 Ratfor 的编译器和预处理程序。默认命令是“f77”。
GET
从SCCS文件中扩展文件的程序。默认命令是“get”。
LEX
Lex方法分析器程序(针对于C或Ratfor)。默认命令是“lex”。
PC
Pascal语言编译程序。默认命令是“pc”。
YACC
Yacc文法分析器(针对于C程序)。默认命令是“yacc”。
YACCR
Yacc文法分析器(针对于Ratfor程序)。默认命令是“yacc –r”。
MAKEINFO
转换Texinfo源文件(.texi)到Info文件程序。默认命令是“makeinfo”。
TEX
从TeX源文件创建TeX DVI文件的程序。默认命令是“tex”。
TEXI2DVI
从Texinfo源文件创建军TeX DVI 文件的程序。默认命令是“texi2dvi”。
WEAVE
转换Web到TeX的程序。默认命令是“weave”。
CWEAVE
转换C Web 到 TeX的程序。默认命令是“cweave”。
TANGLE
转换Web到Pascal语言的程序。默认命令是“tangle”。
CTANGLE
转换C Web 到 C。默认命令是“ctangle”。
RM
删除文件命令。默认命令是“rm –f”。