From 86ec6edbe9851ff7e2dd0bd5412d30461cfb2f59 Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Mon, 27 Nov 2000 16:00:50 +0000 Subject: 2000-11-27 Joel Sherrill * The shsim is for the SH simulator in gdb. It should be able to be used with multiple SH CPU models. * .cvsignore, ChangeLog, Makefile.am, README, bsp_specs, configure.in, clock/.cvsignore, clock/Makefile.am, clock/clockdrv.c, console/.cvsignore, console/Makefile.am, console/console-io.c, console/console-support.S, include/.cvsignore, include/Makefile.am, include/bsp.h, start/.cvsignore, start/Makefile.am, start/regs.S, start/start.S, startup/.cvsignore, startup/Makefile.am, startup/bspstart.c, startup/linkcmds, wrapup/.cvsignore, wrapup/Makefile.am: New files. --- c/src/lib/libbsp/sh/shsim/console/.cvsignore | 2 + c/src/lib/libbsp/sh/shsim/console/Makefile.am | 38 +++++++++++++ c/src/lib/libbsp/sh/shsim/console/console-io.c | 62 ++++++++++++++++++++++ .../lib/libbsp/sh/shsim/console/console-support.S | 21 ++++++++ 4 files changed, 123 insertions(+) create mode 100644 c/src/lib/libbsp/sh/shsim/console/.cvsignore create mode 100644 c/src/lib/libbsp/sh/shsim/console/Makefile.am create mode 100644 c/src/lib/libbsp/sh/shsim/console/console-io.c create mode 100644 c/src/lib/libbsp/sh/shsim/console/console-support.S (limited to 'c/src/lib/libbsp/sh/shsim/console') diff --git a/c/src/lib/libbsp/sh/shsim/console/.cvsignore b/c/src/lib/libbsp/sh/shsim/console/.cvsignore new file mode 100644 index 0000000000..282522db03 --- /dev/null +++ b/c/src/lib/libbsp/sh/shsim/console/.cvsignore @@ -0,0 +1,2 @@ +Makefile +Makefile.in diff --git a/c/src/lib/libbsp/sh/shsim/console/Makefile.am b/c/src/lib/libbsp/sh/shsim/console/Makefile.am new file mode 100644 index 0000000000..01cc97d615 --- /dev/null +++ b/c/src/lib/libbsp/sh/shsim/console/Makefile.am @@ -0,0 +1,38 @@ +## +## $Id$ +## + +AUTOMAKE_OPTIONS = foreign 1.4 + +VPATH = @srcdir@:@srcdir@/../../../shared + +PGM = $(ARCH)/console.rel + +C_FILES = console-io.c console-polled.c +C_O_FILES = $(C_FILES:%.c=$(ARCH)/%.o) + +S_FILES = console-support.S +S_O_FILES = $(S_FILES:%.S=$(ARCH)/%.o) + +OBJS = $(C_O_FILES) $(S_O_FILES) + +include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg +include $(top_srcdir)/../../../../../../automake/compile.am +include $(top_srcdir)/../../../../../../automake/lib.am + +# +# (OPTIONAL) Add local stuff here using += +# + +$(PGM): $(OBJS) + $(make-rel) + +# the .rel file built here will be put into libbsp.a by ../wrapup/Makefile + +all-local: $(ARCH) $(OBJS) $(PGM) + +.PRECIOUS: $(PGM) + +EXTRA_DIST = console.c + +include $(top_srcdir)/../../../../../../automake/local.am diff --git a/c/src/lib/libbsp/sh/shsim/console/console-io.c b/c/src/lib/libbsp/sh/shsim/console/console-io.c new file mode 100644 index 0000000000..dfbb970d33 --- /dev/null +++ b/c/src/lib/libbsp/sh/shsim/console/console-io.c @@ -0,0 +1,62 @@ +/* + * This file contains the hardware specific portions of the TTY driver + * for the simulators stdin/out. + * + * Logic based on newlib-1.8.2/newlib/libc/sys/sh/syscalls.c + * + * COPYRIGHT (c) 1989-2000. + * On-Line Applications Research Corporation (OAR). + * + * The license and distribution terms for this file may be + * found in the file LICENSE in this distribution or at + * http://www.OARcorp.com/rtems/license.html. + * + * $Id$ + */ + +#include +#include +#include +#include + + +#define SYS_exit 1 +#define SYS_read 3 +#define SYS_write 4 + + +/* + * console_outbyte_polled + * + * This routine transmits a character using polling. + */ + +void console_outbyte_polled( + int port, + char ch +) +{ + return __trap34 (SYS_write, 1, &ch, 1); +} + +/* + * console_inbyte_nonblocking + * + * This routine polls for a character. + */ + +int console_inbyte_nonblocking( + int port +) +{ + unsigned char c; + + return __trap34 (SYS_read, 0, &c, 1); +} + +/* XXX wrong place for this */ +_sys_exit (n) +{ + return __trap34 (SYS_exit, n, 0, 0); +} + diff --git a/c/src/lib/libbsp/sh/shsim/console/console-support.S b/c/src/lib/libbsp/sh/shsim/console/console-support.S new file mode 100644 index 0000000000..b4b9d9ae76 --- /dev/null +++ b/c/src/lib/libbsp/sh/shsim/console/console-support.S @@ -0,0 +1,21 @@ +/* + * newlib-1.8.2/newlib/libc/sys/sh/trap.S + * + * $Id$ + */ + .text + .global ___trap34 +___trap34: + trapa #34 + tst r1,r1 ! r1 is errno + bt ret + mov.l perrno,r2 + mov.l r1,@r2 +ret: + rts + nop + + .align 2 +perrno: + .long _errno + -- cgit v1.2.3