led 工程 makefile

# CORTEX-A8 PERI DRIVER CODE
# VERSION 1.0
# ATHUOR lapset (klapset@gmail.com)
# MODIFY DATE 
#	2012.2.22 by lapset ,to change the format of Makefile




#NOTE :please fix the following info to adpat to your environment

CROSS_COMPILE=arm-none-eabi-
LDPATH="C:\Program Files\yagarto\lib\gcc\arm-none-eabi\4.6.2\include"
OUTPATH=/mnt/hgfs/share
NAME=led
COMMONPATH = "D:\eclipse_projects\LED\common\include"
#=============================================================================#
#DO NOT TO CHANG THE CODE AFTER THIS !!!
export CFLAGS LD CC STRIP OBJCOPY OBJDUMP COMMONPATH
CFLAGS +=   -g   -O0 -fno-strict-aliasing   -mabi=apcs-gnu  -mfpu=vfpv3 -mfloat-abi=softfp   -fno-builtin -nostdinc   -isystem $(LDPATH) -I $(COMMONPATH)                                           
LD	= $(CROSS_COMPILE)ld
CC	= $(CROSS_COMPILE)gcc-4.6.2
STRIP	= $(CROSS_COMPILE)strip
OBJCOPY = $(CROSS_COMPILE)objcopy
OBJDUMP = $(CROSS_COMPILE)objdump

OBJS := start/start.o common/src/printf.o common/src/uart.o common/src/_udivsi3.o common/src/_umodsi3.o $(NAME).o 
SUBDIRS := common/src/ start/
all:$(SUBDIRS) $(OBJS)
	$(LD)  $(OBJS) -Tmap.lds -o $(NAME).elf
	$(OBJCOPY)  -O binary  $(NAME).elf $(NAME).bin 
	$(OBJDUMP) -D $(NAME).elf > $(NAME).dis
#	cp ./$(NAME).bin $(OUTPATH)
$(SUBDIRS):
	$(MAKE) -C $@ 
%.o: %.S
	$(CC) $(CFLAGS) -c -o  $@ $< # 
%.o: %.c
	$(CC) $(CFLAGS) -c -o  $@ $<
clean:
	rm -rf $(OBJS) *.elf *.bin *.dis 


 

 

/*笔记一*/

/*

 Makefile分析:
/******************************************************************
* all:led.s
*	arm-none-eabi-gcc-4.6.2 -O0 -g -c -o led.o led.s
*	arm-none-eabi-ld	led.o -Ttext 0x34000 -o led.elf
*	arm-none-eabi-objcopy	-O binary -S led.elf led.bin
*	arm-none-eabi-objdump	-D led.elf > led.dis
********************************************************************/

all:led.s
冒号:依赖文件
arm-none-eabi-gcc-4.6.2     -O0    -g  -c -o led.o led.s
        arm-none-eabi-gcc-4.6.2--->       编译器
        -O0    --->    优化级别 为0 级
        -g       --->    产生调试信息
        -c        -->    只编译,不链接
        -o       -->    生成目标文件
        led.0  -->    指定输出文件名
        led.s   -->   文件依赖,(这里是汇编文件.s)

arm-none-eabi-ld	led.o -Ttext 0x34000 -o led.elf
        arm-none-eabi-ld    --> 链接器
        led.o    -->    源文件
        -Ttext    -->    指定代码的存放位置
        -0x34000 -->   位置
        -o        -->    生成目标文件
        led.elf    -->    生成可执行文件    (Linux的可执行文件格式)

arm-none-eabi-objcopy	-O binary -S led.elf led.bin
        arm-none-eabi-objcopy	-->    格式转换器
        -O    -->    输出格式
        binary    -->    二进制格式
        -S    -->    去除符号
        led.elf    -->     源文件   
        led.bin    -->    目标文件                                                

arm-none-eabi-objdump	-D led.elf > led.dis
        arm-none-eabi-objdump    --> 反汇编器
    

/*******************************************
all:
%.o: %.S
	$(CC) $(CFLAGS) -c -o  $@ $<
%.o: %.c
	$(CC) $(CFLAGS) -c -o  $@ $<
*********************************************/

Makefile隐式规则
$@ = *.0
$<   = *.S




*/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值