I know that in order to use the Monitor 51 program, one must use Von Neumann wired Architecture. However for the EA pin, which when low ensures code runs from the internal memory space, and high results in code execution from external memory. So for this case does one leave EA low, therefore implying that the Monitor 51 program runs from the chips internal memory, but program execution is from the external memory? Or is it pulled high??? I would appreciate greatly any thoughts on the subject!
I use an Atmel part with 20kb of internal FLASH. I've put the monitor code in the internal space, and mapped my entire 32kb RAM as Von Neumann architecture. This results in a memory map where: CODE 0x0000-0x4FFF read from the internal flash. XDATA 0x000-0x4FFF read from the RAM. CODE and XDATA 0x5000-0x7FFF are executable RAM and mapped to the same physical address and device. I relocate my application 0x5000 per the mon51 instructions, and voila! Everything works like a charm. Of course, EA must be tied in such a way that code fetches in the 0-0x4FFF range read from internal flash.