2 # Project: USBaspLoader (updater)
3 # Author: Stephan Bärwolf
4 # Creation Date: 2012-09-01
6 # License: GNU GPL v2 (see License.txt)
11 # where the updating firmware should be located (starting address)
15 # PROGRAMMER contains AVRDUDE options to address your programmer
16 # PROGRAMMER = -c pony-stk200
17 PROGRAMMER = -c usbasp
19 # since USBaspLoader supports HAVE_BLB11_SOFTW_LOCKBIT...
20 LOCKOPT = -U lock:w:0x3f:m
22 # standard atmega8 needs BODLEVEL to be programed, since it is a 5V device
23 # you may also want to UNprogram SUT1 to get a SLOWER bootup (lfuse then would be 0x3f)
24 FUSEOPT_8 = -U hfuse:w:0xc0:m -U lfuse:w:0x1f:m
25 BOOTLOADER_ADDRESS_8 = 0x1800
28 #untested (WARNING: may destroy ISP ability!)
29 #device always should select maximum bootloader-section size
30 #please mail tests-reports to matrixstorm@gmx.de:
32 BOOTLOADER_ADDRESS_32 = 0x7000
34 FUSEOPT_88 = -U hfuse:w:0xd6:m -U lfuse:w:0xdf:m -U efuse:w:0x00:m
35 BOOTLOADER_ADDRESS_88 = 0x1800
38 BOOTLOADER_ADDRESS_164 = 0x3800
40 FUSEOPT_168 = -U hfuse:w:0xd6:m -U lfuse:w:0xdf:m -U efuse:w:0x00:m
41 BOOTLOADER_ADDRESS_168 = 0x3800
44 BOOTLOADER_ADDRESS_324 = 0x7000
46 FUSEOPT_328 = -U lfuse:w:0xf7:m -U hfuse:w:0xda:m -U efuse:w:0x03:m
47 BOOTLOADER_ADDRESS_328 = 0x7000
50 BOOTLOADER_ADDRESS_644 = 0xE000
53 BOOTLOADER_ADDRESS_128 = 0x1E000
55 FUSEOPT_1284 = unknown
56 BOOTLOADER_ADDRESS_1284 = 0x1E000
60 ifeq ($(DEVICE), atmega8)
61 FUSEOPT = $(FUSEOPT_8)
62 BOOTLOADER_ADDRESS = $(BOOTLOADER_ADDRESS_8)
63 else ifeq ($(DEVICE), atmega32)
64 FUSEOPT = $(FUSEOPT_32)
65 BOOTLOADER_ADDRESS = $(BOOTLOADER_ADDRESS_32)
66 else ifeq ($(DEVICE), atmega88)
67 FUSEOPT = $(FUSEOPT_88)
68 BOOTLOADER_ADDRESS = $(BOOTLOADER_ADDRESS_88)
69 else ifeq ($(DEVICE), atmega88a)
70 FUSEOPT = $(FUSEOPT_88)
71 BOOTLOADER_ADDRESS = $(BOOTLOADER_ADDRESS_88)
72 else ifeq ($(DEVICE), atmega88p)
73 FUSEOPT = $(FUSEOPT_88)
74 BOOTLOADER_ADDRESS = $(BOOTLOADER_ADDRESS_88)
75 else ifeq ($(DEVICE), atmega88pa)
76 FUSEOPT = $(FUSEOPT_88)
77 BOOTLOADER_ADDRESS = $(BOOTLOADER_ADDRESS_88)
78 else ifeq ($(DEVICE), atmega164a)
79 FUSEOPT = $(FUSEOPT_164)
80 BOOTLOADER_ADDRESS = $(BOOTLOADER_ADDRESS_164)
81 else ifeq ($(DEVICE), atmega164p)
82 FUSEOPT = $(FUSEOPT_164)
83 BOOTLOADER_ADDRESS = $(BOOTLOADER_ADDRESS_164)
84 else ifeq ($(DEVICE), atmega164pa)
85 FUSEOPT = $(FUSEOPT_164)
86 BOOTLOADER_ADDRESS = $(BOOTLOADER_ADDRESS_164)
87 else ifeq ($(DEVICE), atmega168)
88 FUSEOPT = $(FUSEOPT_168)
89 BOOTLOADER_ADDRESS = $(BOOTLOADER_ADDRESS_168)
90 else ifeq ($(DEVICE), atmega168a)
91 FUSEOPT = $(FUSEOPT_168)
92 BOOTLOADER_ADDRESS = $(BOOTLOADER_ADDRESS_168)
93 else ifeq ($(DEVICE), atmega168p)
94 FUSEOPT = $(FUSEOPT_168)
95 BOOTLOADER_ADDRESS = $(BOOTLOADER_ADDRESS_168)
96 else ifeq ($(DEVICE), atmega168pa)
97 FUSEOPT = $(FUSEOPT_168)
98 BOOTLOADER_ADDRESS = $(BOOTLOADER_ADDRESS_168)
99 else ifeq ($(DEVICE), atmega324a)
100 FUSEOPT = $(FUSEOPT_324)
101 BOOTLOADER_ADDRESS = $(BOOTLOADER_ADDRESS_324)
102 else ifeq ($(DEVICE), atmega324p)
103 FUSEOPT = $(FUSEOPT_324)
104 BOOTLOADER_ADDRESS = $(BOOTLOADER_ADDRESS_324)
105 else ifeq ($(DEVICE), atmega324pa)
106 FUSEOPT = $(FUSEOPT_324)
107 BOOTLOADER_ADDRESS = $(BOOTLOADER_ADDRESS_324)
108 else ifeq ($(DEVICE), atmega328)
109 FUSEOPT = $(FUSEOPT_328)
110 BOOTLOADER_ADDRESS = $(BOOTLOADER_ADDRESS_328)
111 else ifeq ($(DEVICE), atmega328p)
112 FUSEOPT = $(FUSEOPT_328)
113 BOOTLOADER_ADDRESS = $(BOOTLOADER_ADDRESS_328)
114 else ifeq ($(DEVICE), atmega644)
115 FUSEOPT = $(FUSEOPT_644)
116 BOOTLOADER_ADDRESS = $(BOOTLOADER_ADDRESS_644)
117 else ifeq ($(DEVICE), atmega644a)
118 FUSEOPT = $(FUSEOPT_644)
119 BOOTLOADER_ADDRESS = $(BOOTLOADER_ADDRESS_644)
120 else ifeq ($(DEVICE), atmega644p)
121 FUSEOPT = $(FUSEOPT_644)
122 BOOTLOADER_ADDRESS = $(BOOTLOADER_ADDRESS_644)
123 else ifeq ($(DEVICE), atmega644pa)
124 FUSEOPT = $(FUSEOPT_644)
125 BOOTLOADER_ADDRESS = $(BOOTLOADER_ADDRESS_644)
126 else ifeq ($(DEVICE), atmega128)
127 FUSEOPT = $(FUSEOPT_128)
128 BOOTLOADER_ADDRESS = $(BOOTLOADER_ADDRESS_128)
129 else ifeq ($(DEVICE), atmega1284)
130 FUSEOPT = $(FUSEOPT_1284)
131 BOOTLOADER_ADDRESS = $(BOOTLOADER_ADDRESS_1284)
132 else ifeq ($(DEVICE), atmega1284p)
133 FUSEOPT = $(FUSEOPT_1284)
134 BOOTLOADER_ADDRESS = $(BOOTLOADER_ADDRESS_1284)
139 NEW_BOOTLOADER_ADDRESS = $(BOOTLOADER_ADDRESS)
142 AVRPATH = $(AVR8TOOLCHAINBINDIR)
143 AVRDUDE = @echo avrdude $(PROGRAMMER) -p $(DEVICE)
150 CC=@$(AVRPATH)avr-gcc
151 OBC=@$(AVRPATH)avr-objcopy
152 OBD=@$(AVRPATH)avr-objdump
153 SIZ=@$(AVRPATH)avr-size