Psoc3/5 is more complex than PSoC1, you can always modify the registers or use bootloader to load different code on demand.
Sure.You can change all hardware settings(all components including pins) via code,as most have some kind of API to do so.As lleung mentioned,you can have all kinds of customization with respect to the bootloader as well.
Lets say for example that I place the SPI master component (I think that is implemented in UDBs). If I start up the hardware in Mode 0 (CPHA & CPOL = 0), can I switch that during run time? You say that I can modify the registers of the hardware. Does that same principle apply with UDB components?
P.S. The Mode switching API does not exist in the PSoC creator component
Interesting thought. Beacuse most of the reconfiguration that are in analog should be possible by means of use of analog muxes and register level reconfigurations. The digital resources in PSoC1 were a touch more fixed in thier functionality than the extremely programable and versatile UDBs in PSoC3. Reconfiguring, hence could mean a ton of reconfiguration code.
Tough part here is that though the UDBs maybe configured from thier corresponding APIs the real reconfiguration would involve control over the UDB placement which happens in the boot time. Hence I am wondering if there would be code segments in the boot code that we could use to reconfigure. But again thinking about that with the DMA in the device the configuration might be don eby the DMA which would make it close impossible to mendle with.
Using the bootloader seems to be the best bet.
On further thought. Did you really run into a condition where you have exhausted all the UDBs and are looking at reconfiguring one of them for resource utilization?
In other devices that I have used before PSoC came out, I could modify a register setting and get different modes. I wanted to port a design that I had done directly.