Definir algunas variables
NOMBRE = led_asm
CROSS_COMPILE = arm-none-linux-gnueabi-
Compilar
CC = $ (CROSS_COMPILE) gcc
Enlace para enlazar archivos .o para generar archivos .elf
LD = $ (CROSS_COMPILE) ld
Generar .bin desde el archivo .elf
.bin es un archivo binario puro
.elf contiene símbolos
OBJCOPY = $ (CROSS_COMPILE) objcopy
regla
all:
$ (CC) -O0 -g -c $ (NAME) .S -o $ (NAME) .o
@ # -O0: nivel de optimización del código
@ # -g: agregar información de depuración
@ # -c: solo Compilar no vincula
$ (LD) -Ttext = 0x43c00000 $ (NAME) .o -o $ (NAME) .elf
@ # -Ttext = 0x43c00000: Especifique la posición inicial del código
$ (OBJCOPY) -O binary $ (NAME). elf $ (NAME) .bin
@ # -O binary: archivo binario de salida
limpio:
rm -rf * .elf * .bin * .o
install:
@ # Modifique la ruta a su propia carpeta de contribuciones
cp $ (NAME) .bin / mnt / hgfs / share /
Respecto a la variable de comando.
CON
函数库打包程序。默认命令是“ar”。
COMO
汇编语言编译程序。默认命令是“as”。
CC
C语言编译程序。默认命令是“cc”。
CXX
Compilador de lenguaje C ++. El comando predeterminado es "g ++".
CO
从 RCS文件中扩展文件程序。默认命令是“co”。
CPP
C程序的预处理器(输出是标准输出设备)。默认命令是“$(CC) –E”。
FC
Compiladores y preprocesadores para Fortran y Ratfor. El comando predeterminado es "f77".
OBTENER
从SCCS文件中扩展文件的程序。默认命令是“get”。
LEX
Lex方法分析器程序(针对于C或Ratfor)。默认命令是“lex”。
ordenador personal
Compilador de lenguaje Pascal. El comando predeterminado es "pc".
YACC
Analizador de gramática Yacc (para programas C). El comando predeterminado es "yacc".
YACCR
Analizador de gramática Yacc (para el programa Ratfor). El comando predeterminado es "yacc -r".
MAKEINFO
转换Texinfo源文件(.texi)到Info文件程序。默认命令是“makeinfo”。
TEXAS
从TeX源文件创建TeX DVI文件的程序。默认命令是“tex”。
TEXI2DVI
从Texinfo源文件创建军TeX DVI 文件的程序。默认命令是“texi2dvi”。
TEJIDO
转换Web到TeX的程序。默认命令是“weave”。
CWEAVE
转换C Web 到 TeX的程序。默认命令是“cweave”。
MARAÑA
转换Web到Pascal语言的程序。默认命令是“tangle”。
CTANGLE
转换C Web 到 C。默认命令是“ctangle”。
RM
删除文件命令。默认命令是“rm –f”。