2 IMPLEMENTING THE DEBUG MONITOR

2.4 Creating Communication Control Routines

For communicating with the debugger, the debug monitor calls the following four RS232C routines (1 to 4). "mon33chX.lib" that contains these routines can be used when using the serial interface Ch.0 or Ch.1 on the S1C33 chip and the S5U1C330MxD1 board. Otherwise, it is necessary to create these routines according to the system since "mon33.lib" must be used. The sample program "m3s_sci.s" that uses the serial interface Ch.0/Ch.1 of the S1C33104/S1C33209 is provided in "src\", so use it after modifying if necessary.

(1) void m_io_init( )

This is an initial set-up routine of the serial interface. Return value is not necessary.

Set up I/O terminals, input clock, baud rate and a data format. Select 8-bit asynchronous mode, no parity and 1 stop bit. The baud rate should be set to a value supported by the debugger db33 and the personal computer. Refer to the "S1C33XXX Technical Manual" for the serial interface and for setting the clock.

The sample program "m3s_sci.s" assumes use of the S5U1C330MxD1 board. It sets the baud rate to 115.2 kbps when a 1.843 MHz external clock is used.

Example: "m_io_init( ) of "m3s_sci.s"

#define

MON_VER

0x11

;monitor firm-ware version

#ifdef SIO0

 

 

 

#define

STDR

0x000401e0

;transmit data register(ch0)

#define

SRDR

0x000401e1

;receive data register(ch0)

#define

SSR

0x000401e2

;serial status register(ch0)

#define

SCR

0x000401e3

;serial control register(ch0)

#define

SIR

0x000401e4

;IrDA control register(ch0)

#define

PIO_SET

0x07

;port function register

#else

 

 

 

#define

STDR

0x000401e5

;transmit data register(ch1)

#define

SRDR

0x000401e6

;receive data register(ch1)

#define

SSR

0x000401e7

;serial status register(ch1)

#define

SCR

0x000401e8

;serial control register(ch1)

#define

SIR

0x000401e9

;IrDA control register(ch1)

#define

PIO_SET

0x70

;port function register

#endif

 

 

 

#define

SIR_SET

0x0

;SIR set(1/16 mode)

#define

SCR_SET

0x7

;SCR set(#SCLK input 1.843MHz 115200bps)

#define

SCR_EN

0xc0

;SCR enable

#define

PIO

0x000402d0

;IO port (P port) register

.code

;******************************************************************************

;

;void m_io_init()

;serial port initial function

;******************************************************************************

.global m_io_init m_io_init:

ld.w

%r0,SIR_SET

;1/16 mode

xld.b

[SIR],%r0

;SIR set

ld.w

%r0,SCR_SET

 

xld.b

[SCR],%r0

;SCR set(#SCLK input 1.843MHz)

xld.w

%r0,PIO_SET

 

xld.b

[PIO],%r0

;IO port set

xld.w

%r0,SCR_ENSCR_SET

 

xld.b

[SCR],%r0

;SCR set

ret

 

 

In addition to the sample program above, "dmt33001\m3s_sci.s " is provided. This program sets the baud rate to 38,400 bps based on the 20 MHz S1C33104 internal clock. Refer to it if necessary.

S1C33 FAMILY DEBUG MONITOR

EPSON

7

OPERATION MANUAL