There are several ways to program FLASH program memory used by your target
Devices are programmed before they are installed on the target hardware PCB.
Or they are removed from the target hardware and programmed. To reprogram
the software, the chip (or chips) must be physically removed and programmed
In-System Programming (ISP)
Devices are programmed in the target hardware. Typically, there is a jumper
or DIP switch that must be set to allow in-system programming. The switch
could select a ROM or other memory device containing a program which
reprograms the FLASH memory.
In-Application Programming (IAP)
Devices are programmed in the target hardware by the target hardware and
software. IAP requires that your target include some kind of boot loader
that interfaces with the outside world via an interface like RS-232, TCP/IP,
I²C, or CAN. This is the most flexible but also the most complex
FLASH memory scheme.