Hi: I have read one of the app note that keil provided "in-system flash programming" (http://www.keil.com/support/docs/2364.htm) and became confused. In my opinion, the uC core can only fetch instruction from rom or flash. But as the app note said, the code can be execuated in ram(using srom class). The way of copy the code from flash to ram can be easily understand, but how can it execuate there. In my opinion, the process of how to fetch instruction is only decided by the core construction, but not the complier or linker tools. what is the real instruction fetch mechanism about 51MCU. Is there any document related ? I do not know search what key point for this question. Thaks for your help.
aaa1982
"If it can copy the code from flash to ram"
Remember: the CPU knows nothing about "flash" or "RAM" - all it knows about is CODE and XDATA address spaces.
The CPU can only ever fetch instructions from CODE space - so you need to check the Datasheet to see if this chip has any facility to map CODE space onto the external RAM.
"If it can working, whether it will save power versus fetch the instruction from flash."
Only the specific Datasheet can tell you that.
It seems unlikely unless this chip gives you some facility to power-down the Flash when you're not using it - again, only the specific Datasheet can tell you that.
These are chip-specific hardware details; nothing to do with the Keil software tools. For detailed chip-specific questions like this, you need to be talking to the Chip Manufacturer - ie, Silicon Labs - not the software tool vendor (Keil).