SPI Flash memory programming with small buffer(uC memory)
Use FTDI chips to communicate with PC. Its a easiest way to communicate with PC. since, its drivers are readily available on internet. Just design a circuit of FTDI or buy from the market and install drivers. Actually FTDI chips converts USB to TTL serial.
Start UART and SPI interrupts. Whenever you receive data from PC just forward it through SPI. According to me, this will be fast and efficient way.

pankaj