
October 13 1995, Draft 1
339
Chapter 7 Software Debugging
a serial link is available, the need for an emulator is reduced. Emulators are expen-
sive, and it is not always possible to make one available to each team member. The
use of a debug monitor such as the MiniMON29K monitor during the software debug
stage of a project is an economical alternative to an emulator.
The MiniMON29K monitor is not intended to be a standalone monitor. That is,
it requires the support of a software module known as the Target Interface Process
(TIP). The TIP executes on a separate host processor. The embedded 29K target pro-
cessor communicates with the TIP via a serial link or other higher performance chan-
nel (see Figure 7-2). The User–Interface process, known as the Debugger Front End
(DFE), communicates with the TIP via the inter–process communication mechanism
known as UDI which is described later.
Most monitors do not offer high level language support. Assembly code instruc-
tions must be debugged rather than the original, say C, code. Using GDB in conjunc-
tion with the MiniMON29K monitor enables source level code to be debugged,
which is far more productive and necessary for large software projects. (More on this
in the UDI section).
MiniMON29K has a small memory requirement, for both instruction memory
and data memory of the target 29K system. The size is reduced by implementing
much of the support code in the TIP host machine, and communicating with the target
via high–level messages. The amount of communication required is reduced by in-
corporating sophisticated control mechanisms in the target DebugCore.
Much of the following discussion in this section, is concerned with describing
the operating principles of target hardware software components. Other Mini-
MON29K components such as
MonTIP
and MonDFE are described in the later UDI
sections.
7.3.1 The Target MiniMON29K Component
The embedded portion of the MiniMON29K monitor must be installed in target
system ROM or down–loaded by the host via a shared memory interface. The target
application code and additional operating system code can then be down–loaded via
the message system. If changes to the code are required, then the message system can
be used to quickly down–load new code without changing any ROM devices.
The software installed in the target hardware consists of a number of modules,
described in Figure 7-3. When the embedded Am29000 processor is reset, the initial
operating system module, OS, takes control. This module initializes the processor
and the other support modules. The monitor components are required to implement a
message communications driver and a debug control core (DebugCore).
The operating system module is not part of the MiniMON29K monitor. This al-
lows developers to build their own operating system or make use of a 3rd–party real–
time executive product. However, AMD does supply processor initialization code
and HIF system call support routines. HIF is an embedded system call interface spec-