Makefile 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. # GNU-ARM tools directory
  2. GNU_ARM = C:\Program Files\CodeSourcery\Sourcery G++ Lite
  3. # The gcc compiler and linker
  4. CC = $(GNU_ARM)\bin\arm-none-eabi-gcc
  5. ASM = $(GNU_ARM)\bin\arm-none-eabi-as
  6. LINK = $(GNU_ARM)\bin\arm-none-eabi-gcc
  7. OBJCOPY = $(GNU_ARM)\bin\arm-none-eabi-objcopy
  8. BLDDIR = .
  9. CCINC = -I$(BLDDIR)
  10. APP_DEP = $(BLDDIR)\board.h
  11. ARM_CPU = arm7tdmi
  12. CHIP = at91sam7s256
  13. APP_NAME = bootldr_$(CHIP)
  14. BINDIR = bin
  15. CCFLAGS = -c -mcpu=$(ARM_CPU) -D$(CHIP) -mthumb-interwork -Os -mlong-calls -ffunction-sections -Wall -DNDBEBUG -o$@
  16. CCFLAGS += -Wa,-adhlns=$(subst $(suffix $<),.lst,$<)
  17. ASMFLAGS = -gdwarf2 -mcpu=$(ARM_CPU) -mthumb-interwork -o$@
  18. ASMFLAGS += -adhlns=$(subst $(suffix $<),.lst,$<)
  19. LINKFLAGS = -T .\$(APP_NAME).ld -o $(BINDIR)\$(APP_NAME).elf -Wl,-Map,$(BINDIR)\$(APP_NAME).map,--cref -lm
  20. #.............................................................................
  21. all: $(BINDIR)\$(APP_NAME).bin
  22. $(BINDIR)\$(APP_NAME).bin : $(BINDIR)\$(APP_NAME).elf
  23. $(OBJCOPY) -O binary $(BINDIR)\$(APP_NAME).elf $(BINDIR)\$(APP_NAME).bin
  24. $(BINDIR)\$(APP_NAME).elf : \
  25. .\$(APP_NAME).ld \
  26. $(BINDIR)\startup.o \
  27. $(BINDIR)\main.o
  28. $(LINK) \
  29. $(BINDIR)\startup.o \
  30. $(BINDIR)\main.o \
  31. $(LINKFLAGS)
  32. $(BINDIR)\startup.o: $(BLDDIR)\startup.s
  33. $(ASM) $(ASMFLAGS) $<
  34. $(BINDIR)\board.o: $(BLDDIR)\board.c $(APP_DEP)
  35. $(CC) -marm $(CCFLAGS) $(CCINC) $<
  36. $(BINDIR)\Atmel_OS.o: $(BLDDIR)\Atmel_OS.c $(APP_DEP)
  37. $(CC) -mthumb $(CCFLAGS) $(CCINC) $<
  38. $(BINDIR)\main.o: $(BLDDIR)\main.c $(APP_DEP)
  39. $(CC) -mthumb $(CCFLAGS) $(CCINC) $<
  40. bin: all
  41. # clean targets...
  42. clean:
  43. -rm -f $(BINDIR)/*.o $(BINDIR)/*.elf $(BINDIR)/*.map