I have used a variety of different micros (Z80 onwards) since about1980 but all the PROM or FLASH based ones (e.g. H8/300 or Atmel 90S1200) were programmed externally, via a spring-contact adaptor.
We have one product using an H8/300 with an external 28C256 32kbyte parallel EEPROM for extra code, and we quickly found this could not be written with code running in it! No sh*t Sherlock, as they say here in the UK, but it took a good hour or two to realise why... The reason of course is what while the EEPROM is executing its programming cycle, it isn't readable for code and data fetching.
I am now looking at a new uP for another project and it is the ST ARM STM32F range. For about a tenner you can get 1MB of on-chip FLASH which is loads.
But how can one program this in situ?
Either there is a separate FLASH segment which remains available all the time (how is that programmed?) or one has to load a loader into the SRAM and execute it from there.
How do people typically do this?
I don't think the chip needs an elevated Vpp for programming - that would really complicate things. I think some of the old Atmels needed that.
Could anyone suggest the best developer kit for the 32F, for assembler and C programming?