整个makefile文件示例:
#Design by slowby for S5PV210
#define var
#目标文件,终极目标
TARGET:= led.bin
BUILD := led
#如果没定义SD ?表示没定义
MYENV?= SD
SDTOOLS:= ./mk210 #sdtools截取前
16kB的内容,mkv210_image.c
#多文件
COBJS+= start.o
COBJS+= main.o
COBJS+= led.o
#工具集
CROSS_COMPILE = arm-linux-
#交叉编译器
CC:= $(CROSS_COMPILE)gcc
#链接器
LD:= $(CROSS_COMPILE)ld
#去文件格式转换工具
OBJCOPY := $(CROSS_COMPILE)objcopy
#编译选项
#显示警告信息
CFLAGS+= -Wall
#增加头文件查找目录
CFLAGS+= -I./inc
#链接选项
#主要是链接地址
#添加链接脚本,可以不用在意COBJS的添加顺序 -T是必须的,链接脚本名为map.lds
LDFLAGS+= -Tmap.lds
#. = 0x0; + -Ttex 的值作为基地址
ifeq ($(MYENV),SD)
LDFLAGS+= -Ttext=0x0
else
LDFLAGS+= -Ttext=0x20000000
endif
#Way
#$@--目标文件,$^--所有的依赖文件,$<--第一个依赖文件。
all:$(TARGET)
ifeq ($(MYENV),SD)
#SD
#生成临时目标文件$@.TMP
#添加头信息校验
$(TARGET):$(BUILD)
$(OBJCOPY) -O binary $^ $@.TMP
$(SDTOOLS) $@.TMP $@
cp $@ ../bin -f
else
#RAM
#所有的$^依赖文件,生成目标文件$@
$(TARGET):$(BUILD)
$(OBJCOPY) -O binary $^ $@
cp $@ ../bin -f
endif
#链接 依赖于$^生成$@
$(BUILD):$(COBJS)
$(LD) $(LDFLAGS) -o $@ $^
#编译
#所有的.c生成所有的.o
%.o:%.c
$(CC) $(CFLAGS) -c -o $@ $^
#大S,c语言可以去处理汇编
%.o:%.S
$(CC) $(CFLAGS) -c -o $@ $^
clean:
rm -f $(TARGET) $(BUILD) *.o
关键字:Makefile S5PV210
引用地址:
Makefile文件示例
推荐阅读最新更新时间:2026-03-24 12:48
I2C总线浅谈之(四)--STM8的IIC驱动文件示例
本示例提供STM8S103F核心板的IIC驱动文件源代码,亲测没有任何问题,博主使用来驱动AT24C256和电子罗盘MMC5883MA,IIC通信速率100kHz,可以调整时序延时时间。 直接贴源码: IIC.h #ifndef _IIC_H #define _IIC_H #include iostm8s103F3.h #include type_def.h #define IIC_SCL PC_ODR_ODR5 //设置SCL为GPIO--PC5 #define IIC_SDA PC_ODR_ODR6 //设置SDA为GPIO--PC6 #define READ_SDA
[单片机]
Matlab文件操作示例
Matlab文件操作示例 问题1:如何在matlab中读取数据文件 将如下格式的数据文件data.txt装载到内存中,并生成一个二维数组 1 0.0002 2 2 0.0004 3 3 0.3 4 输入命令“load -ascii data.txt”,此时数组data已经存在,输入命令“data”可以察看data load -ascii data.txt data data = 1.0000 0.0002 2.0000 2.0000 0.0004 3.0000 3.0000 0.3000 4.0000 问题2:如何将数组的数据保存到数据文件? Use the Save command.
[嵌入式]
【Linux】GCC+Makefile打造正点原子stm32单片机开发环境
arm-none-eabi-gcc+stlink-tool+Makefile 正点原子精英STM32F103ZET6开发板采用V3.5库的头文件 下载固件库:https://www.st.com/content/ccc/resource/technical/software/firmware/48/ab/e5/17/0d/79/43/74/stsw-stm32054.zip/files/stsw-stm32054.zip/jcr:content/translations/en.stsw-stm32054.zip 解压得到STM32F10x_StdPeriph_Lib_V3.5.0 新建文件夹:stm32,stm32/lib,s
[单片机]
stm32 makefile
# toolchain CC = arm-none-eabi-gcc CP = arm-none-eabi-objcopy AS = arm-none-eabi-gcc -x assembler-with-cpp # all the files will be generated with this name PROJECT_NAME=stm32f10x_project # user specific SRC += ./user/main.c # startup ASM_SRC += ./user/startup_stm32f103xe.s OBJECTS = $(ASM_SRC:.
[单片机]
Makefile 解析
最简约的 Makefile 文件如下 SRCS = main.c src/add.cOBJS = $(SRCS:%.c=%.o)CFLAGS = -Iincall: $(OBJS) CC $(CFLAGS) $(OBJS) -o a.exe%.o: %.c CC $(CFLAGS) -c $ -o $@ clean: rm $(OBJS) 只要列出详细的源文件路径, OBJ 直接从 SRC 替换 .c 得来, 然后直接在以OBJ作为依赖, 假设已经得到所有 OBJ文件, 即可直接使用 CC 进行链接即可, 而 OBJ 列表中的内容则由 %.o: %.c 一个一个匹配生成. 最后清除所有中间文件也十分的简单, 直
[单片机]
迅为4412开发板实验_Makefile编译(下)
4.5Makefile 文件 接前一小节的内容,继续介绍系统是如何一步一步编译出内核镜像的。 在这里仍然以 LEDS 小灯为例。 4.5.1 宏定义 LEDS_CTL 的使用 如下图所示,led 驱动属于字符驱动,字符驱动一般是在源码目录“drivers/char/”下。 如上图所示,这里要关注的文件只有框框中的三个“itop4412_leds.c”, “itop4412_leds.o”,“Makefile”。 itop4412_leds.c :比较好理解,就是 led 驱动的源码 itop4412_leds.o :这个是生成最终 zImage 二进制的中间文件 Makefile :就是 Make 命令所需要的文件 这里不关心
[单片机]
3.Makefile工程管理
一、体验 在前面的笔记里可以看到,要编译一个简单的工程需要的编译步骤是很多的。前面还是只有一个汇编文件,在一个工程里,会有很多文件的,如果像前面的那种编译方式是很不可靠的。这就需要Makefile工程管理。 例如前面的那个led.S,要编译成led.bin的步骤:图1-1: arm-linux-gcc -g -c led.S arm-linux-ld -Tled.lds -o led.elf led.o arm-linux-objcopy -O binary led.elf led.bin 图1-1 经过上面的三个步骤,编译出了led.bin。看到里面也有一个Makefile文件,里面的内容:图1-2: all: led.o
[单片机]
uboot1.1.6顶层makefile详解
VERSION = 1//主版本号 PATCHLEVEL = 1//次版本号 SUBLEVEL = 6//修正版本号 EXTRAVERSION =//版本号扩展 U_BOOT_VERSION = $(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)//这个Uboot的版本为1.1.6 VERSION_FILE = $(obj)include/version_autogenerated.h HOSTARCH := $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ -e s/arm.*/arm/ -
[单片机]