ARM Technical Support Knowledge Articles

USING LARGE XDATA AND CODE BLOCKS

Applies to: MON51 Target Monitor

Answer


Information in this article applies to:


QUESTION

I'm using Monitor-51 with the following configuration:

This configuration works but I will need more space for code and my application requires lots of xdata memory. Is it possible to expand the memory space as follows?

As you can see, I will have about 128K of RAM in my design. 56K for program von Neumann space and 64K for xdata space. I can easily add mapping logic to my hardware. So, from the hardware point of view, this is easy for me to do. Is there a way to implement this in the monitor?

ANSWER

Yes, the Monitor-51 that is part of PK51/DK51 Version 7 provides the function WR_CODE in the INSTALL.A51 file. You may modify this function to swap-in the von Neumann memory, write to it, and swap it back out.

The Monitor-51 that comes with PK51/DK51 Version 7 has been modified to call only this function to modify code memory and the monitor data area (which must also be located in the von Neumann area). Making the required changes to the WR_CODE function is all that is required.

For example, if your hardware enables writing into the code memory when I/O port P3.7 is low, you can adapt this function like as follows:

WR_CODE:
        CLR     P3.7      ; Enable von Neumann code memory
        MOVX    @DPTR,A   ; Write the byte
        SETB    P3.7      ; Disable von Neumann code memory
        RET               ; Save/Restore all registers you change

SEE ALSO

Article last edited on: 2002-04-15 00:00:00

Rate this article

[Bad]
|
|
[Good]
Disagree? Move your mouse over the bar and click

Did you find this article helpful? Yes No

How can we improve this article?

Link to this article
Copyright © 2011 ARM Limited. All rights reserved. External (Open), Non-Confidential