7. CODE DEVELOPMENT

7.1. HMON

7.1.1. MODE SUPPORT
The HMON library is built to support Normal Mode only.

7.1.2. BREAKPOINT SUPPORT

The monitor utilises the Address Break Controller for code located in ROM, allowing a single breakpoint to be set in the code.
Code located in RAM may have multiple breakpoints limited only by the size of the On-Chip RAM.
Due to a limitation of the internal address break controller, a breakpoint set in ROM will execute the instruction at the
breakpoint and stop on the subsequent op-code.

7.1.2.1.CODE LOCATED IN FLASH / ROM

Double clicking in the breakpoint column in the code sets the breakpoint. Adding a further breakpoint in the code removes
the previous one. A warning message will be displayed in the message window when this occurs.

7.1.2.2.CODE LOCATED IN RAM

Double clicking in the breakpoint column in the code sets the breakpoint. Breakpoints will remain unless they are double
clicked to remove them.

7.1.3. HMON CODE SIZE

HMON is built along with the debug code. Certain elements of the HMON code must remain at a fixed location in memory.
The following table details the HMON components and their size and location in memory. For more information, refer to the
map file when building code.
Section Description Start Location Size
(H’bytes)
RESET_VECTOR HMON Reset Vector (Vector 0)
Required for Startup of HMON
H’ 0000 2
TRAP_VECTORS Trap Vectors (Vector 8, 9, 10, 11)
Required by HMON to create Trap Breakpoints in RAM
H’ 0010 8
HW_BREAK_VECTORS HMON Break Controller (Vector 12)
Required by HMON to create Breakpoints in ROM
H’ 0018 2
SCI_VECTOR HMON Serial Port Vectors (Vector 23)
Used by HMON when EDK is configured to connect to the
default serial port.
H’ 002E 2
PHMON HMON Code H’ 1000 2C3D
CHMON HMON Constant Data H’ 2C3E 2D10
BHMON HMON Uninitialised data H’ FC80 1FD
FDTInit FDT User Mode Kernel.
This is at a fixed location and must not be moved. Should the
kernel need to be moved it must be re-compiled.
H’ 0400 F7
FDTUserModeMicroKernel FDT User Mode Kernel.
This is at a fixed location and must not be moved. Should the
kernel need to be moved it must be re-compiled.
H’ 0500 6CC
CUser_Vectors Pointer used by HMON to point to the start of user code. H’ 0C00 4*
* CUserVectors is a long word location with the upper 16 bits set to zero.
14