Well, "Reinvoke ISP" is meant to enter the built-in ROM code for a re-programming.
There is IAP:
- it provides routines and algorithms to manage the internal flash from a running application
- it can be used to update the flash with a new firmware, but you need to define such a procedure on your own. IAP just gives you some tools for it.
There is ISP:
- it uses the built-in ROM code to program the internal flash in combination with specific input channels (I2C, SPI, UART, USB)
- loading a new firmware uses the same protocol as if the ISP mode is entered from a power-on reset
- before using "Reinvoke ISP", it is good style (or even mandatory) to wind back the system settings to a basic level (switch off PLLs, disable peripherals etc)
Typical use case for IAP and ISP:
IAP: user connects a USB stick with new firmware binary on it, the product application program takes the firmware from there and updates the flash with it.
ISP: product is connected to a PC with a firmware update utility running on it. User gives an input on the product to update the firmware, the product app reinvokes ISP with USB and the product appears on the PC as mass storage device. Then the PC program can update the firmware, finally the PC Utility or the user restarts the product.
Hope this helps to understand the process,
Bernhard.