Haberler:

Foruma Resim Yükleme ve Boyut Sınırlaması ( ! )  https://bit.ly/2GMFb8H

Ana Menü

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...