35 #ifndef _AVR_EEPROM_H_
36 #define _AVR_EEPROM_H_ 1
40 #if !E2END && !defined(__DOXYGEN__) && !defined(__COMPILING_AVR_LIBC__)
41 # warning "Device does not have EEPROM available."
46 #if defined (__AVR_AT94K__)
47 # define _EEPROM_SUFFIX _at94k
48 #elif defined (__AVR_AT43USB320__)
49 # define _EEPROM_SUFFIX _43u320
50 #elif defined (__AVR_AT43USB355__)
51 # define _EEPROM_SUFFIX _43u355
52 #elif defined (__AVR_AT76C711__)
53 # define _EEPROM_SUFFIX _76c711
54 #elif defined (__AVR_AT86RF401__)
55 # define _EEPROM_SUFFIX _86r401
56 #elif defined (__AVR_AT90PWM1__)
57 # define _EEPROM_SUFFIX _90pwm1
58 #elif defined (__AVR_AT90PWM2__)
59 # define _EEPROM_SUFFIX _90pwm2
60 #elif defined (__AVR_AT90PWM2B__)
61 # define _EEPROM_SUFFIX _90pwm2b
62 #elif defined (__AVR_AT90PWM3__)
63 # define _EEPROM_SUFFIX _90pwm3
64 #elif defined (__AVR_AT90PWM3B__)
65 # define _EEPROM_SUFFIX _90pwm3b
66 #elif defined (__AVR_AT90PWM216__)
67 # define _EEPROM_SUFFIX _90pwm216
68 #elif defined (__AVR_AT90PWM316__)
69 # define _EEPROM_SUFFIX _90pwm316
70 #elif defined (__AVR_AT90PWM161__)
71 # define _EEPROM_SUFFIX _90pwm161
72 #elif defined (__AVR_AT90PWM81__)
73 # define _EEPROM_SUFFIX _90pwm81
74 #elif defined (__AVR_ATmega16M1__)
75 # define _EEPROM_SUFFIX _m16m1
76 #elif defined (__AVR_ATmega8U2__)
77 # define _EEPROM_SUFFIX _m8u2
78 #elif defined (__AVR_ATmega16U2__)
79 # define _EEPROM_SUFFIX _m16u2
80 #elif defined (__AVR_ATmega16U4__)
81 # define _EEPROM_SUFFIX _m16u4
82 #elif defined (__AVR_ATmega32C1__)
83 # define _EEPROM_SUFFIX _m32c1
84 #elif defined (__AVR_ATmega32M1__)
85 # define _EEPROM_SUFFIX _m32m1
86 #elif defined (__AVR_ATmega32U2__)
87 # define _EEPROM_SUFFIX _m32u2
88 #elif defined (__AVR_ATmega32U4__)
89 # define _EEPROM_SUFFIX _m32u4
90 #elif defined (__AVR_ATmega32U6__)
91 # define _EEPROM_SUFFIX _m32u6
92 #elif defined (__AVR_ATmega64C1__)
93 # define _EEPROM_SUFFIX _m64c1
94 #elif defined (__AVR_ATmega64M1__)
95 # define _EEPROM_SUFFIX _m64m1
96 #elif defined (__AVR_ATmega128__)
97 # define _EEPROM_SUFFIX _m128
98 #elif defined (__AVR_ATmega128A__)
99 # define _EEPROM_SUFFIX _m128a
100 #elif defined (__AVR_ATmega1280__)
101 # define _EEPROM_SUFFIX _m1280
102 #elif defined (__AVR_ATmega1281__)
103 # define _EEPROM_SUFFIX _m1281
104 #elif defined (__AVR_ATmega1284__)
105 # define _EEPROM_SUFFIX _m1284
106 #elif defined (__AVR_ATmega1284P__)
107 # define _EEPROM_SUFFIX _m1284p
108 #elif defined (__AVR_ATmega128RFA1__)
109 # define _EEPROM_SUFFIX _m128rfa1
110 #elif defined (__AVR_ATmega1284RFR2__)
111 # define _EEPROM_SUFFIX _m1284rfr2
112 #elif defined (__AVR_ATmega128RFR2__)
113 # define _EEPROM_SUFFIX _m128rfr2
114 #elif defined (__AVR_ATmega2564RFR2__)
115 # define _EEPROM_SUFFIX _m2564rfr2
116 #elif defined (__AVR_ATmega256RFR2__)
117 # define _EEPROM_SUFFIX _m256rfr2
118 #elif defined (__AVR_ATmega2560__)
119 # define _EEPROM_SUFFIX _m2560
120 #elif defined (__AVR_ATmega2561__)
121 # define _EEPROM_SUFFIX _m2561
122 #elif defined (__AVR_AT90CAN32__)
123 # define _EEPROM_SUFFIX _can32
124 #elif defined (__AVR_AT90CAN64__)
125 # define _EEPROM_SUFFIX _can64
126 #elif defined (__AVR_AT90CAN128__)
127 # define _EEPROM_SUFFIX _can128
128 #elif defined (__AVR_AT90USB82__)
129 # define _EEPROM_SUFFIX _usb82
130 #elif defined (__AVR_AT90USB162__)
131 # define _EEPROM_SUFFIX _usb162
132 #elif defined (__AVR_AT90USB646__)
133 # define _EEPROM_SUFFIX _usb646
134 #elif defined (__AVR_AT90USB647__)
135 # define _EEPROM_SUFFIX _usb647
136 #elif defined (__AVR_AT90USB1286__)
137 # define _EEPROM_SUFFIX _usb1286
138 #elif defined (__AVR_AT90USB1287__)
139 # define _EEPROM_SUFFIX _usb1287
140 #elif defined (__AVR_ATmega644RFR2__)
141 # define _EEPROM_SUFFIX _m644rfr2
142 #elif defined (__AVR_ATmega64RFR2__)
143 # define _EEPROM_SUFFIX _m64rfr2
144 #elif defined (__AVR_ATmega64__)
145 # define _EEPROM_SUFFIX _m64
146 #elif defined (__AVR_ATmega64A__)
147 # define _EEPROM_SUFFIX _m64a
148 #elif defined (__AVR_ATmega640__)
149 # define _EEPROM_SUFFIX _m640
150 #elif defined (__AVR_ATmega644__)
151 # define _EEPROM_SUFFIX _m644
152 #elif defined (__AVR_ATmega644A__)
153 # define _EEPROM_SUFFIX _m644a
154 #elif defined (__AVR_ATmega644P__)
155 # define _EEPROM_SUFFIX _m644p
156 #elif defined (__AVR_ATmega644PA__)
157 # define _EEPROM_SUFFIX _m644pa
158 #elif defined (__AVR_ATmega645__)
159 # define _EEPROM_SUFFIX _m645
160 #elif defined (__AVR_ATmega645A__)
161 # define _EEPROM_SUFFIX _m645a
162 #elif defined (__AVR_ATmega645P__)
163 # define _EEPROM_SUFFIX _m645p
164 #elif defined (__AVR_ATmega6450__)
165 # define _EEPROM_SUFFIX _m6450
166 #elif defined (__AVR_ATmega6450A__)
167 # define _EEPROM_SUFFIX _m6450a
168 #elif defined (__AVR_ATmega6450P__)
169 # define _EEPROM_SUFFIX _m6450p
170 #elif defined (__AVR_ATmega649__)
171 # define _EEPROM_SUFFIX _m649
172 #elif defined (__AVR_ATmega649A__)
173 # define _EEPROM_SUFFIX _m649a
174 #elif defined (__AVR_ATmega649P__)
175 # define _EEPROM_SUFFIX _m649p
176 #elif defined (__AVR_ATmega6490__)
177 # define _EEPROM_SUFFIX _m6490
178 #elif defined (__AVR_ATmega6490A__)
179 # define _EEPROM_SUFFIX _m6490a
180 #elif defined (__AVR_ATmega6490P__)
181 # define _EEPROM_SUFFIX _m6490p
182 #elif defined (__AVR_ATmega103__)
183 # define _EEPROM_SUFFIX _m103
184 #elif defined (__AVR_ATmega32__)
185 # define _EEPROM_SUFFIX _m32
186 #elif defined (__AVR_ATmega32A__)
187 # define _EEPROM_SUFFIX _m32a
188 #elif defined (__AVR_ATmega323__)
189 # define _EEPROM_SUFFIX _m323
190 #elif defined (__AVR_ATmega324A__)
191 # define _EEPROM_SUFFIX _m324a
192 #elif defined (__AVR_ATmega324P__)
193 # define _EEPROM_SUFFIX _m324p
194 #elif defined (__AVR_ATmega324PA__)
195 # define _EEPROM_SUFFIX _m324pa
196 #elif defined (__AVR_ATmega325__)
197 # define _EEPROM_SUFFIX _m325
198 #elif defined (__AVR_ATmega325A__)
199 # define _EEPROM_SUFFIX _m325a
200 #elif defined (__AVR_ATmega325P__)
201 # define _EEPROM_SUFFIX _m325p
202 #elif defined (__AVR_ATmega325PA__)
203 # define _EEPROM_SUFFIX _m325pa
204 #elif defined (__AVR_ATmega3250__)
205 # define _EEPROM_SUFFIX _m3250
206 #elif defined (__AVR_ATmega3250A__)
207 # define _EEPROM_SUFFIX _m3250a
208 #elif defined (__AVR_ATmega3250P__)
209 # define _EEPROM_SUFFIX _m3250p
210 #elif defined (__AVR_ATmega3250PA__)
211 # define _EEPROM_SUFFIX _m3250pa
212 #elif defined (__AVR_ATmega328__)
213 # define _EEPROM_SUFFIX _m328
214 #elif defined (__AVR_ATmega328P__)
215 # define _EEPROM_SUFFIX _m328p
216 #elif defined (__AVR_ATmega329__)
217 # define _EEPROM_SUFFIX _m329
218 #elif defined (__AVR_ATmega329A__)
219 # define _EEPROM_SUFFIX _m329a
220 #elif defined (__AVR_ATmega329P__)
221 # define _EEPROM_SUFFIX _m329p
222 #elif defined (__AVR_ATmega329PA__)
223 # define _EEPROM_SUFFIX _m329pa
224 #elif defined (__AVR_ATmega3290__)
225 # define _EEPROM_SUFFIX _m3290
226 #elif defined (__AVR_ATmega3290A__)
227 # define _EEPROM_SUFFIX _m3290a
228 #elif defined (__AVR_ATmega3290P__)
229 # define _EEPROM_SUFFIX _m3290p
230 #elif defined (__AVR_ATmega3290PA__)
231 # define _EEPROM_SUFFIX _m3290pa
232 #elif defined (__AVR_ATmega32HVB__)
233 # define _EEPROM_SUFFIX _m32hvb
234 #elif defined (__AVR_ATmega32HVBREVB__)
235 # define _EEPROM_SUFFIX _m32hvbrevb
236 #elif defined (__AVR_ATmega64HVE__)
237 # define _EEPROM_SUFFIX _m64hve
238 #elif defined (__AVR_ATmega406__)
239 # define _EEPROM_SUFFIX _m406
240 #elif defined (__AVR_ATmega16__)
241 # define _EEPROM_SUFFIX _m16
242 #elif defined (__AVR_ATmega16A__)
243 # define _EEPROM_SUFFIX _m16a
244 #elif defined (__AVR_ATmega161__)
245 # define _EEPROM_SUFFIX _m161
246 #elif defined (__AVR_ATmega162__)
247 # define _EEPROM_SUFFIX _m162
248 #elif defined (__AVR_ATmega163__)
249 # define _EEPROM_SUFFIX _m163
250 #elif defined (__AVR_ATmega164__)
251 # define _EEPROM_SUFFIX _m164
252 #elif defined (__AVR_ATmega164P__)
253 # define _EEPROM_SUFFIX _m164p
254 #elif defined (__AVR_ATmega164PA__)
255 # define _EEPROM_SUFFIX _m164pa
256 #elif defined (__AVR_ATmega165__)
257 # define _EEPROM_SUFFIX _m165
258 #elif defined (__AVR_ATmega165A__)
259 # define _EEPROM_SUFFIX _m165a
260 #elif defined (__AVR_ATmega165P__)
261 # define _EEPROM_SUFFIX _m165p
262 #elif defined (__AVR_ATmega165PA__)
263 # define _EEPROM_SUFFIX _m165pa
264 #elif defined (__AVR_ATmega168__)
265 # define _EEPROM_SUFFIX _m168
266 #elif defined (__AVR_ATmega168A__)
267 # define _EEPROM_SUFFIX _m168a
268 #elif defined (__AVR_ATmega168P__)
269 # define _EEPROM_SUFFIX _m168p
270 #elif defined (__AVR_ATmega168PA__)
271 # define _EEPROM_SUFFIX _m168pa
272 #elif defined (__AVR_ATmega169__)
273 # define _EEPROM_SUFFIX _m169
274 #elif defined (__AVR_ATmega169A__)
275 # define _EEPROM_SUFFIX _m169a
276 #elif defined (__AVR_ATmega169P__)
277 # define _EEPROM_SUFFIX _m169p
278 #elif defined (__AVR_ATmega169PA__)
279 # define _EEPROM_SUFFIX _m169pa
280 #elif defined (__AVR_ATmega8HVA__)
281 # define _EEPROM_SUFFIX _m8hva
282 #elif defined (__AVR_ATmega16HVA__)
283 # define _EEPROM_SUFFIX _m16hva
284 #elif defined (__AVR_ATmega16HVA2__)
285 # define _EEPROM_SUFFIX _m16hva2
286 #elif defined (__AVR_ATmega16HVB__)
287 # define _EEPROM_SUFFIX _m16hvb
288 #elif defined (__AVR_ATmega16HVBREVB__)
289 # define _EEPROM_SUFFIX _m16hvbrevb
290 #elif defined (__AVR_ATmega8__)
291 # define _EEPROM_SUFFIX _m8
292 #elif defined (__AVR_ATmega8A__)
293 # define _EEPROM_SUFFIX _m8a
294 #elif defined (__AVR_ATmega48__)
295 # define _EEPROM_SUFFIX _m48
296 #elif defined (__AVR_ATmega48A__)
297 # define _EEPROM_SUFFIX _m48a
298 #elif defined (__AVR_ATmega48PA__)
299 # define _EEPROM_SUFFIX _m48pa
300 #elif defined (__AVR_ATmega48P__)
301 # define _EEPROM_SUFFIX _m48p
302 #elif defined (__AVR_ATmega88__)
303 # define _EEPROM_SUFFIX _m88
304 #elif defined (__AVR_ATmega88A__)
305 # define _EEPROM_SUFFIX _m88a
306 #elif defined (__AVR_ATmega88P__)
307 # define _EEPROM_SUFFIX _m88p
308 #elif defined (__AVR_ATmega88PA__)
309 # define _EEPROM_SUFFIX _m88pa
310 #elif defined (__AVR_ATmega8515__)
311 # define _EEPROM_SUFFIX _m8515
312 #elif defined (__AVR_ATmega8535__)
313 # define _EEPROM_SUFFIX _m8535
314 #elif defined (__AVR_AT90S8535__)
315 # define _EEPROM_SUFFIX _8535
316 #elif defined (__AVR_AT90C8534__)
317 # define _EEPROM_SUFFIX _8534
318 #elif defined (__AVR_AT90S8515__)
319 # define _EEPROM_SUFFIX _8515
320 #elif defined (__AVR_AT90S4434__)
321 # define _EEPROM_SUFFIX _4434
322 #elif defined (__AVR_AT90S4433__)
323 # define _EEPROM_SUFFIX _4433
324 #elif defined (__AVR_AT90S4414__)
325 # define _EEPROM_SUFFIX _4414
326 #elif defined (__AVR_ATtiny22__)
327 # define _EEPROM_SUFFIX _tn22
328 #elif defined (__AVR_ATtiny26__)
329 # define _EEPROM_SUFFIX _tn26
330 #elif defined (__AVR_AT90S2343__)
331 # define _EEPROM_SUFFIX _2343
332 #elif defined (__AVR_AT90S2333__)
333 # define _EEPROM_SUFFIX _2333
334 #elif defined (__AVR_AT90S2323__)
335 # define _EEPROM_SUFFIX _2323
336 #elif defined (__AVR_AT90S2313__)
337 # define _EEPROM_SUFFIX _2313
338 #elif defined (__AVR_ATtiny2313__)
339 # define _EEPROM_SUFFIX _tn2313
340 #elif defined (__AVR_ATtiny2313A__)
341 # define _EEPROM_SUFFIX _tn2313a
342 #elif defined (__AVR_ATtiny4313__)
343 # define _EEPROM_SUFFIX _tn4313
344 #elif defined (__AVR_ATtiny13__)
345 # define _EEPROM_SUFFIX _tn13
346 #elif defined (__AVR_ATtiny13A__)
347 # define _EEPROM_SUFFIX _tn13a
348 #elif defined (__AVR_ATtiny25__)
349 # define _EEPROM_SUFFIX _tn25
350 #elif defined (__AVR_ATtiny45__)
351 # define _EEPROM_SUFFIX _tn45
352 #elif defined (__AVR_ATtiny85__)
353 # define _EEPROM_SUFFIX _tn85
354 #elif defined (__AVR_ATtiny24__)
355 # define _EEPROM_SUFFIX _tn24
356 #elif defined (__AVR_ATtiny24A__)
357 # define _EEPROM_SUFFIX _tn24a
358 #elif defined (__AVR_ATtiny44__)
359 # define _EEPROM_SUFFIX _tn44
360 #elif defined (__AVR_ATtiny44A__)
361 # define _EEPROM_SUFFIX _tn44a
362 #elif defined (__AVR_ATtiny84__)
363 # define _EEPROM_SUFFIX _tn84
364 #elif defined (__AVR_ATtiny84A__)
365 # define _EEPROM_SUFFIX _tn84a
366 #elif defined (__AVR_ATtiny261__)
367 # define _EEPROM_SUFFIX _tn261
368 #elif defined (__AVR_ATtiny261A__)
369 # define _EEPROM_SUFFIX _tn261a
370 #elif defined (__AVR_ATtiny461__)
371 # define _EEPROM_SUFFIX _tn461
372 #elif defined (__AVR_ATtiny461A__)
373 # define _EEPROM_SUFFIX _tn461a
374 #elif defined (__AVR_ATtiny861__)
375 # define _EEPROM_SUFFIX _tn861
376 #elif defined (__AVR_ATtiny861A__)
377 # define _EEPROM_SUFFIX _tn861a
378 #elif defined (__AVR_ATtiny43U__)
379 # define _EEPROM_SUFFIX _tn43u
380 #elif defined (__AVR_ATtiny48__)
381 # define _EEPROM_SUFFIX _tn48
382 #elif defined (__AVR_ATtiny828__)
383 # define _EEPROM_SUFFIX _tn828
384 #elif defined (__AVR_ATtiny88__)
385 # define _EEPROM_SUFFIX _tn88
386 #elif defined (__AVR_ATtiny87__)
387 # define _EEPROM_SUFFIX _tn87
388 #elif defined (__AVR_ATtiny167__)
389 # define _EEPROM_SUFFIX _tn167
390 #elif defined (__AVR_ATtiny1634__)
391 # define _EEPROM_SUFFIX _tn1634
392 #elif defined (__AVR_AT90SCR100__)
393 # define _EEPROM_SUFFIX _90scr100
394 #elif defined (__AVR_ATxmega16A4__)
395 # define _EEPROM_SUFFIX _x16a4
396 #elif defined (__AVR_ATxmega16A4U__)
397 # define _EEPROM_SUFFIX _x16a4u
398 #elif defined (__AVR_ATxmega16C4__)
399 # define _EEPROM_SUFFIX _x16c4
400 #elif defined (__AVR_ATxmega16D4__)
401 # define _EEPROM_SUFFIX _x16d4
402 #elif defined (__AVR_ATxmega32A4__)
403 # define _EEPROM_SUFFIX _x32a4
404 #elif defined (__AVR_ATxmega32A4U__)
405 # define _EEPROM_SUFFIX _x32a4u
406 #elif defined (__AVR_ATxmega32C4__)
407 # define _EEPROM_SUFFIX _x32c4
408 #elif defined (__AVR_ATxmega32D4__)
409 # define _EEPROM_SUFFIX _x32d4
410 #elif defined (__AVR_ATxmega64A1__)
411 # define _EEPROM_SUFFIX _x64a1
412 #elif defined (__AVR_ATxmega64A1U__)
413 # define _EEPROM_SUFFIX _x64a1u
414 #elif defined (__AVR_ATxmega64A3__)
415 # define _EEPROM_SUFFIX _x64a3
416 #elif defined (__AVR_ATxmega64A3U__)
417 # define _EEPROM_SUFFIX _x64a3u
418 #elif defined (__AVR_ATxmega64A4U__)
419 # define _EEPROM_SUFFIX _x64a4u
420 #elif defined (__AVR_ATxmega64B1__)
421 # define _EEPROM_SUFFIX _x64b1
422 #elif defined (__AVR_ATxmega64B3__)
423 # define _EEPROM_SUFFIX _x64b3
424 #elif defined (__AVR_ATxmega64C3__)
425 # define _EEPROM_SUFFIX _x64c3
426 #elif defined (__AVR_ATxmega64D3__)
427 # define _EEPROM_SUFFIX _x64d3
428 #elif defined (__AVR_ATxmega64D4__)
429 # define _EEPROM_SUFFIX _x64d4
430 #elif defined (__AVR_ATxmega128A1__)
431 # define _EEPROM_SUFFIX _x128a1
432 #elif defined (__AVR_ATxmega128A1U__)
433 # define _EEPROM_SUFFIX _x128a1u
434 #elif defined (__AVR_ATxmega128A4U__)
435 # define _EEPROM_SUFFIX _x128a4u
436 #elif defined (__AVR_ATxmega128A3__)
437 # define _EEPROM_SUFFIX _x128a3
438 #elif defined (__AVR_ATxmega128A3U__)
439 # define _EEPROM_SUFFIX _x128a3u
440 #elif defined (__AVR_ATxmega128B1__)
441 # define _EEPROM_SUFFIX _x128b1
442 #elif defined (__AVR_ATxmega128B3__)
443 # define _EEPROM_SUFFIX _x128b3
444 #elif defined (__AVR_ATxmega128C3__)
445 # define _EEPROM_SUFFIX _x128c3
446 #elif defined (__AVR_ATxmega128D3__)
447 # define _EEPROM_SUFFIX _x128d3
448 #elif defined (__AVR_ATxmega128D4__)
449 # define _EEPROM_SUFFIX _x128d4
450 #elif defined (__AVR_ATxmega192A3__)
451 # define _EEPROM_SUFFIX _x192a3
452 #elif defined (__AVR_ATxmega192A3U__)
453 # define _EEPROM_SUFFIX _x192a3u
454 #elif defined (__AVR_ATxmega192C3__)
455 # define _EEPROM_SUFFIX _x192c3
456 #elif defined (__AVR_ATxmega192D3__)
457 # define _EEPROM_SUFFIX _x192d3
458 #elif defined (__AVR_ATxmega256A3__)
459 # define _EEPROM_SUFFIX _x256a3
460 #elif defined (__AVR_ATxmega256A3U__)
461 # define _EEPROM_SUFFIX _x256a3u
462 #elif defined (__AVR_ATxmega256A3B__)
463 # define _EEPROM_SUFFIX _x256a3b
464 #elif defined (__AVR_ATxmega256A3BU__)
465 # define _EEPROM_SUFFIX _x256a3bu
466 #elif defined (__AVR_ATxmega256C3__)
467 # define _EEPROM_SUFFIX _x256c3
468 #elif defined (__AVR_ATxmega256D3__)
469 # define _EEPROM_SUFFIX _x256d3
470 #elif defined (__AVR_ATxmega384C3__)
471 # define _EEPROM_SUFFIX _x384c3
472 #elif defined (__AVR_ATxmega384D3__)
473 # define _EEPROM_SUFFIX _x384d3
474 #elif defined (__AVR_ATA5505__)
475 # define _EEPROM_SUFFIX _a5505
476 #elif defined (__AVR_ATA5272__)
477 # define _EEPROM_SUFFIX _a5272
478 #elif defined (__AVR_ATA6285__)
479 # define _EEPROM_SUFFIX _a6285
480 #elif defined (__AVR_ATA6286__)
481 # define _EEPROM_SUFFIX _a6286
482 #elif defined (__AVR_ATA6289__)
483 # define _EEPROM_SUFFIX _a6289
484 #elif defined (__AVR_ATA5790__)
485 # define _EEPROM_SUFFIX _a5790
486 #elif defined (__AVR_ATA5795__)
487 # define _EEPROM_SUFFIX _a5795
489 #elif defined (__AVR_ATtiny28__)
490 # define _EEPROM_SUFFIX _tn28
491 #elif defined (__AVR_AT90S1200__)
492 # define _EEPROM_SUFFIX _1200
493 #elif defined (__AVR_ATtiny15__)
494 # define _EEPROM_SUFFIX _tn15
495 #elif defined (__AVR_ATtiny12__)
496 # define _EEPROM_SUFFIX _tn12
497 #elif defined (__AVR_ATtiny11__)
498 # define _EEPROM_SUFFIX _tn11
500 # define _EEPROM_SUFFIX _UNKNOWN
503 #define _EEPROM_CONCAT1(s1, s2) s1 ## s2
504 #define _EEPROM_CONCAT2(s1, s2) _EEPROM_CONCAT1 (s1, s2)
506 #define eeprom_read_byte _EEPROM_CONCAT2 (__eerd_byte, _EEPROM_SUFFIX)
507 #define eeprom_read_word _EEPROM_CONCAT2 (__eerd_word, _EEPROM_SUFFIX)
508 #define eeprom_read_dword _EEPROM_CONCAT2 (__eerd_dword, _EEPROM_SUFFIX)
509 #define eeprom_read_float _EEPROM_CONCAT2 (__eerd_float, _EEPROM_SUFFIX)
510 #define eeprom_read_block _EEPROM_CONCAT2 (__eerd_block, _EEPROM_SUFFIX)
512 #define eeprom_write_byte _EEPROM_CONCAT2 (__eewr_byte, _EEPROM_SUFFIX)
513 #define eeprom_write_word _EEPROM_CONCAT2 (__eewr_word, _EEPROM_SUFFIX)
514 #define eeprom_write_dword _EEPROM_CONCAT2 (__eewr_dword, _EEPROM_SUFFIX)
515 #define eeprom_write_float _EEPROM_CONCAT2 (__eewr_float, _EEPROM_SUFFIX)
516 #define eeprom_write_block _EEPROM_CONCAT2 (__eewr_block, _EEPROM_SUFFIX)
518 #define eeprom_update_byte _EEPROM_CONCAT2 (__eeupd_byte, _EEPROM_SUFFIX)
519 #define eeprom_update_word _EEPROM_CONCAT2 (__eeupd_word, _EEPROM_SUFFIX)
520 #define eeprom_update_dword _EEPROM_CONCAT2 (__eeupd_dword, _EEPROM_SUFFIX)
521 #define eeprom_update_float _EEPROM_CONCAT2 (__eeupd_float, _EEPROM_SUFFIX)
522 #define eeprom_update_block _EEPROM_CONCAT2 (__eeupd_block, _EEPROM_SUFFIX)
526 #ifndef __ASSEMBLER__
573 #ifndef __ATTR_PURE__
575 # define __ATTR_PURE__
577 # define __ATTR_PURE__ __attribute__((__pure__))
585 #define EEMEM __attribute__((section(".eeprom")))
591 #if defined (__DOXYGEN__)
592 # define eeprom_is_ready()
593 #elif defined (__AVR_XMEGA__) && __AVR_XMEGA__
594 # define eeprom_is_ready() bit_is_clear (NVM_STATUS, NVM_NVMBUSY_bp)
595 #elif defined (DEECR)
596 # define eeprom_is_ready() bit_is_clear (DEECR, BSY)
598 # define eeprom_is_ready() bit_is_clear (EECR, EEPE)
600 # define eeprom_is_ready() bit_is_clear (EECR, EEWE)
609 #define eeprom_busy_wait() do {} while (!eeprom_is_ready())
699 #define _EEPUT(addr, val) eeprom_write_byte ((uint8_t *)(addr), (uint8_t)(val))
704 #define __EEPUT(addr, val) eeprom_write_byte ((uint8_t *)(addr), (uint8_t)(val))
709 #define _EEGET(var, addr) (var) = eeprom_read_byte ((const uint8_t *)(addr))
714 #define __EEGET(var, addr) (var) = eeprom_read_byte ((const uint8_t *)(addr))
void eeprom_update_block(const void *__src, void *__dst, size_t __n)
void eeprom_write_block(const void *__src, void *__dst, size_t __n)
void eeprom_update_word(uint16_t *__p, uint16_t __value)
void eeprom_write_byte(uint8_t *__p, uint8_t __value)
void eeprom_read_block(void *__dst, const void *__src, size_t __n)
void eeprom_write_dword(uint32_t *__p, uint32_t __value)
float eeprom_read_float(const float *__p) __ATTR_PURE__
void eeprom_update_dword(uint32_t *__p, uint32_t __value)
void eeprom_write_float(float *__p, float __value)
void eeprom_update_byte(uint8_t *__p, uint8_t __value)
unsigned char uint8_t
Definition: stdint.h:80
unsigned long int uint32_t
Definition: stdint.h:100
uint32_t eeprom_read_dword(const uint32_t *__p) __ATTR_PURE__
void eeprom_write_word(uint16_t *__p, uint16_t __value)
void eeprom_update_float(float *__p, float __value)
uint8_t eeprom_read_byte(const uint8_t *__p) __ATTR_PURE__
uint16_t eeprom_read_word(const uint16_t *__p) __ATTR_PURE__
unsigned int uint16_t
Definition: stdint.h:90