How do we implement in place execution using 8032 ? Does Keil support in place execution.
What do you mean by "in place execution"?? There is only one place that an 8032 can execute code - and that's in its CODE space.
8051 systems usually execute in place. The address decoding logic maps to the flash, and you're done. "Execute in place" was so much the norm for older and smaller systems that it's amusing to see it become a feature for more advanced ones. Often, systems will store compressed code images in flash, and unpack them into RAM for execution. You can save some overall memory by executing directly out of the flash. (This of course implies that the image is uncompressed.) Your toolchain has to be able to create ROM-able code which is properly located for its final location in the memory map. The 8051 data bus would be connected to the flash for program store cycles. I see the phrase a lot these days in conjuction with NAND and NOR flash. NAND is a newer way to make non-volatile bits. It's denser than NOR flash, which means more storage, cheaper. Unfortunately, it's a lot more error-prone. So, NAND devices tend to look like disk drives; you keep a list of bad sectors and allocate around them. Also, NAND devices usually don't provide direct access to every word of flash. They are designed to do burst transfers of a number of sequential words. These properties make NAND good for bulk storage, say a CompactFlash card for your digitial camera, but not so good for holding your code. If you're going to copy the code out of flash into RAM anyway, fine. But "execute in place" means you need direct access to jump around to arbitrary instructions, and you really want your code image to be reliable. You can't usually afford to lose a 512-byte chunk out of the middle and just use some other sector of code instead. In other words, it's more a question of your system architecture than the tools. C51 certainly lets you create systems that can execute in place, assuming your hardware is appropriate.