7. C
ODE
D
EVELOPMENT
7.1. HMON
7.1.1. M
ODE
S
UPPORT
The HMON library is built to support Normal Mode only.
7.1.2. B
REAKPOINT
S
UPPORT
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.C
ODE 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.C
ODE 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. H
MON
C
ODE
S
IZE
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