The flash memory block consists of the embedded flash, EEPROM, and a Flash memory controller to control access to both. The controller can be accessed in two ways: either by register access in software running on the ARM core (in application programming), or directly via the JTAG interface.