µVision3 User's GuideµVision3 Overview User Interface Creating Applications Utilities Debugging Debug Commands ASM ASSIGN BreakAccess BreakDisable BreakEnable BreakKill BreakList BreakSet COVERAGE DEFINE DIR Display Enter EVALuate EXIT Go INCLUDE KILL LOAD LOG LogicAnalyze MAP MODE Ostep PerformanceAnalyze Pstep RESET SAVE SCOPE SET SIGNAL SLOG Tstep Unassemble WatchSet WatchKill Debug Functions Simulation Flash Programming Dialogs Example Programs Command Line Appendix
Target programs you debug with µVision3 access and use memory. µVision3 uses the symbol information in your target program to automatically setup the memory map for most applications. The MAP command lets you specify the memory areas your program uses that are not automatically detected by µVision3.
When you run your target program, µVision3 checks each memory access to determine if it is outside the memory map. If an invalid access is made, µVision3 reports an access violation error. This helps you locate and correct memory problems in your program.
You specify an address range with the MAP command along with the accesses allowed for that range. Read (READ), write (WRITE), and execution (EXEC) accesses (or any combination) may be specified. The memory map supports 1-byte granularity.
The VNM option identifies the specified memory range as von Neumann memory. When VMN is specified with an address range, µVision3 overlaps external data memory (XDATA) and code memory. Write accesses to external data memory also change code memory. Memory ranges specified with VNM may not be a range from the code area and may not cross a 64K boundary. The address range specified must be from the external data area.
The MAP command, when entered with no other parameters, displays the current memory map for your target program. This lets you check your memory map settings.
The CLEAR option lets you remove an address range previously specified with the MAP command.
When µVision3 loads, the following memory maps are defined.
µVision3 supports up to 16MB of memory. This memory is divided into 256 segments of 64K each. The default 8051 and 251 memory spaces are assigned by µVision3 to the segments with the numbers listed in the following table.
Although µVision3 supports up to 16MB of target program memory, only the memory ranges required should be mapped. µVision3 requires two copies of each block allocated in the memory map. One copy holds the data used for reading, writing, and execution. Another copy holds the specific attributes such as access permissions and information for code coverage and performance analysis. For this reason, mapping huge amounts of memory may slow down the execution speed of µVision3 since disk swapping may be required.
The RESET MAP command clears all mapped segments and restores the default mapping shown above. Refer to RESET for more information.
You may also use the Memory Map dialog to review and change the memory mapping. This dialog opens via the main menu Debug – Memory Map....
of your data.