new feature "HAVE_UNPRECISEWAIT" for save some flash
[pub/USBaspLoader.git] / Makefile.inc
1 # Name: Makefile.inc
2 # Project: USBaspLoader (updater)
3 # Author: Stephan Bärwolf
4 # Creation Date: 2012-09-01
5 # Tabsize: 4
6 # License: GNU GPL v2 (see License.txt)
7
8 F_CPU = 16000000
9 DEVICE = atmega8
10
11 # where the updating firmware should be located (starting address)
12 FLASHADDRESS = 0x0000
13
14 # some MCUs with small BLS (bootloader section) need to deactivate some
15 # features in order to fit into BLS.
16 # If this option is enabled, also essential features may become deactivated
17 # Esp. you MUST ensure not to have watchdog initially enabled when using this!
18 DANGEROUS=0
19
20 # PROGRAMMER contains AVRDUDE options to address your programmer
21 # PROGRAMMER = -c pony-stk200
22 PROGRAMMER = -c usbasp
23
24 # since USBaspLoader supports HAVE_BLB11_SOFTW_LOCKBIT...
25 LOCKOPT = -U lock:w:0x3f:m
26
27 # standard atmega8 needs BODLEVEL to be programed, since it is a 5V device
28 # you may also want to UNprogram SUT1 to get a SLOWER bootup (lfuse then would be 0x3f)
29 FUSEOPT_8 = -U hfuse:w:0xc0:m -U lfuse:w:0x1f:m
30 BOOTLOADER_ADDRESS_8 = 0x1800
31
32
33 #untested (WARNING: may destroy ISP ability!)
34 #device always should select maximum bootloader-section size
35 #please mail tests-reports to matrixstorm@gmx.de:
36 FUSEOPT_32 = unknown
37 BOOTLOADER_ADDRESS_32 = 0x7000
38
39 FUSEOPT_88 = -U hfuse:w:0xd6:m -U lfuse:w:0xdf:m -U efuse:w:0x00:m
40 BOOTLOADER_ADDRESS_88 = 0x1800
41
42 FUSEOPT_164 = unknown
43 BOOTLOADER_ADDRESS_164 = 0x3800
44
45 FUSEOPT_168 = -U hfuse:w:0xd6:m -U lfuse:w:0xdf:m -U efuse:w:0x00:m
46 BOOTLOADER_ADDRESS_168 = 0x3800
47
48 FUSEOPT_324 = unknown
49 BOOTLOADER_ADDRESS_324 = 0x7000
50
51 FUSEOPT_328 = -U lfuse:w:0xf7:m -U hfuse:w:0xda:m -U efuse:w:0x03:m
52 BOOTLOADER_ADDRESS_328 = 0x7000
53
54 FUSEOPT_644 = unknown
55 BOOTLOADER_ADDRESS_644 = 0xE000
56
57 FUSEOPT_128 = unknown
58 BOOTLOADER_ADDRESS_128 = 0x1E000
59
60 FUSEOPT_1284 = unknown
61 BOOTLOADER_ADDRESS_1284 = 0x1E000
62
63
64
65 ifeq ($(DANGEROUS), 1)
66 CHOOSEFLASHSAVE = -DCONFIG_NO__NEED_WATCHDOG
67 else
68 CHOOSEFLASHSAVE = -DCONFIG_NO__BOOTLOADER_CAN_EXIT
69 endif
70
71
72 #autoselect logic
73 DEFINES = #-DDEBUG_LEVEL=2
74 ifeq ($(DEVICE), atmega8)
75 FUSEOPT = $(FUSEOPT_8)
76 BOOTLOADER_ADDRESS = $(BOOTLOADER_ADDRESS_8)
77 MCUARCH = avr4
78 else ifeq ($(DEVICE), atmega32)
79 FUSEOPT = $(FUSEOPT_32)
80 BOOTLOADER_ADDRESS = $(BOOTLOADER_ADDRESS_32)
81 MCUARCH = avr5
82 else ifeq ($(DEVICE), atmega88)
83 FUSEOPT = $(FUSEOPT_88)
84 BOOTLOADER_ADDRESS = $(BOOTLOADER_ADDRESS_88)
85 MCUARCH = avr4
86 DEFINES += -DCONFIG_NO__HAVE_READ_LOCK_FUSE
87 else ifeq ($(DEVICE), atmega88a)
88 FUSEOPT = $(FUSEOPT_88)
89 BOOTLOADER_ADDRESS = $(BOOTLOADER_ADDRESS_88)
90 MCUARCH = avr4
91 DEFINES += -DCONFIG_NO__HAVE_READ_LOCK_FUSE
92 else ifeq ($(DEVICE), atmega88p)
93 FUSEOPT = $(FUSEOPT_88)
94 BOOTLOADER_ADDRESS = $(BOOTLOADER_ADDRESS_88)
95 MCUARCH = avr4
96 DEFINES += -DCONFIG_NO__HAVE_READ_LOCK_FUSE
97 else ifeq ($(DEVICE), atmega88pa)
98 FUSEOPT = $(FUSEOPT_88)
99 BOOTLOADER_ADDRESS = $(BOOTLOADER_ADDRESS_88)
100 MCUARCH = avr4
101 DEFINES += -DCONFIG_NO__HAVE_READ_LOCK_FUSE
102 else ifeq ($(DEVICE), atmega164a)
103 FUSEOPT = $(FUSEOPT_164)
104 BOOTLOADER_ADDRESS = $(BOOTLOADER_ADDRESS_164)
105 MCUARCH = avr5
106 DEFINES += -DCONFIG_NO__HAVE_READ_LOCK_FUSE -DCONFIG_NO__BOOTLOADER_CAN_EXIT
107 else ifeq ($(DEVICE), atmega164p)
108 FUSEOPT = $(FUSEOPT_164)
109 BOOTLOADER_ADDRESS = $(BOOTLOADER_ADDRESS_164)
110 MCUARCH = avr5
111 DEFINES += -DCONFIG_NO__HAVE_READ_LOCK_FUSE -DCONFIG_NO__BOOTLOADER_CAN_EXIT
112 else ifeq ($(DEVICE), atmega164pa)
113 FUSEOPT = $(FUSEOPT_164)
114 BOOTLOADER_ADDRESS = $(BOOTLOADER_ADDRESS_164)
115 MCUARCH = avr5
116 DEFINES += -DCONFIG_NO__HAVE_READ_LOCK_FUSE -DCONFIG_NO__BOOTLOADER_CAN_EXIT
117 else ifeq ($(DEVICE), atmega168)
118 FUSEOPT = $(FUSEOPT_168)
119 BOOTLOADER_ADDRESS = $(BOOTLOADER_ADDRESS_168)
120 MCUARCH = avr5
121 DEFINES += -DCONFIG_NO__HAVE_READ_LOCK_FUSE $(CHOOSEFLASHSAVE)
122 else ifeq ($(DEVICE), atmega168a)
123 FUSEOPT = $(FUSEOPT_168)
124 BOOTLOADER_ADDRESS = $(BOOTLOADER_ADDRESS_168)
125 MCUARCH = avr5
126 DEFINES += -DCONFIG_NO__HAVE_READ_LOCK_FUSE $(CHOOSEFLASHSAVE)
127 else ifeq ($(DEVICE), atmega168p)
128 FUSEOPT = $(FUSEOPT_168)
129 BOOTLOADER_ADDRESS = $(BOOTLOADER_ADDRESS_168)
130 MCUARCH = avr5
131 DEFINES += -DCONFIG_NO__HAVE_READ_LOCK_FUSE $(CHOOSEFLASHSAVE)
132 else ifeq ($(DEVICE), atmega168pa)
133 FUSEOPT = $(FUSEOPT_168)
134 BOOTLOADER_ADDRESS = $(BOOTLOADER_ADDRESS_168)
135 MCUARCH = avr5
136 DEFINES += -DCONFIG_NO__HAVE_READ_LOCK_FUSE $(CHOOSEFLASHSAVE)
137 else ifeq ($(DEVICE), atmega324a)
138 FUSEOPT = $(FUSEOPT_324)
139 BOOTLOADER_ADDRESS = $(BOOTLOADER_ADDRESS_324)
140 MCUARCH = avr5
141 else ifeq ($(DEVICE), atmega324p)
142 FUSEOPT = $(FUSEOPT_324)
143 BOOTLOADER_ADDRESS = $(BOOTLOADER_ADDRESS_324)
144 MCUARCH = avr5
145 else ifeq ($(DEVICE), atmega324pa)
146 FUSEOPT = $(FUSEOPT_324)
147 BOOTLOADER_ADDRESS = $(BOOTLOADER_ADDRESS_324)
148 MCUARCH = avr5
149 else ifeq ($(DEVICE), atmega328)
150 FUSEOPT = $(FUSEOPT_328)
151 BOOTLOADER_ADDRESS = $(BOOTLOADER_ADDRESS_328)
152 MCUARCH = avr5
153 else ifeq ($(DEVICE), atmega328p)
154 FUSEOPT = $(FUSEOPT_328)
155 BOOTLOADER_ADDRESS = $(BOOTLOADER_ADDRESS_328)
156 MCUARCH = avr5
157 else ifeq ($(DEVICE), atmega644)
158 FUSEOPT = $(FUSEOPT_644)
159 BOOTLOADER_ADDRESS = $(BOOTLOADER_ADDRESS_644)
160 MCUARCH = avr5
161 else ifeq ($(DEVICE), atmega644a)
162 FUSEOPT = $(FUSEOPT_644)
163 BOOTLOADER_ADDRESS = $(BOOTLOADER_ADDRESS_644)
164 MCUARCH = avr5
165 else ifeq ($(DEVICE), atmega644p)
166 FUSEOPT = $(FUSEOPT_644)
167 BOOTLOADER_ADDRESS = $(BOOTLOADER_ADDRESS_644)
168 MCUARCH = avr5
169 else ifeq ($(DEVICE), atmega644pa)
170 FUSEOPT = $(FUSEOPT_644)
171 BOOTLOADER_ADDRESS = $(BOOTLOADER_ADDRESS_644)
172 MCUARCH = avr5
173 else ifeq ($(DEVICE), atmega128)
174 FUSEOPT = $(FUSEOPT_128)
175 BOOTLOADER_ADDRESS = $(BOOTLOADER_ADDRESS_128)
176 MCUARCH = avr51
177 else ifeq ($(DEVICE), atmega1284)
178 FUSEOPT = $(FUSEOPT_1284)
179 BOOTLOADER_ADDRESS = $(BOOTLOADER_ADDRESS_1284)
180 MCUARCH = avr51
181 else ifeq ($(DEVICE), atmega1284p)
182 FUSEOPT = $(FUSEOPT_1284)
183 BOOTLOADER_ADDRESS = $(BOOTLOADER_ADDRESS_1284)
184 MCUARCH = avr51
185 else
186 FUSEOPT = unknown
187 endif
188
189 NEW_BOOTLOADER_ADDRESS = $(BOOTLOADER_ADDRESS)
190
191 # Tools:
192 AVRPATH = $(AVR8TOOLCHAINBINDIR)
193 AVRDUDE = @echo avrdude $(PROGRAMMER) -p $(DEVICE)
194
195 ECHO=@echo
196 GCC=@gcc
197 MAKE=@make
198 RM=@rm -f
199
200 CC=@$(AVRPATH)avr-gcc
201 OBC=@$(AVRPATH)avr-objcopy
202 OBD=@$(AVRPATH)avr-objdump
203 SIZ=@$(AVRPATH)avr-size
204