Advertisement
jooxz

Makelist avr

Jan 24th, 2020
792
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Make 2.40 KB | None | 0 0
  1. # Projeto: Balizar
  2. # Author: João peterson
  3. # Data de criação: 22.01.2020
  4. # Ultima data de modificação: 22.01.2020
  5. #
  6. # Comandos:
  7. # - Compilar e gravar: make
  8. # - Compilar .hex: make build
  9. # - Gravar apenas: make burn
  10. # - Gerar dependencias: make depend
  11.  
  12. # Variaveis a serem usadas como argumento
  13. mmcu = atmega328p
  14.  
  15. # Qual microcontrolador é usado
  16. AVR_MMCU =
  17. AVRDUDE_MMCU =
  18.  
  19. ifeq ($(mmcu),atmega328p)
  20.     AVR_MMCU = atmega328p
  21.     AVRDUDE_MMCU = m328p
  22. else ifeq ($(mmcu),atmega328)
  23.     AVR_MMCU = atmega328
  24.     AVRDUDE_MMCU = m328
  25. else ifeq ($(mmcu),atmega8)
  26.     AVR_MMCU = atmega8
  27.     AVRDUDE_MMCU = m8
  28. else
  29.     AVR_MMCU = atmega328p
  30.     AVRDUDE_MMCU = m328p
  31. endif
  32.  
  33. # Programa principal e diretórios
  34. MAIN_APP = main
  35. MAIN_DIR = $(shell pwd)
  36. MAIN_HEX_PATH = $(MAIN_DIR)\$(MAIN_APP).hex
  37.  
  38. # Compilador
  39. CC = avr-gcc
  40. OBJCOPY = avr-objcopy.exe
  41. AVRDUDE := avrdude
  42.  
  43. CFLAGS = -g -Os
  44.  
  45. LFLAGS = -Os -mmcu=$(AVR_MMCU) # Modelo de AVR : https://www.microchip.com/webdoc/avrlibcreferencemanual/using_tools_1using_avr_gcc_mach_opt.html - Tabela 2, coluna "MCU name"
  46.  
  47. HFLAGS = -j .text -j .data -O ihex
  48.  
  49. # Opções avrdude
  50. # Não configurar os fuse bits e lock bits, fazer manualmente pelo avrdude ou avrdudess
  51. DUDEFLAGS = -c
  52. DUDEFLAGS += usbasp # Gravador usado : https://www.nongnu.org/avrdude/user-manual/avrdude_4.html
  53. DUDEFLAGS += -p
  54. DUDEFLAGS += $(AVRDUDE_MMCU) # Considerar modelo do AVR : https://www.nongnu.org/avrdude/user-manual/avrdude_4.html
  55. DUDEFLAGS += -P
  56. DUDEFLAGS += usb
  57. DUDEFLAGS += -b
  58. DUDEFLAGS += 9600
  59. DUDEFLAGS += -B
  60. DUDEFLAGS += 0.5
  61. DUDEFLAGS += -U flash:w:$(MAIN_HEX_PATH):a
  62.  
  63. # Modulos a serem compilados
  64. SOURCE_FILES = $(shell find -name "*.c") # lista arquivos .c
  65. OBJECT_FILES = $(patsubst %.c,%.o,$(SOURCE_FILES)) # futuros arquivos .o
  66.  
  67. # Regras:
  68. #Genérica para compilação do .o
  69. %.o : %.c
  70.     $(CC) $(CFLAGS) -c $< -o $@
  71.  
  72. #Padrão
  73. BuildTask_default : depend build burn
  74.  
  75. #Geração de depêndencias
  76. depend: $(SOURCE_FILES)
  77.     @echo $(SOURCE_FILES)
  78.     @echo $(OBJECT_FILES)
  79.     $(CC) -MM $(SOURCE_FILES) > $@.d
  80.  
  81. -include depend.d
  82.  
  83. #gravação
  84. burn :                        
  85.     $(AVRDUDE) $(DUDEFLAGS)
  86.    
  87. build : $(MAIN_APP).elf
  88.     $(OBJCOPY) $(HFLAGS) $< $(MAIN_APP).hex
  89.  
  90. $(MAIN_APP).elf : $(OBJECT_FILES)
  91.     $(CC) $(LFLAGS) $(OBJECT_FILES) -o $@
  92.  
  93. clear :
  94.     $(shell rm -f $(OBJECT_FILES))
  95.     $(shell rm -f $(MAIN_APP).elf)
  96.     $(shell rm -f $(MAIN_APP).hex)
  97.     $(shell rm -f depend.d)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement