Advertisement
Guest User

Untitled

a guest
Sep 20th, 2014
207
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Make 2.32 KB | None | 0 0
  1.    
  2. PROJECT = main
  3. BOOT = boot
  4. BOOTSRC = ..\common\slave_boot
  5. CORE = core
  6. BOOTADDR = 0x1800
  7. LENADDR = 0x0026
  8. TARGET = atmega8
  9.  
  10. TARGET_AD = m8
  11. PROGRAMMER = usbtiny
  12. # PROGRAMMER = usbasp
  13. HFUSE = 0xC0
  14. LFUSE = 0xFF
  15. LOCK = 0x2F
  16.  
  17. CC = avr-c++ -g -mmcu=$(TARGET) -Os -fwhole-program -fdata-sections -ffunction-sections -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -I $(CURDIR)
  18.  
  19. # project s/w defines
  20. CC += -DF_CPU=16000000
  21. CC += -DMSI_CLASS=SLAVE02
  22. CC += -DFW_VER=0x02
  23. CC += -DFW_SUBVER=0x00
  24.  
  25. LC = avr-gcc -Wl,--gc-sections,--relax,-T avr4_mod.x -g -mmcu=$(TARGET)
  26. OC = avr-objcopy
  27. OD = avr-objdump -h -S
  28. AS = avr-size -C --mcu=$(TARGET)
  29.  
  30. AP = ../../Utils/avrdude/
  31. AD = "$(AP)avrdude.exe" -q -q -u -y -C "$(AP)avrdude.conf" -c $(PROGRAMMER) -p $(TARGET_AD)
  32.  
  33. CRC = ../../Utils/crc/crc.exe
  34.  
  35. all: clean compile
  36.  
  37. compile: $(PROJECT).c $(PROJECT).h $(BOOTSRC).c $(BOOTSRC).h
  38.     @mkdir obj
  39.    
  40. # make make Boot Area binary (object file with .boot section)
  41.     @$(CC) -c $(BOOTSRC).c -oobj/$(BOOT).o
  42.     @$(LC) -Wl,-Map,obj/$(BOOT).map -Wl,--section-start,.text=$(BOOTADDR) -o obj/$(BOOT).elf obj/$(BOOT).o
  43.     @$(OC) -j .text -j .data -O binary obj/$(BOOT).elf obj/$(BOOT).bin
  44.     @$(OC) -I binary -O elf32-avr --rename-section .data=.$(BOOT) obj/$(BOOT).bin obj/$(BOOT)bin.o
  45.    
  46. #make User Area binary (object file with Boot Area included)
  47.     @$(CC) -c $(PROJECT).c -oobj/$(PROJECT).o
  48.     @$(LC) -Wl,-Map,obj/$(PROJECT).map -Wl,--section-start,.$(BOOT)=$(BOOTADDR) -o obj/$(PROJECT).elf obj/$(PROJECT).o obj/$(BOOT)bin.o
  49.     @$(OC) -j .text -j .data -O binary obj/$(PROJECT).elf obj/$(PROJECT).bin
  50.    
  51. #add size and CRC16 and make output binaries
  52.     @$(CRC) obj/$(PROJECT).bin obj/$(BOOT).bin $(CORE).bin $(PROJECT).bin $(BOOTADDR) $(LENADDR)
  53.  
  54. #extract listings
  55.     @$(OD) obj/$(PROJECT).elf > obj/$(PROJECT).lst
  56.     @$(OD) obj/$(BOOT).elf > obj/$(BOOT).lst
  57.     @echo Main code:
  58.     @$(AS) obj/$(PROJECT).elf >>obj/$(PROJECT).lst
  59.     @$(AS) obj/$(PROJECT).elf
  60.     @echo Boot code:
  61.     @$(AS) obj/$(BOOT).elf >>obj/$(BOOT).lst
  62.     @$(AS) obj/$(BOOT).elf
  63.    
  64. clean:
  65.     @rm -rf obj
  66.    
  67. prog: $(CORE).bin
  68.     @$(AD) -B 1 -U flash:w:"$(CORE).bin":r
  69.  
  70. fuses:
  71.     @$(AD) -B 20 \
  72.     -U hfuse:w:$(HFUSE):m \
  73.     -U lfuse:w:$(LFUSE):m \
  74.     -U lock:w:$(LOCK):m
  75.    
  76. read:
  77.     @$(AD) -B 1 -U flash:r:"flash.bin":r
  78.     @$(AD) -B 1 -U eeprom:r:"eeprom.bin":r
  79.  
  80. count:
  81.     @$(AD) -Y $(N)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement