makefile
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验四A/D 接口实验
Makefile解析:
TOPDIR = ../ #表示上层目录
include $(TOPDIR)Rules.mak #上层目录的makefile其中包含了编译规则EXTR A_LIBS += -lpthread #为EXTRA_LIBS追加变量定义..线程函数编译需要
#连接线程的动态库文件
EXEC = $(INSTALL_DIR)/ /ad ./ad #定义目标文件路径
OBJS = term.o #定义依赖文件变量
all: $(EXEC) #Makefile默认从这里执行
$(EXEC): $(OBJS) #初始化文件中的变量推导隐含规则$(CC) $(LDFLAGS) -o $@ $(OBJS) $(EXTRA_LIBS)#初始化文件中的变量推导隐含规则
Install: #安装目标文件伪指令$(EXP_INSTALL) $(EXEC) $(INSTALL_DIR) #安装命令
clean: #clean伪指令
-rm -f $(EXEC) *.elf *.elf2flt *.gdb *.o #clean的命令行
实验五D/A 接口实验
MAKEFILE解释:
#TOPDIR := $(shell cd ..; pwd)
TOPDIR := . #当前目录
#KERNELDIR = /usr/src/linux
#KERNELDIR = /opt/host/armv4l/src/linux
KERNELDIR = /arm2410cl/kernel/linux-2.4.18-2410cl/ #编译驱动模块时需要到内核版本的include文1 件中的Makefile
INCLUDEDIR = $(KERNELDIR)/include
#以下都是定义编译器版本变量
CROSS_COMPILE=armv4l-unknown-linux-
AS =$(CROSS_COMPILE)as
LD =$(CROSS_COMPILE)ld
CC =$(CROSS_COMPILE)gcc
CPP =$(CC) -E
AR =$(CROSS_COMPILE)ar
NM =$(CROSS_COMPILE)nm
STRIP =$(CROSS_COMPILE)strip
OBJCOPY =$(CROSS_COMPILE)objcopy
OBJDUMP =$(CROSS_COMPILE)objdump
#以上都是定义编译器版本变量
CFLAGS += -I.. #定义CFLAGS编译参数
CFLAGS += -Wall -O -D__KERNEL__ -DMODULE -I$(INCLUDEDIR) #追加CFLAGS变量的定义,TARGET = s3c2410-exio.o da_main #定义目标文件的依赖文件
all: $(TARGET) #make默认从这里开始
s3c2410-exio.o:s3c2410-exio.c #定义目标文件的依赖文件
$(CC) -c $(CFLAGS) $^ -o $@ #初始化文件中的变量推导隐含规则,并编译
da_main:da_main.o #定义目标文件的依赖文件
$(CC) $^ -o $@ #初始化文件中的变量推导隐含规则,并编译
clean: #clean伪指令
rm -f *.o *~ core .depend
实验六直流电机
Makefile分析:
TOPDIR = ../ //变量TOPDIR代表顶层目录,赋值为上一层目录include $(TOPDIR)Rules.mak //包含TOPDIR目录中的Rules.mak文件INSTALL_DIR = $(TOPDIR)/bin //安装目录为../bin
EXTR A_LIBS += -lpthread //额外的库lpthread,编译线程程序要用到TARGET = dcm_main //要编译生成的目标
all: $(TARGET)
dcm_main: dcm_main.o // dcm_main是目标,dcm_main.o是依赖$(CC) $(CFLAGS) $^ -o $@
//执行命令:armv4l-unknown-linux-gcc dcm_main.c – o dcm_main
install:
$(EXP_INSTALL) $(TARGET) $(INSTALL_DIR) //执行make install 时执行这命令
clean:
rm -f *.o a.out da *.gdb dcm_main //执行make clean 时清除中间变量
8 字数码管和点阵数码管实验
Makefile:
#TOPDIR := $(shell cd ..; pwd)
TOPDIR := .
#KERNELDIR = /usr/src/linux
#KERNELDIR = /opt/host/armv4l/src/linux
KERNELDIR = /arm2410cl/kernel/linux-2.4.18-2410cl/ #内核源代码路径INCLUDEDIR = $(KERNELDIR)/include #头文件路径
CROSS_COMPILE=armv4l-unknown-linux-
#预定义变量
AS =$(CROSS_COMPILE)as #汇编程序的名称默认为as
LD =$(CROSS_COMPILE)ld #makefile变量赋值
CC =$(CROSS_COMPILE)gcc #C编译器的名称默认为cc
CPP =$(CC) –E #C++编译器的名称默认为g++
AR =$(CROSS_COMPILE)ar #库文件维护程序的名称默认值为ar NM =$(CROSS_COMPILE)nm
STRIP =$(CROSS_COMPILE)strip
OBJCOPY =$(CROSS_COMPILE)objcopy
OBJDUMP =$(CROSS_COMPILE)objdump
#设置C编译器的选项
CFLAGS += -I..
CFLAGS += -Wall -O -D__KERNEL__ -DMODULE -I$(INCLUDEDIR)
TARGET = s3c2410-led.o test_led #需要编译生成的目标文件
all: $(TARGET)
#编译
s3c2410-led.o:s3c2410-led.c
$(CC) -c $(CFLAGS) $^ -o $@
test_led:test_led.o
$(CC) $^ -o $@
#清除
clean:
rm -f *.o *~ core .depend
线程
/* thread.c */
#include
#include