diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 2000-11-27 16:00:50 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 2000-11-27 16:00:50 +0000 |
commit | 86ec6edbe9851ff7e2dd0bd5412d30461cfb2f59 (patch) | |
tree | 3adc2c2fc1830441d1bcf3288754265e1e9fbe85 /c/src/lib/libbsp/sh/shsim/console | |
parent | 2000-11-27 Ralf Corsepius <corsepiu@faw.uni-ulm.de> (diff) | |
download | rtems-86ec6edbe9851ff7e2dd0bd5412d30461cfb2f59.tar.bz2 |
2000-11-27 Joel Sherrill <joel@OARcorp.com>
* 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.
Diffstat (limited to 'c/src/lib/libbsp/sh/shsim/console')
-rw-r--r-- | c/src/lib/libbsp/sh/shsim/console/.cvsignore | 2 | ||||
-rw-r--r-- | c/src/lib/libbsp/sh/shsim/console/Makefile.am | 38 | ||||
-rw-r--r-- | c/src/lib/libbsp/sh/shsim/console/console-io.c | 62 | ||||
-rw-r--r-- | c/src/lib/libbsp/sh/shsim/console/console-support.S | 21 |
4 files changed, 123 insertions, 0 deletions
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 <bsp.h> +#include <rtems/libio.h> +#include <stdlib.h> +#include <assert.h> + + +#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 + |