Ynt: Keil makefile

Başlatan sseedat, 17 Mayıs 2016, 10:56:41

sseedat

Merhaba,

Keil derleyicisine makefile projesi import edebiliyormuyuz?

mesaj birleştirme:: 17 Mayıs 2016, 11:16:10

bendeki makefile

ifneq ($(windir),)
SHELL  := cmd.exe
endif
TARGET ?= TP803_ETH_V2.00.08
ARCH   ?= Cortex-M3
SCATTER = stm32f103rbt6.sct
AR      = armar.exe
AS      = armasm.exe
CC      = armcc.exe
LINK    = armlink.exe
OBJCOPY = fromelf.exe
ifeq ($(SHELL), cmd.exe)
RM      = del /q
else
RM      = rm -f
endif
scanfile=$(wildcard $1$2) $(foreach d,$(wildcard $1*),$(call scanfile,$d/,$2))
asmfile := $(call scanfile,,*.S)
asmfile := $(wildcard *.S)
srcfile := $(call scanfile,,*.c)
srcfile := $(srcfile:%ucos_ii.c=)
objc := $(srcfile:%.c=%.o)
obja := $(asmfile:%.s=%.o)
AFLAGS := --cpu=$(ARCH) --apcs=interwork
CFLAGS := --cpu=$(ARCH) --apcs=interwork --multibyte_chars -O3
CFLAGS += -I. $(addprefix -I,$(filter-out ./,$(sort $(dir $(call scanfile,,*.h)))))
CFLAGS += -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DMACH_TP80XETH
ifeq ($(DEBUG),1)
CFLAGS += -DDEBUG -Ddbgout"(level,...)"="(level?printf(__VA_ARGS__):0)"
else
ifeq ($(findstring -DDEBUG,$(OPT)), )
CFLAGS += -DNDEBUG -Ddbgout"(level,...)"="do{}while(0)"
else
CFLAGS += -DDEBUG -Ddbgout"(level,...)"="(level?printf(__VA_ARGS__):0)"
endif #($(findstring -DDEBUG,$(OPT)), )
endif #($(DEBUG),1)
ifeq (fb.txt,$(wildcard fb.txt))
CFLAGS += --feedback=fb.txt
endif #(fb.txt,$(wildcard fb.txt))
LFLAGS := --cpu=$(ARCH) --feedback=fb.txt --strict  --callgraph --scatter=$(SCATTER) --list=$(TARGET).map --map
.PHONY : all clean distclean
all: $(TARGET).bin $(TARGET).hex
#$(TARGET).dfu : $(TARGET).bin
# bin2dfu $< $@ HPRT
$(TARGET).bin : $(TARGET).axf
$(OBJCOPY) --bin $< --output $@
-$(RM) firmware.bin
-ren $(TARGET).bin firmware.bin
bin2crcbin.exe ethboot.bin firmware.bin TP803_EthBoard_V2.00.06.bin $(TARGET).bin
# bin2crcbin.exe ethboot.bin firmware.bin TP805_EthAndUartBoard_V2.00.06.bin $(TARGET).bin
$(TARGET).hex : $(TARGET).axf
$(OBJCOPY) --i32 $< --output $@
$(TARGET).axf : $(obja) $(objc) $(SCATTER)
$(LINK) $(LFLAGS) $(^:$(SCATTER)=) --output=$@
$(OBJCOPY) -z $@
@$(OBJCOPY) -z $(^:$(SCATTER)=)
$(objc):%.o:%.c Makefile
$(CC) $(CFLAGS) --depend=$(@:%.o=%.d) -o $@ -c $<
$(obja):%.o:%.S Makefile
$(AS) $(AFLAGS) --depend=$(@:%.o=%.d) -o $@ $<
clean:
-$(RM) *.o $(subst /,\,$(strip $(call scanfile,,*.o)))
-$(RM) *.d $(subst /,\,$(strip $(call scanfile,,*.d)))
distclean: clean
-$(RM) $(TARGET).dfu
-$(RM) $(TARGET).axf
-$(RM) $(TARGET).bin
-$(RM) $(TARGET).hex
-$(RM) $(TARGET).map
-$(RM) $(TARGET).htm
-$(RM) fb.txt
-include $(call scanfile,,*.d)


yada keil değilde başka derleyici için mi?
işlemci :STM32F103
Görünmez bir mezarlıktır Zaman...

yamak

Make file i import etmene gerek yok aslında.Komut satırından çalıştırdığında ne oluyo. Eğer keil compilerı,assembler ı ,linker vs. path 'e ekliyse çalışması lazım.

sseedat

Evet dediğin gibi import a gerek. komut satırında çalıştırdığımda proje klasöründe eksikliklerden dolayı derlemedi.

Görünmez bir mezarlıktır Zaman...