Mistake on this page?
Report an issue in GitHub or email us

Flash IAP

FlashIAP class hierarchy

The flash in application programming provides an interface for access to MCU internal flash memory.

Flash IAP devices have different sized blocks for different operations. They allow you to read and program in defined-sized pages, but you must erase them in defined-sized sectors. The sector size must be a multiple of the page size. Sector sizes can differ within a device.

Flash IAP provides the following functionality:

  • Read from a flash device.
  • Program data to flash device pages.
  • Erase flash device sectors.
  • Get sector/flash or page sizes.
  • Get the start address of the flash device.

Flash devices have some requirements and limitations based on the operation. Please read the documentation for each operation.

Be aware that Flash IAP might disable interrupts for a long time. This can affect the application latency.

This class is thread-safe.

Flash IAP class reference

View the full C++ API:

Public Member Functions
int init ()
 Initialize a flash IAP device. More...
int deinit ()
 Deinitialize a flash IAP device. More...
int read (void *buffer, uint32_t addr, uint32_t size)
 Read data from a flash device. More...
int program (const void *buffer, uint32_t addr, uint32_t size)
 Program data to pages. More...
int erase (uint32_t addr, uint32_t size)
 Erase sectors. More...
uint32_t get_sector_size (uint32_t addr) const
 Get the sector size at the defined address. More...
uint32_t get_flash_start () const
 Get the flash start address. More...
uint32_t get_flash_size () const
 Get the flash size. More...
uint32_t get_page_size () const
 Get the program page size. More...
uint8_t get_erase_value () const
 Get the flash erase value. More...

Flash IAP example

For an example that uses the FlashIAP driver, please see the bootloader example.

Important Information for this Arm website

This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies. If you are not happy with the use of these cookies, please review our Cookie Policy to learn how they can be disabled. By disabling cookies, some features of the site will not work.