 |
NHS31xx SW API
|
149 #ifndef __STORAGE_DFT_H_ 150 #define __STORAGE_DFT_H_ 158 #define STORAGE_IDIVUP(n, d) (((n)+(d)-1)/(d)) 160 #ifdef STORAGE_CONFIG_ALON_REGISTER 162 #define STORAGE_FIRST_ALON_REGISTER STORAGE_CONFIG_ALON_REGISTER 165 #ifndef STORAGE_FIRST_ALON_REGISTER 176 #define STORAGE_FIRST_ALON_REGISTER 4 178 #if !(STORAGE_FIRST_ALON_REGISTER >= 0) || !(STORAGE_FIRST_ALON_REGISTER <= 4) 179 #error Invalid value for STORAGE_FIRST_ALON_REGISTER 184 #ifndef STORAGE_EEPROM_FIRST_ROW 190 #define STORAGE_EEPROM_FIRST_ROW (EEPROM_NR_OF_RW_ROWS - (2048 / EEPROM_ROW_SIZE)) 192 #if !(STORAGE_EEPROM_FIRST_ROW >= 0) || !(STORAGE_EEPROM_FIRST_ROW < EEPROM_NR_OF_RW_ROWS) 193 #error Invalid value for STORAGE_EEPROM_FIRST_ROW 196 #ifndef STORAGE_EEPROM_LAST_ROW 202 #define STORAGE_EEPROM_LAST_ROW (EEPROM_NR_OF_RW_ROWS - 1) 204 #if !(STORAGE_EEPROM_LAST_ROW >= STORAGE_EEPROM_FIRST_ROW) || !(STORAGE_EEPROM_LAST_ROW < EEPROM_NR_OF_RW_ROWS) 205 #error Invalid value for STORAGE_EEPROM_LAST_ROW 209 #define STORAGE_EEPROM_ROW_COUNT (STORAGE_EEPROM_LAST_ROW - STORAGE_EEPROM_FIRST_ROW + 1) 210 #if STORAGE_EEPROM_ROW_COUNT < 3 211 #error STORAGE_EEPROM_LAST_ROW and STORAGE_EEPROM_FIRST_ROW must be farther apart: at least 3 EEPROM pages must be assigned for storage 215 #define STORAGE_EEPROM_SIZE (STORAGE_EEPROM_ROW_COUNT * EEPROM_ROW_SIZE) 219 #ifndef STORAGE_FLASH_FIRST_PAGE 233 #define STORAGE_FLASH_FIRST_PAGE 0 235 #if !(STORAGE_FLASH_FIRST_PAGE >= 0) || (STORAGE_FLASH_FIRST_PAGE >= FLASH_NR_OF_RW_SECTORS * FLASH_PAGES_PER_SECTOR) 236 #error Invalid value for STORAGE_FLASH_FIRST_PAGE 239 #ifndef STORAGE_FLASH_LAST_PAGE 246 #define STORAGE_FLASH_LAST_PAGE (FLASH_NR_OF_RW_SECTORS * FLASH_PAGES_PER_SECTOR - 1) 248 #if (STORAGE_FLASH_LAST_PAGE < STORAGE_FLASH_FIRST_PAGE) || (STORAGE_FLASH_LAST_PAGE >= FLASH_NR_OF_RW_SECTORS * FLASH_PAGES_PER_SECTOR) 249 #error Invalid value for STORAGE_FLASH_LAST_PAGE 251 #if (STORAGE_FLASH_FIRST_PAGE == 0) && (STORAGE_FLASH_LAST_PAGE != (FLASH_NR_OF_RW_SECTORS * FLASH_PAGES_PER_SECTOR - 1)) 252 #error STORAGE_FLASH_FIRST_PAGE is determined at link time; STORAGE_FLASH_LAST_PAGE can thus not be checked at precompilation time. 253 #error STORAGE_FLASH_LAST_PAGE must be set to the highest possible value in this case. 264 #define STORAGE_TYPE uint8_t 267 #ifndef STORAGE_BITSIZE 272 #define STORAGE_BITSIZE 8 274 #if (STORAGE_BITSIZE <= 0) 275 #error Invalid value for STORAGE_BITSIZE 281 #define STORAGE_MAX_SAMPLE_ALON_CACHE_COUNT ((141 - STORAGE_FIRST_ALON_REGISTER * 32) / STORAGE_BITSIZE) 284 #ifndef STORAGE_SAMPLE_ALON_CACHE_COUNT 288 #define STORAGE_SAMPLE_ALON_CACHE_COUNT STORAGE_MAX_SAMPLE_ALON_CACHE_COUNT 290 #if STORAGE_SAMPLE_ALON_CACHE_COUNT > STORAGE_MAX_SAMPLE_ALON_CACHE_COUNT 291 #error STORAGE_SAMPLE_ALON_CACHE_COUNT must be less than or equal to STORAGE_MAX_SAMPLE_ALON_CACHE_COUNT 293 #if (STORAGE_MAX_SAMPLE_ALON_CACHE_COUNT - STORAGE_SAMPLE_ALON_CACHE_COUNT) * STORAGE_BITSIZE >= 32 294 #warning STORAGE_FIRST_ALON_REGISTER can be set higher, as the last general purpose register is reserved by but will not be used by the storage module 298 #ifndef STORAGE_SIGNED 309 #define STORAGE_SIGNED 0 314 #ifndef STORAGE_WRITE_RECOVERY_EVERY_X_SAMPLES 323 #define STORAGE_WRITE_RECOVERY_EVERY_X_SAMPLES (1 + STORAGE_SAMPLE_ALON_CACHE_COUNT) 325 #if STORAGE_WRITE_RECOVERY_EVERY_X_SAMPLES <= 0 326 #error STORAGE_WRITE_RECOVERY_EVERY_X_SAMPLES must be a strict positive number 328 #if STORAGE_WRITE_RECOVERY_EVERY_X_SAMPLES < STORAGE_SAMPLE_ALON_CACHE_COUNT 329 #warning STORAGE_WRITE_RECOVERY_EVERY_X_SAMPLES is smaller than STORAGE_SAMPLE_ALON_CACHE_COUNT, which makes little sense. 330 #warning Recovery information will be written in Storage_DeInit after STORAGE_SAMPLE_ALON_CACHE_COUNT samples. 333 #ifndef STORAGE_REDUCE_RECOVERY_WRITES 343 #define STORAGE_REDUCE_RECOVERY_WRITES 0 345 #if (STORAGE_REDUCE_RECOVERY_WRITES != 0) && (STORAGE_REDUCE_RECOVERY_WRITES != 1) 346 #error Leave STORAGE_REDUCE_RECOVERY_WRITES undefined in app_sel.h, or define it to 0 (--> 2 recovery rows) or 1 (--> 1 recovery row) 358 #define STORAGE_MAX_LOSS_AFTER_CORRUPTION 1 \ 359 + STORAGE_SAMPLE_ALON_CACHE_COUNT \ 360 + STORAGE_WRITE_RECOVERY_EVERY_X_SAMPLES \ 361 + STORAGE_REDUCE_RECOVERY_WRITES * STORAGE_IDIVUP(8 * 8, STORAGE_BITSIZE) 368 #if STORAGE_REDUCE_RECOVERY_WRITES 369 #define STORAGE_MAX_BLOCK_SIZE_IN_SAMPLES (((STORAGE_EEPROM_SIZE - 76) * 8) / STORAGE_BITSIZE) 372 #define STORAGE_MAX_BLOCK_SIZE_IN_SAMPLES (((STORAGE_EEPROM_SIZE - 140) * 8) / STORAGE_BITSIZE) 377 #define STORAGE_MAX_UNCOMPRESSED_BLOCK_SIZE_IN_BITS (STORAGE_MAX_BLOCK_SIZE_IN_SAMPLES * STORAGE_BITSIZE) 382 #define STORAGE_BLOCK_HEADER_SIZE 2 384 #ifndef STORAGE_BLOCK_SIZE_IN_SAMPLES 393 #define STORAGE_BLOCK_SIZE_IN_SAMPLES (((1024 - STORAGE_BLOCK_HEADER_SIZE) * 8) / STORAGE_BITSIZE) 394 #if STORAGE_BLOCK_SIZE_IN_SAMPLES > STORAGE_MAX_BLOCK_SIZE_IN_SAMPLES 395 #undef STORAGE_BLOCK_SIZE_IN_SAMPLES 396 #define STORAGE_BLOCK_SIZE_IN_SAMPLES STORAGE_MAX_BLOCK_SIZE_IN_SAMPLES 399 #if ((STORAGE_BLOCK_SIZE_IN_SAMPLES <= 1) || (STORAGE_BLOCK_SIZE_IN_SAMPLES > STORAGE_MAX_BLOCK_SIZE_IN_SAMPLES)) 400 #error Invalid value for STORAGE_BLOCK_SIZE_IN_SAMPLES 404 #define STORAGE_UNCOMPRESSED_BLOCK_SIZE_IN_BITS (STORAGE_BLOCK_SIZE_IN_SAMPLES * STORAGE_BITSIZE) 407 #define STORAGE_UNCOMPRESSED_BLOCK_SIZE_IN_BYTES STORAGE_IDIVUP(STORAGE_UNCOMPRESSED_BLOCK_SIZE_IN_BITS, 8) 410 #define STORAGE_WORKAREA_SIZE ((FLASH_PAGE_SIZE * 2) + STORAGE_UNCOMPRESSED_BLOCK_SIZE_IN_BYTES) 412 #ifdef STORAGE_WORKAREA 413 #undef STORAGE_WORKAREA_SELF_DEFINED 419 #define STORAGE_WORKAREA_SELF_DEFINED 1 426 #define STORAGE_WORKAREA sStorage_Workarea 431 #ifdef STORAGE_COMPRESS_CB 432 #undef STORAGE_COMPRESS_CB_SELF_DEFINED 442 #define STORAGE_COMPRESS_CB Storage_DummyCompressCb 445 #ifdef STORAGE_DECOMPRESS_CB 446 #undef STORAGE_DECOMPRESS_CB_SELF_DEFINED 454 #define STORAGE_DECOMPRESS_CB Storage_DummyDecompressCb