ntdisp, short for NtD In System Programming, is a system for programming LPC and STM32 (and possible others) embedded devices. Further backend can be added by implementing the NtdIsp virtual class: NtdStm and NtdLpc are two good examples.
The project provides (or will provide) three different frontend: a GObject based library (for developers), an executable binary (for computer geeks) and a GTK+3 front-end (for less geeky users).
A typical command line session will look like this:
ntdisp -p lpc -d /dev/ttyUSB0 -iC ntdisp -p lpc -d /dev/ttyS0 -W target.bin ntdisp -p stm -d /dev/ttyAP1 -iR > dump.bin
The latest tarball can be downloaded from SourceForge.