Utility macros | |
LIBMEM_ADDRESS_IN_RANGE | Determine whether an address is within an address range |
LIBMEM_ADDRESS_IS_ALIGNED | Determine whether an address is aligned to a specified width |
LIBMEM_ALIGNED_ADDRESS | Return an address aligned to a specified width |
LIBMEM_KB | Convert kilobytes to bytes |
LIBMEM_MB | Convert megabytes to bytes |
LIBMEM_RANGE_OCCLUDES_RANGE | Determine whether an address range overlaps another address range or vice versa |
LIBMEM_RANGE_OVERLAPS_RANGE | Determine whether an address range overlaps another address range |
LIBMEM_RANGE_WITHIN_RANGE | Determine whether an address range is within another address range |
Return codes | |
LIBMEM_STATUS_CFI_ERROR | Error reading CFI information return code |
LIBMEM_STATUS_ERROR | Non-specific error return code |
LIBMEM_STATUS_GEOMETRY_REGION_OVERFLOW | No room for geometry information return code |
LIBMEM_STATUS_INVALID_DEVICE | Invalid or mismatched device return code |
LIBMEM_STATUS_INVALID_PARAMETER | Invalid parameter return code |
LIBMEM_STATUS_INVALID_RANGE | Invalid range return code |
LIBMEM_STATUS_INVALID_WIDTH | Invalid or unsupported device width return code |
LIBMEM_STATUS_LOCKED | Memory locked return code |
LIBMEM_STATUS_NOT_IMPLEMENTED | Not implemented return code |
LIBMEM_STATUS_NO_DRIVER | No driver for memory range return code |
LIBMEM_STATUS_SUCCESS | Successful operation return code |
LIBMEM_STATUS_TIMEOUT | Timeout error return code |
Command set macros | |
LIBMEM_CFI_CMDSET_AMD_EXTENDED | AMD standard command set |
LIBMEM_CFI_CMDSET_AMD_STANDARD | AMD standard command set |
LIBMEM_CFI_CMDSET_INTEL_EXTENDED | Intel extended command set |
LIBMEM_CFI_CMDSET_INTEL_STANDARD | Intel standard command set |
LIBMEM_CFI_CMDSET_MITSUBISHI_EXTENDED | Mitsubishi extended command set |
LIBMEM_CFI_CMDSET_MITSUBISHI_STANDARD | Mitsubishi standard command set |
LIBMEM_CFI_CMDSET_NONE | Invalid CFI command set |
LIBMEM_CFI_CMDSET_RESERVED | Reserved command set |
LIBMEM_CFI_CMDSET_SST_PAGE_WRITE | SST page write command set |
LIBMEM_CFI_CMDSET_WINBOND_STANDARD | Winbond standard command set |
Macros | |
LIBMEM_VERSION_NUMBER | LIBMEM interface version number |
Configuration macros | |
LIBMEM_INLINE | Inline definition |
Driver helper macros | |
LIBMEM_DRIVER_PAGED_WRITE_OPTION_DISABLE_DIRECT_WRITES | Option to disable direct writes bypassing page buffer |
LIBMEM_DRIVER_PAGED_WRITE_OPTION_DISABLE_PAGE_PRELOAD | Option to disable paged write data pre-loading |
Data types | |
_libmem_driver_functions_t | Structure containing pointers to a LIBMEM driver's functions |
_libmem_driver_handle_t | LIBMEM driver handle structure |
_libmem_driver_paged_write_ctrlblk_t | Paged write control block |
_libmem_ext_driver_functions_t | Structure containing pointers to a LIBMEM driver's extended functions |
_libmem_flash_info_t | Structure containing information about a specific FLASH chip |
_libmem_geometry_t | Structure describing a geometry region |
_libmem_sector_info_t | Structure describing a sector |
Static data | |
libmem_busy_handler_fn | Pointer to a function that should be called each time LIBMEM iterates a busy loop |
libmem_drivers | Pointer to the first registered LIBMEM driver |
libmem_get_ticks_fn | Pointer to a function that returns the current timer tick count |
libmem_ticks_per_second | How fast the tick increments |
Function pointers | |
libmem_busy_handler_fn_t | A pointer to a function to be called each time LIBMEM iterates a busy loop |
libmem_driver_crc32_fn_t | A function pointer to a LIBMEM driver's crc32 extended function |
libmem_driver_erase_fn_t | A function pointer to a LIBMEM driver's erase function |
libmem_driver_fill_fn_t | A function pointer to a LIBMEM driver's fill function |
libmem_driver_flush_fn_t | A function pointer to a LIBMEM driver's flush function |
libmem_driver_inrange_fn_t | A function pointer to a LIBMEM driver's inrange extended function |
libmem_driver_lock_fn_t | A function pointer to a LIBMEM driver's lock function |
libmem_driver_page_write_fn_t | A function pointer to a function implementing a paged write operation |
libmem_driver_read_fn_t | A function pointer to a LIBMEM driver's read extended function |
libmem_driver_unlock_fn_t | A function pointer to a LIBMEM driver's unlock function |
libmem_driver_write_fn_t | A function pointer to a LIBMEM driver's write function |
libmem_foreach_driver_fn_t | A function pointer to a function handling a libmem_foreach_driver call |
libmem_foreach_sector_fn_t | A function pointer to a function handling a libmem_foreach_sector or libmem_foreach_sector_in_range call |
libmem_get_ticks_fn_t | A pointer to a function returning the current timer tick count |
Functions | |
libmem_cfi_get_info | Return a FLASH memory device's common flash interface (CFI) information |
libmem_crc32 | Compute CRC-32 checksum |
libmem_crc32_direct | Compute CRC-32 checksum of an address range |
libmem_enable_timeouts | Enable LIBMEM operation timeouts |
libmem_erase | Erase a block of memory using a LIBMEM driver |
libmem_erase_all | Erase all memory using LIBMEM drivers |
libmem_fill | Fill memory with a specific data value using a LIBMEM driver |
libmem_flush | Flush any outstanding memory operations and return memory to read mode if applicable |
libmem_foreach_driver | Iterate through all drivers |
libmem_foreach_sector | Iterate through all sectors of a driver |
libmem_foreach_sector_in_range | Iterate through subset of sectors of a driver |
libmem_foreach_sector_in_range_ex | A helper function for iterating through all sectors in a specified geometry that are within a specific address range |
libmem_get_driver | Look up driver for address |
libmem_get_driver_sector_size | A helper function that locates the driver for a specific address and then returns the sector size for that address using the driver's geometry |
libmem_get_geometry_size | A helper function that returns the size of the address range described by a geometry description |
libmem_get_number_of_regions | A helper function that returns the number of geometry regions described by a geometry description |
libmem_get_number_of_sectors | A helper function that returns the number of sectors described by a geometry description |
libmem_get_sector_info | A helper function that returns the sector information for an address within a specified geometry |
libmem_get_sector_number | A helper function that returns the sector number of an address within a specified geometry |
libmem_get_sector_size | A helper function that returns the sector size for an address within a specified geometry |
libmem_get_ticks | Helper function that returns the current timer tick count |
libmem_lock | Lock a block of memory using a LIBMEM driver |
libmem_lock_all | Lock all memory using LIBMEM drivers |
libmem_read | Read a block of data using a LIBMEM driver |
libmem_register_driver | Register a LIBMEM driver instance |
libmem_set_busy_handler | Specify busy loop function |
libmem_unlock | Unlock a block of memory using a LIBMEM driver |
libmem_unlock_all | Unlock all memory using LIBMEM drivers |
libmem_write | Write a block of data using a LIBMEM driver |
Driver helper functions | |
libmem_driver_paged_write | A driver helper function that implements a paged write operation |
libmem_driver_paged_write_fill | A driver helper function that implements a paged write fill operation |
libmem_driver_paged_write_flush | A driver helper function that implements a paged write flush operation |
libmem_driver_paged_write_init | A driver helper function that initializes the paged write control bock |
Generic FLASH drivers | |
libmem_register_cfi_0001_16_driver | Register a 16-bit CFI command set 1 (Intel Extended) LIBMEM driver |
libmem_register_cfi_0001_8_driver | Register an 8-bit CFI command set 1 (Intel Extended) LIBMEM driver |
libmem_register_cfi_0002_16_driver | Register a 16-bit CFI command set 2 (AMD Standard) LIBMEM driver |
libmem_register_cfi_0002_8_driver | Register an 8 bit CFI command set 2 (AMD Standard) LIBMEM driver |
libmem_register_cfi_0003_16_driver | Register a 16-bit CFI command set 3 (Intel Standard) LIBMEM driver |
libmem_register_cfi_0003_8_driver | Register an 8-bit CFI command set 3 (Intel Standard) LIBMEM driver |
libmem_register_cfi_amd_driver | Register a multi-width CFI command set 2 (AMD) LIBMEM driver |
libmem_register_cfi_driver | Register a FLASH driver based on detected CFI information |
libmem_register_cfi_intel_driver | Register a combined multi-width CFI command set 1 and 3 (Intel) LIBMEM driver |
FLASH drivers | |
libmem_register_am29f200b_driver | Register a driver for an AMD Am29F200B FLASH chip |
libmem_register_am29f200t_driver | Register a driver for an AMD Am29F200T FLASH chip |
libmem_register_am29f400bb_driver | Register a driver for an AMD Am29F400BB FLASH chip |
libmem_register_am29f400bt_driver | Register a driver for an AMD Am29F400BT FLASH chip |
libmem_register_am29fxxx_driver | Register a driver for an AMD Am29Fxxx FLASH chip |
libmem_register_am29lv010b_driver | Register a driver for an AMD Am29LV010B FLASH chip |
libmem_register_sst39xFx00A_16_driver | Register a driver for a 16-bit SST39xFx00A FLASH chip |
libmem_register_st_m28w320cb_driver | Register a driver for an ST M28W320CB FLASH chip |
libmem_register_st_m28w320ct_driver | Register a driver for an ST M28W320CT FLASH chip |
RAM drivers | |
libmem_register_ram_driver | Register a simple driver that directly accesses RAM |