00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035 #ifndef _AVR_EEPROM_H_
00036 #define _AVR_EEPROM_H_ 1
00037
00038 #include <avr/io.h>
00039
00040 #if !E2END && !defined(__DOXYGEN__) && !defined(__COMPILING_AVR_LIBC__)
00041 # warning "Device does not have EEPROM available."
00042 #else
00043
00044 #ifndef __DOXYGEN__
00045
00046 #if defined (__AVR_AT94K__)
00047 # define _EEPROM_SUFFIX _at94k
00048 #elif defined (__AVR_AT43USB320__)
00049 # define _EEPROM_SUFFIX _43u320
00050 #elif defined (__AVR_AT43USB355__)
00051 # define _EEPROM_SUFFIX _43u355
00052 #elif defined (__AVR_AT76C711__)
00053 # define _EEPROM_SUFFIX _76c711
00054 #elif defined (__AVR_AT86RF401__)
00055 # define _EEPROM_SUFFIX _86r401
00056 #elif defined (__AVR_AT90PWM1__)
00057 # define _EEPROM_SUFFIX _90pwm1
00058 #elif defined (__AVR_AT90PWM2__)
00059 # define _EEPROM_SUFFIX _90pwm2
00060 #elif defined (__AVR_AT90PWM2B__)
00061 # define _EEPROM_SUFFIX _90pwm2b
00062 #elif defined (__AVR_AT90PWM3__)
00063 # define _EEPROM_SUFFIX _90pwm3
00064 #elif defined (__AVR_AT90PWM3B__)
00065 # define _EEPROM_SUFFIX _90pwm3b
00066 #elif defined (__AVR_AT90PWM216__)
00067 # define _EEPROM_SUFFIX _90pwm216
00068 #elif defined (__AVR_AT90PWM316__)
00069 # define _EEPROM_SUFFIX _90pwm316
00070 #elif defined (__AVR_AT90PWM81__)
00071 # define _EEPROM_SUFFIX _90pwm81
00072 #elif defined (__AVR_ATmega16M1__)
00073 # define _EEPROM_SUFFIX _m16m1
00074 #elif defined (__AVR_ATmega8U2__)
00075 # define _EEPROM_SUFFIX _m8u2
00076 #elif defined (__AVR_ATmega16U2__)
00077 # define _EEPROM_SUFFIX _m16u2
00078 #elif defined (__AVR_ATmega16U4__)
00079 # define _EEPROM_SUFFIX _m16u4
00080 #elif defined (__AVR_ATmega32C1__)
00081 # define _EEPROM_SUFFIX _m32c1
00082 #elif defined (__AVR_ATmega32M1__)
00083 # define _EEPROM_SUFFIX _m32m1
00084 #elif defined (__AVR_ATmega32U2__)
00085 # define _EEPROM_SUFFIX _m32u2
00086 #elif defined (__AVR_ATmega32U4__)
00087 # define _EEPROM_SUFFIX _m32u4
00088 #elif defined (__AVR_ATmega32U6__)
00089 # define _EEPROM_SUFFIX _m32u6
00090 #elif defined (__AVR_ATmega64C1__)
00091 # define _EEPROM_SUFFIX _m64c1
00092 #elif defined (__AVR_ATmega64M1__)
00093 # define _EEPROM_SUFFIX _m64m1
00094 #elif defined (__AVR_ATmega128__)
00095 # define _EEPROM_SUFFIX _m128
00096 #elif defined (__AVR_ATmega1280__)
00097 # define _EEPROM_SUFFIX _m1280
00098 #elif defined (__AVR_ATmega1281__)
00099 # define _EEPROM_SUFFIX _m1281
00100 #elif defined (__AVR_ATmega1284P__)
00101 # define _EEPROM_SUFFIX _m1284p
00102 #elif defined (__AVR_ATmega128RFA1__)
00103 # define _EEPROM_SUFFIX _m128rfa1
00104 #elif defined (__AVR_ATmega2560__)
00105 # define _EEPROM_SUFFIX _m2560
00106 #elif defined (__AVR_ATmega2561__)
00107 # define _EEPROM_SUFFIX _m2561
00108 #elif defined (__AVR_AT90CAN32__)
00109 # define _EEPROM_SUFFIX _can32
00110 #elif defined (__AVR_AT90CAN64__)
00111 # define _EEPROM_SUFFIX _can64
00112 #elif defined (__AVR_AT90CAN128__)
00113 # define _EEPROM_SUFFIX _can128
00114 #elif defined (__AVR_AT90USB82__)
00115 # define _EEPROM_SUFFIX _usb82
00116 #elif defined (__AVR_AT90USB162__)
00117 # define _EEPROM_SUFFIX _usb162
00118 #elif defined (__AVR_AT90USB646__)
00119 # define _EEPROM_SUFFIX _usb646
00120 #elif defined (__AVR_AT90USB647__)
00121 # define _EEPROM_SUFFIX _usb647
00122 #elif defined (__AVR_AT90USB1286__)
00123 # define _EEPROM_SUFFIX _usb1286
00124 #elif defined (__AVR_AT90USB1287__)
00125 # define _EEPROM_SUFFIX _usb1287
00126 #elif defined (__AVR_ATmega64__)
00127 # define _EEPROM_SUFFIX _m64
00128 #elif defined (__AVR_ATmega640__)
00129 # define _EEPROM_SUFFIX _m640
00130 #elif defined (__AVR_ATmega644__)
00131 # define _EEPROM_SUFFIX _m644
00132 #elif defined (__AVR_ATmega644A__)
00133 # define _EEPROM_SUFFIX _m644a
00134 #elif defined (__AVR_ATmega644P__)
00135 # define _EEPROM_SUFFIX _m644p
00136 #elif defined (__AVR_ATmega644PA__)
00137 # define _EEPROM_SUFFIX _m644pa
00138 #elif defined (__AVR_ATmega645__)
00139 # define _EEPROM_SUFFIX _m645
00140 #elif defined (__AVR_ATmega645A__)
00141 # define _EEPROM_SUFFIX _m645a
00142 #elif defined (__AVR_ATmega645P__)
00143 # define _EEPROM_SUFFIX _m645p
00144 #elif defined (__AVR_ATmega6450__)
00145 # define _EEPROM_SUFFIX _m6450
00146 #elif defined (__AVR_ATmega6450A__)
00147 # define _EEPROM_SUFFIX _m6450a
00148 #elif defined (__AVR_ATmega6450P__)
00149 # define _EEPROM_SUFFIX _m6450p
00150 #elif defined (__AVR_ATmega649__)
00151 # define _EEPROM_SUFFIX _m649
00152 #elif defined (__AVR_ATmega649A__)
00153 # define _EEPROM_SUFFIX _m649a
00154 #elif defined (__AVR_ATmega649P__)
00155 # define _EEPROM_SUFFIX _m649p
00156 #elif defined (__AVR_ATmega6490__)
00157 # define _EEPROM_SUFFIX _m6490
00158 #elif defined (__AVR_ATmega6490A__)
00159 # define _EEPROM_SUFFIX _m6490a
00160 #elif defined (__AVR_ATmega6490P__)
00161 # define _EEPROM_SUFFIX _m6490p
00162 #elif defined (__AVR_ATmega103__)
00163 # define _EEPROM_SUFFIX _m103
00164 #elif defined (__AVR_ATmega32__)
00165 # define _EEPROM_SUFFIX _m32
00166 #elif defined (__AVR_ATmega323__)
00167 # define _EEPROM_SUFFIX _m323
00168 #elif defined (__AVR_ATmega324A__)
00169 # define _EEPROM_SUFFIX _m324a
00170 #elif defined (__AVR_ATmega324P__)
00171 # define _EEPROM_SUFFIX _m324p
00172 #elif defined (__AVR_ATmega324PA__)
00173 # define _EEPROM_SUFFIX _m324pa
00174 #elif defined (__AVR_ATmega325__)
00175 # define _EEPROM_SUFFIX _m325
00176 #elif defined (__AVR_ATmega325A__)
00177 # define _EEPROM_SUFFIX _m325a
00178 #elif defined (__AVR_ATmega325P__)
00179 # define _EEPROM_SUFFIX _m325p
00180 #elif defined (__AVR_ATmega3250__)
00181 # define _EEPROM_SUFFIX _m3250
00182 #elif defined (__AVR_ATmega3250A__)
00183 # define _EEPROM_SUFFIX _m3250a
00184 #elif defined (__AVR_ATmega3250P__)
00185 # define _EEPROM_SUFFIX _m3250p
00186 #elif defined (__AVR_ATmega328__)
00187 # define _EEPROM_SUFFIX _m328
00188 #elif defined (__AVR_ATmega328P__)
00189 # define _EEPROM_SUFFIX _m328p
00190 #elif defined (__AVR_ATmega329__)
00191 # define _EEPROM_SUFFIX _m329
00192 #elif defined (__AVR_ATmega329A__)
00193 # define _EEPROM_SUFFIX _m329a
00194 #elif defined (__AVR_ATmega329P__)
00195 # define _EEPROM_SUFFIX _m329p
00196 #elif defined (__AVR_ATmega329PA__)
00197 # define _EEPROM_SUFFIX _m329pa
00198 #elif defined (__AVR_ATmega3290__)
00199 # define _EEPROM_SUFFIX _m3290
00200 #elif defined (__AVR_ATmega3290A__)
00201 # define _EEPROM_SUFFIX _m3290a
00202 #elif defined (__AVR_ATmega3290P__)
00203 # define _EEPROM_SUFFIX _m3290p
00204 #elif defined (__AVR_ATmega32HVB__)
00205 # define _EEPROM_SUFFIX _m32hvb
00206 #elif defined (__AVR_ATmega64HVE__)
00207 # define _EEPROM_SUFFIX _m64hve
00208 #elif defined (__AVR_ATmega406__)
00209 # define _EEPROM_SUFFIX _m406
00210 #elif defined (__AVR_ATmega16__)
00211 # define _EEPROM_SUFFIX _m16
00212 #elif defined (__AVR_ATmega16A__)
00213 # define _EEPROM_SUFFIX _m16a
00214 #elif defined (__AVR_ATmega161__)
00215 # define _EEPROM_SUFFIX _m161
00216 #elif defined (__AVR_ATmega162__)
00217 # define _EEPROM_SUFFIX _m162
00218 #elif defined (__AVR_ATmega163__)
00219 # define _EEPROM_SUFFIX _m163
00220 #elif defined (__AVR_ATmega164__)
00221 # define _EEPROM_SUFFIX _m164
00222 #elif defined (__AVR_ATmega164P__)
00223 # define _EEPROM_SUFFIX _m164p
00224 #elif defined (__AVR_ATmega165__)
00225 # define _EEPROM_SUFFIX _m165
00226 #elif defined (__AVR_ATmega165A__)
00227 # define _EEPROM_SUFFIX _m165a
00228 #elif defined (__AVR_ATmega165P__)
00229 # define _EEPROM_SUFFIX _m165p
00230 #elif defined (__AVR_ATmega168__)
00231 # define _EEPROM_SUFFIX _m168
00232 #elif defined (__AVR_ATmega168A__)
00233 # define _EEPROM_SUFFIX _m168a
00234 #elif defined (__AVR_ATmega168P__)
00235 # define _EEPROM_SUFFIX _m168p
00236 #elif defined (__AVR_ATmega169__)
00237 # define _EEPROM_SUFFIX _m169
00238 #elif defined (__AVR_ATmega169A__)
00239 # define _EEPROM_SUFFIX _m169a
00240 #elif defined (__AVR_ATmega169P__)
00241 # define _EEPROM_SUFFIX _m169p
00242 #elif defined (__AVR_ATmega169PA__)
00243 # define _EEPROM_SUFFIX _m169pa
00244 #elif defined (__AVR_ATmega8HVA__)
00245 # define _EEPROM_SUFFIX _m8hva
00246 #elif defined (__AVR_ATmega16HVA__)
00247 # define _EEPROM_SUFFIX _m16hva
00248 #elif defined (__AVR_ATmega16HVA2__)
00249 # define _EEPROM_SUFFIX _m16hva2
00250 #elif defined (__AVR_ATmega16HVB__)
00251 # define _EEPROM_SUFFIX _m16hvb
00252 #elif defined (__AVR_ATmega8__)
00253 # define _EEPROM_SUFFIX _m8
00254 #elif defined (__AVR_ATmega48__)
00255 # define _EEPROM_SUFFIX _m48
00256 #elif defined (__AVR_ATmega48A__)
00257 # define _EEPROM_SUFFIX _m48a
00258 #elif defined (__AVR_ATmega48P__)
00259 # define _EEPROM_SUFFIX _m48p
00260 #elif defined (__AVR_ATmega88__)
00261 # define _EEPROM_SUFFIX _m88
00262 #elif defined (__AVR_ATmega88A__)
00263 # define _EEPROM_SUFFIX _m88a
00264 #elif defined (__AVR_ATmega88P__)
00265 # define _EEPROM_SUFFIX _m88p
00266 #elif defined (__AVR_ATmega88PA__)
00267 # define _EEPROM_SUFFIX _m88pa
00268 #elif defined (__AVR_ATmega8515__)
00269 # define _EEPROM_SUFFIX _m8515
00270 #elif defined (__AVR_ATmega8535__)
00271 # define _EEPROM_SUFFIX _m8535
00272 #elif defined (__AVR_AT90S8535__)
00273 # define _EEPROM_SUFFIX _8535
00274 #elif defined (__AVR_AT90C8534__)
00275 # define _EEPROM_SUFFIX _8534
00276 #elif defined (__AVR_AT90S8515__)
00277 # define _EEPROM_SUFFIX _8515
00278 #elif defined (__AVR_AT90S4434__)
00279 # define _EEPROM_SUFFIX _4434
00280 #elif defined (__AVR_AT90S4433__)
00281 # define _EEPROM_SUFFIX _4433
00282 #elif defined (__AVR_AT90S4414__)
00283 # define _EEPROM_SUFFIX _4414
00284 #elif defined (__AVR_ATtiny22__)
00285 # define _EEPROM_SUFFIX _tn22
00286 #elif defined (__AVR_ATtiny26__)
00287 # define _EEPROM_SUFFIX _tn26
00288 #elif defined (__AVR_AT90S2343__)
00289 # define _EEPROM_SUFFIX _2343
00290 #elif defined (__AVR_AT90S2333__)
00291 # define _EEPROM_SUFFIX _2333
00292 #elif defined (__AVR_AT90S2323__)
00293 # define _EEPROM_SUFFIX _2323
00294 #elif defined (__AVR_AT90S2313__)
00295 # define _EEPROM_SUFFIX _2313
00296 #elif defined (__AVR_ATtiny2313__)
00297 # define _EEPROM_SUFFIX _tn2313
00298 #elif defined (__AVR_ATtiny2313A__)
00299 # define _EEPROM_SUFFIX _tn2313a
00300 #elif defined (__AVR_ATtiny4313__)
00301 # define _EEPROM_SUFFIX _tn4313
00302 #elif defined (__AVR_ATtiny13__)
00303 # define _EEPROM_SUFFIX _tn13
00304 #elif defined (__AVR_ATtiny13A__)
00305 # define _EEPROM_SUFFIX _tn13a
00306 #elif defined (__AVR_ATtiny25__)
00307 # define _EEPROM_SUFFIX _tn25
00308 #elif defined (__AVR_ATtiny45__)
00309 # define _EEPROM_SUFFIX _tn45
00310 #elif defined (__AVR_ATtiny85__)
00311 # define _EEPROM_SUFFIX _tn85
00312 #elif defined (__AVR_ATtiny24__)
00313 # define _EEPROM_SUFFIX _tn24
00314 #elif defined (__AVR_ATtiny24A__)
00315 # define _EEPROM_SUFFIX _tn24a
00316 #elif defined (__AVR_ATtiny44__)
00317 # define _EEPROM_SUFFIX _tn44
00318 #elif defined (__AVR_ATtiny44A__)
00319 # define _EEPROM_SUFFIX _tn44a
00320 #elif defined (__AVR_ATtiny84__)
00321 # define _EEPROM_SUFFIX _tn84
00322 #elif defined (__AVR_ATtiny84A__)
00323 # define _EEPROM_SUFFIX _tn84a
00324 #elif defined (__AVR_ATtiny261__)
00325 # define _EEPROM_SUFFIX _tn261
00326 #elif defined (__AVR_ATtiny261A__)
00327 # define _EEPROM_SUFFIX _tn261a
00328 #elif defined (__AVR_ATtiny461__)
00329 # define _EEPROM_SUFFIX _tn461
00330 #elif defined (__AVR_ATtiny461A__)
00331 # define _EEPROM_SUFFIX _tn461a
00332 #elif defined (__AVR_ATtiny861__)
00333 # define _EEPROM_SUFFIX _tn861
00334 #elif defined (__AVR_ATtiny861A__)
00335 # define _EEPROM_SUFFIX _tn861a
00336 #elif defined (__AVR_ATtiny43U__)
00337 # define _EEPROM_SUFFIX _tn43u
00338 #elif defined (__AVR_ATtiny48__)
00339 # define _EEPROM_SUFFIX _tn48
00340 #elif defined (__AVR_ATtiny88__)
00341 # define _EEPROM_SUFFIX _tn88
00342 #elif defined (__AVR_ATtiny87__)
00343 # define _EEPROM_SUFFIX _tn87
00344 #elif defined (__AVR_ATtiny167__)
00345 # define _EEPROM_SUFFIX _tn167
00346 #elif defined (__AVR_AT90SCR100__)
00347 # define _EEPROM_SUFFIX _90scr100
00348 #elif defined (__AVR_ATxmega16A4__)
00349 # define _EEPROM_SUFFIX _x16a4
00350 #elif defined (__AVR_ATxmega16D4__)
00351 # define _EEPROM_SUFFIX _x16d4
00352 #elif defined (__AVR_ATxmega32A4__)
00353 # define _EEPROM_SUFFIX _x32a4
00354 #elif defined (__AVR_ATxmega32D4__)
00355 # define _EEPROM_SUFFIX _x32d4
00356 #elif defined (__AVR_ATxmega64A1__)
00357 # define _EEPROM_SUFFIX _x64a1
00358 #elif defined (__AVR_ATxmega64A1U__)
00359 # define _EEPROM_SUFFIX _x64a1u
00360 #elif defined (__AVR_ATxmega64A3__)
00361 # define _EEPROM_SUFFIX _x64a3
00362 #elif defined (__AVR_ATxmega64D3__)
00363 # define _EEPROM_SUFFIX _x64d3
00364 #elif defined (__AVR_ATxmega128A1__)
00365 # define _EEPROM_SUFFIX _x128a1
00366 #elif defined (__AVR_ATxmega128A1U__)
00367 # define _EEPROM_SUFFIX _x128a1u
00368 #elif defined (__AVR_ATxmega128A3__)
00369 # define _EEPROM_SUFFIX _x128a3
00370 #elif defined (__AVR_ATxmega128D3__)
00371 # define _EEPROM_SUFFIX _x128d3
00372 #elif defined (__AVR_ATxmega192A3__)
00373 # define _EEPROM_SUFFIX _x192a3
00374 #elif defined (__AVR_ATxmega192D3__)
00375 # define _EEPROM_SUFFIX _x192d3
00376 #elif defined (__AVR_ATxmega256A3__)
00377 # define _EEPROM_SUFFIX _x256a3
00378 #elif defined (__AVR_ATxmega256A3B__)
00379 # define _EEPROM_SUFFIX _x256a3b
00380 #elif defined (__AVR_ATxmega256D3__)
00381 # define _EEPROM_SUFFIX _x256d3
00382 #elif defined (__AVR_ATA6289__)
00383 # define _EEPROM_SUFFIX _a6289
00384
00385 #elif defined (__AVR_ATtiny28__)
00386 # define _EEPROM_SUFFIX _tn28
00387 #elif defined (__AVR_AT90S1200__)
00388 # define _EEPROM_SUFFIX _1200
00389 #elif defined (__AVR_ATtiny15__)
00390 # define _EEPROM_SUFFIX _tn15
00391 #elif defined (__AVR_ATtiny12__)
00392 # define _EEPROM_SUFFIX _tn12
00393 #elif defined (__AVR_ATtiny11__)
00394 # define _EEPROM_SUFFIX _tn11
00395 #else
00396 # define _EEPROM_SUFFIX _UNKNOWN
00397 #endif
00398
00399 #define _EEPROM_CONCAT1(s1, s2) s1 ## s2
00400 #define _EEPROM_CONCAT2(s1, s2) _EEPROM_CONCAT1 (s1, s2)
00401
00402 #define eeprom_read_byte _EEPROM_CONCAT2 (__eerd_byte, _EEPROM_SUFFIX)
00403 #define eeprom_read_word _EEPROM_CONCAT2 (__eerd_word, _EEPROM_SUFFIX)
00404 #define eeprom_read_dword _EEPROM_CONCAT2 (__eerd_dword, _EEPROM_SUFFIX)
00405 #define eeprom_read_float _EEPROM_CONCAT2 (__eerd_float, _EEPROM_SUFFIX)
00406 #define eeprom_read_block _EEPROM_CONCAT2 (__eerd_block, _EEPROM_SUFFIX)
00407
00408 #define eeprom_write_byte _EEPROM_CONCAT2 (__eewr_byte, _EEPROM_SUFFIX)
00409 #define eeprom_write_word _EEPROM_CONCAT2 (__eewr_word, _EEPROM_SUFFIX)
00410 #define eeprom_write_dword _EEPROM_CONCAT2 (__eewr_dword, _EEPROM_SUFFIX)
00411 #define eeprom_write_float _EEPROM_CONCAT2 (__eewr_float, _EEPROM_SUFFIX)
00412 #define eeprom_write_block _EEPROM_CONCAT2 (__eewr_block, _EEPROM_SUFFIX)
00413
00414 #define eeprom_update_byte _EEPROM_CONCAT2 (__eeupd_byte, _EEPROM_SUFFIX)
00415 #define eeprom_update_word _EEPROM_CONCAT2 (__eeupd_word, _EEPROM_SUFFIX)
00416 #define eeprom_update_dword _EEPROM_CONCAT2 (__eeupd_dword, _EEPROM_SUFFIX)
00417 #define eeprom_update_float _EEPROM_CONCAT2 (__eeupd_float, _EEPROM_SUFFIX)
00418 #define eeprom_update_block _EEPROM_CONCAT2 (__eeupd_block, _EEPROM_SUFFIX)
00419
00420 #endif
00421
00422 #ifndef __ASSEMBLER__
00423
00424 #include <stddef.h>
00425 #include <stdint.h>
00426
00427
00428
00429
00430
00431
00432
00433
00434
00435
00436
00437
00438
00439
00440
00441
00442
00443
00444
00445
00446
00447
00448
00449
00450
00451
00452
00453
00454
00455
00456
00457
00458
00459
00460
00461
00462
00463
00464
00465 #ifdef __cplusplus
00466 extern "C" {
00467 #endif
00468
00469 #ifndef __ATTR_PURE__
00470 # ifdef __DOXYGEN__
00471 # define __ATTR_PURE__
00472 # else
00473 # define __ATTR_PURE__ __attribute__((__pure__))
00474 # endif
00475 #endif
00476
00477
00478
00479
00480
00481 #define EEMEM __attribute__((section(".eeprom")))
00482
00483
00484
00485
00486
00487 #if defined (__DOXYGEN__)
00488 # define eeprom_is_ready()
00489 #elif defined (__AVR_XMEGA__) && __AVR_XMEGA__
00490 # define eeprom_is_ready() bit_is_clear (NVM_STATUS, NVM_NVMBUSY_bp)
00491 #elif defined (DEECR)
00492 # define eeprom_is_ready() bit_is_clear (DEECR, BSY)
00493 #elif defined (EEPE)
00494 # define eeprom_is_ready() bit_is_clear (EECR, EEPE)
00495 #else
00496 # define eeprom_is_ready() bit_is_clear (EECR, EEWE)
00497 #endif
00498
00499
00500
00501
00502
00503
00504
00505 #define eeprom_busy_wait() do {} while (!eeprom_is_ready())
00506
00507
00508
00509
00510
00511 uint8_t eeprom_read_byte (const uint8_t *__p) __ATTR_PURE__;
00512
00513
00514
00515
00516 uint16_t eeprom_read_word (const uint16_t *__p) __ATTR_PURE__;
00517
00518
00519
00520
00521 uint32_t eeprom_read_dword (const uint32_t *__p) __ATTR_PURE__;
00522
00523
00524
00525
00526 float eeprom_read_float (const float *__p) __ATTR_PURE__;
00527
00528
00529
00530
00531
00532 void eeprom_read_block (void *__dst, const void *__src, size_t __n);
00533
00534
00535
00536
00537
00538 void eeprom_write_byte (uint8_t *__p, uint8_t __value);
00539
00540
00541
00542
00543 void eeprom_write_word (uint16_t *__p, uint16_t __value);
00544
00545
00546
00547
00548 void eeprom_write_dword (uint32_t *__p, uint32_t __value);
00549
00550
00551
00552
00553 void eeprom_write_float (float *__p, float __value);
00554
00555
00556
00557
00558
00559 void eeprom_write_block (const void *__src, void *__dst, size_t __n);
00560
00561
00562
00563
00564
00565 void eeprom_update_byte (uint8_t *__p, uint8_t __value);
00566
00567
00568
00569
00570 void eeprom_update_word (uint16_t *__p, uint16_t __value);
00571
00572
00573
00574
00575 void eeprom_update_dword (uint32_t *__p, uint32_t __value);
00576
00577
00578
00579
00580 void eeprom_update_float (float *__p, float __value);
00581
00582
00583
00584
00585
00586 void eeprom_update_block (const void *__src, void *__dst, size_t __n);
00587
00588
00589
00590
00591
00592
00593
00594
00595 #define _EEPUT(addr, val) eeprom_write_byte ((uint8_t *)(addr), (uint8_t)(val))
00596
00597
00598
00599
00600 #define __EEPUT(addr, val) eeprom_write_byte ((uint8_t *)(addr), (uint8_t)(val))
00601
00602
00603
00604
00605 #define _EEGET(var, addr) (var) = eeprom_read_byte ((const uint8_t *)(addr))
00606
00607
00608
00609
00610 #define __EEGET(var, addr) (var) = eeprom_read_byte ((const uint8_t *)(addr))
00611
00612
00613
00614 #ifdef __cplusplus
00615 }
00616 #endif
00617
00618 #endif
00619 #endif
00620 #endif