Определите некоторые переменные
ИМЯ = led_asm
CROSS_COMPILE = arm-none-linux-gnueabi-
Компилировать
CC = $ (CROSS_COMPILE) gcc
Ссылка на связывание файлов .o для создания файлов .elf
LD = $ (CROSS_COMPILE) ld
Создать .bin из .elf файла
.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: выходной двоичный файл
чистый:
rm -rf * .elf * .bin * .o
install:
@ # Измените путь к вашей собственной папке с вкладом
cp $ (NAME) .bin / mnt / hgfs / share /
По поводу командной переменной.
С УЧАСТИЕМ
函数库打包程序。默认命令是“ar”。
ТАК КАК
汇编语言编译程序。默认命令是“as”。
CC
C语言编译程序。默认命令是“cc”。
CXX
Компилятор языка C ++. Команда по умолчанию - «g ++».
CO
从 RCS文件中扩展文件程序。默认命令是“co”。
CPP
C程序的预处理器(输出是标准输出设备)。默认命令是“$(CC) –E”。
FC
Компиляторы и препроцессоры для Fortran и Ratfor. Команда по умолчанию - «f77».
ПОЛУЧИТЬ
从SCCS文件中扩展文件的程序。默认命令是“get”。
LEX
Lex方法分析器程序(针对于C或Ratfor)。默认命令是“lex”。
ПК
Компилятор языка Паскаль. Команда по умолчанию - «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”。
Ткать
转换Web到TeX的程序。默认命令是“weave”。
CWEAVE
转换C Web 到 TeX的程序。默认命令是“cweave”。
Клубок
转换Web到Pascal语言的程序。默认命令是“tangle”。
CTANGLE
转换C Web 到 C。默认命令是“ctangle”。
RM
删除文件命令。默认命令是“rm –f”。