Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Makefile for AIR project
- # CPU: LPC2148
- # ARH: ARM7TDMI-S
- # Project name
- PROJECT = air-1.0
- # Compilation parameters
- MCU = arm7tdmi-s
- CPUARCH = armv4t
- #THUMB = -mthumb
- #THUMB += -mcallee-super-interworking
- #THUMB_IW = -mthumb-interwork
- #-fno-omit-frame-pointer
- OPTLEVEL = s
- DEBUG =
- DEBUG_METHOD = hard
- # Source files
- SRC = src/main.c \
- src/debug.c \
- src/os/kernel/os_kernel.c \
- src/os/kernel/os_fifo.c \
- src/os/system.c \
- src/os/sysdrv/io.c \
- src/os/sysdrv/i2c.c \
- src/os/sysdrv/scb.c \
- src/os/sysdrv/spi.c \
- src/os/sysdrv/vic.c \
- src/os/usrdrv/mmc.c \
- src/os/usrdrv/pcf8548.c \
- src/os/usrdrv/kbd.c \
- src/os/usrdrv/audio.c \
- src/os/gfx/lcd_a2618.c \
- src/os/gfx/fb_1bpp.c \
- src/sys/mem_alloc.c \
- src/sys/xlibc.c \
- src/resources/bitmaps.c \
- src/resources/fonts.c \
- src/au.c \
- src/adpcm.c \
- src/audio/auprocessor.c \
- src/os/fs/tff.c \
- src/os/fs/diskio.c \
- src/port.c \
- src/cpptest.c
- SRC32 =
- SRCAS = src/sys/crt0.S src/os/kernel/os_kernel_asm.S
- #SRC += src/usbmem/mscuser.c src/usbmem/usbcore.c src/usbmem/usbdesc.c src/usbmem/usbhw.c src/usbmem/usbuser.c src/usbmem/diskimg.c
- INCLUDES = -Iinclude
- #FLAGS = -finstrument-functions
- #-fstack-protector -Wstack-protector -fstack-protector-all
- #-finstrument-functions
- #-ffunction-sections -fdata-sections -Wl,--gc-sections
- # +-----------------------------------------------+
- # | Common block |
- # +-----------------------------------------------+
- ifeq ($(DEBUG_METHOD),hard)
- CFLAGS = $(FLAGS) -mcpu=$(MCU) -mtune=$(MCU) -march=$(CPUARCH) $(DEBUG) $(THUMB_IW) \
- -Wall -std=gnu99 -O$(OPTLEVEL) $(INCLUDES)
- LDFLAGS = -nostartfiles -nostdlib -T lpc2148_rom.ld
- else
- CFLAGS = -mcpu=$(MCU) -mtune=$(MCU) -march=$(CPUARCH) -D_SOFTDEBUG_ $(DEBUG) $(THUMB_IW) \
- -Wall -std=gnu99 -O$(OPTLEVEL) $(INCLUDES)
- LDFLAGS = -nostartfiles -T lpc2148_rom.ld
- endif
- LIBGCC = `$(CC) $(CFLAGS) $(THUMB) -print-libgcc-file-name`
- LIBDIR = /opt/armgcc/arm-elf/lib/`$(CC) $(CFLAGS) -print-multi-directory`
- #LIBC = $(LIBDIR)/libc.a
- #LIBC += $(LIBDIR)/libnosys.a
- #ARCH=arm-elf
- ARCH=arm-none-eabi
- CC = $(ARCH)-gcc
- LD = $(ARCH)-ld
- AR = $(ARCH)-ar
- AS = $(ARCH)-as
- OBJCOPY = $(ARCH)-objcopy
- OBJDUMP = $(ARCH)-objdump
- OBJSIZE = $(ARCH)-size
- OBJS = $(SRC:.c=.o)
- OBJS32 = $(SRC32:.c=.o)
- OBJSAS = $(SRCAS:.S=.o)
- OBJALL = $(OBJS) $(OBJS32) $(OBJSPP) $(OBJSAS)
- ELF = $(PROJECT).elf
- HEX = $(PROJECT).hex
- BIN = $(PROJECT).bin
- ASM = $(PROJECT).asm
- MAP = $(PROJECT).map
- TO_CLEAN = $(OBJALL) $(ELF) $(BIN) $(HEX) $(ASM) $(MAP)
- LPCISP = lpc21isp
- #LPCISP_PARAMS = -control -PHILIPSARM $(HEX) /dev/ttyUSB0 115200 12000
- LPCISP_PARAMS = -control -PHILIPSARM $(HEX) /dev/ttyUSB0 38400 12000
- #LPCISP = lpcflash
- #LPCISP_PARAMS = -i /dev/ttyUSB0 -b 115200 -f 14746 -w 0x4000000 -l $(HEX)
- # Messages
- MSG_COMPILING = "CC :"
- MSG_COMPILING32 = "CC32:"
- MSG_COMPILINGCCPP = "C++ :"
- MSG_COMPILINGAS = "AS :"
- MSG_LINKING = "LD :"
- MSG_CLEANING = "RM :"
- MSG_SIZE = "Size:"
- MSG_HEX = "Make HEX from $(ELF):"
- MSG_BIN = "Make binary from $(ELF):"
- MSG_BINSIZE = "Size of binary:"
- MSG_DISASM = "Disassemble $(ELF):"
- # Rules
- #.SILENT : $(OBJALL) $(ELF) $(HEX) $(BIN) $(ASM) clean
- #.SILENT : $(OBJALL) $(HEX) $(BIN) $(ASM) clean
- $(ELF) : $(OBJS) $(OBJS32) $(OBJSAS)
- @echo $(MSG_LINKING) $@
- $(LD) -Map $(MAP) --cref $(LDFLAGS) -o $@ $(OBJALL) $(LIBGCC) $(LIBC) $(LIBS)
- #$(CCPP) -Wl,-Map -Wl,$(MAP) $(LDFLAGS) -o $@ $(OBJALL) $(LIBGCC) $(LIBC) $(LIBS)
- @echo $(MSG_SIZE)
- $(OBJSIZE) $@
- $(OBJS) : %.o : %.c
- @echo $(MSG_COMPILING) $<
- $(CC) -c $(CFLAGS) $(THUMB) -o $@ $<
- $(OBJS32) : %.o : %.c
- @echo $(MSG_COMPILING32) $<
- $(CC) -c $(CFLAGS) -o $@ $<
- $(OBJSAS) : %.o : %.S
- @echo $(MSG_COMPILINGAS) $<
- $(CC) -c $(CFLAGS) -D__ASM__ -o $@ $<
- $(HEX) : $(ELF)
- @echo $(MSG_HEX) $(HEX)
- $(OBJCOPY) -O ihex $(ELF) $(HEX)
- $(BIN) : $(ELF)
- @echo $(MSG_BIN) $(BIN)
- $(OBJCOPY) -O binary $(ELF) $(BIN)
- @echo $(MSG_BINSIZE) `wc -c $(BIN)`
- $(ASM) : $(ELF)
- @echo $(MSG_DISASM) $(ASM)
- $(OBJDUMP) -d $(ELF) > $(ASM)
- all : $(ELF) hex
- hex : $(HEX)
- bin : $(BIN)
- disasm: $(ASM)
- flash: $(HEX)
- $(LPCISP) $(LPCISP_PARAMS)
- clean :
- @echo $(MSG_CLEANING) $(TO_CLEAN)
- rm -f $(OBJALL) $(TO_CLEAN)
Advertisement
Add Comment
Please, Sign In to add comment