diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2018-04-19 06:28:01 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2018-04-20 13:08:32 +0200 |
commit | d7d66d7d4523b904c8ccc6aea3709dc0d5aa5bdc (patch) | |
tree | caa54b4229e86a68c84ab5961af34e087dce5302 /bsps/m32c | |
parent | bsps/powerpc: Move shared btimer support (diff) | |
download | rtems-d7d66d7d4523b904c8ccc6aea3709dc0d5aa5bdc.tar.bz2 |
bsps: Move console drivers to bsps
This patch is a part of the BSP source reorganization.
Update #3285.
Diffstat (limited to 'bsps/m32c')
-rw-r--r-- | bsps/m32c/m32cbsp/console/console-io.c | 65 | ||||
-rw-r--r-- | bsps/m32c/m32cbsp/console/syscalls.S | 43 |
2 files changed, 108 insertions, 0 deletions
diff --git a/bsps/m32c/m32cbsp/console/console-io.c b/bsps/m32c/m32cbsp/console/console-io.c new file mode 100644 index 0000000000..745493c43a --- /dev/null +++ b/bsps/m32c/m32cbsp/console/console-io.c @@ -0,0 +1,65 @@ +/* + * This file contains the hardware specific portions of the TTY driver + * for the serial ports on the m32c simulator in gdb. + */ + +/* + * COPYRIGHT (c) 1989-2008. + * 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.rtems.org/license/LICENSE. + */ + +#include <bsp.h> +#include <bsp/console-polled.h> +#include <rtems/libio.h> +#include <stdlib.h> +#include <assert.h> + +/* + * console_initialize_hardware + * + * This routine initializes the console hardware. + * + */ + +void console_initialize_hardware(void) +{ + return; +} + +/* + * console_outbyte_polled + * + * This routine transmits a character using polling. + */ +ssize_t sys_write(int fd, const void *buf, size_t count); +void console_outbyte_polled( + int port, + char ch +) +{ + sys_write( 2, &ch, 1 ); +} + +/* + * console_inbyte_nonblocking + * + * This routine polls for a character. + */ + +int console_inbyte_nonblocking( + int port +) +{ + return -1; +} + +#include <rtems/bspIo.h> + +static void M32CsimBSP_output_char(char c) { console_outbyte_polled( 0, c ); } + +BSP_output_char_function_type BSP_output_char = M32CsimBSP_output_char; +BSP_polling_getchar_function_type BSP_poll_char = NULL; diff --git a/bsps/m32c/m32cbsp/console/syscalls.S b/bsps/m32c/m32cbsp/console/syscalls.S new file mode 100644 index 0000000000..f4cabac940 --- /dev/null +++ b/bsps/m32c/m32cbsp/console/syscalls.S @@ -0,0 +1,43 @@ +/* + * System call support for simulator in gdb. + * Adapted from newlib 1.16.0. + */ + +#define SYS_exit 1 +#define SYS_open 2 +#define SYS_close 3 +#define SYS_read 4 +#define SYS_write 5 +#define SYS_lseek 6 +#define SYS_unlink 7 +#define SYS_getpid 8 +#define SYS_kill 9 +#define SYS_fstat 10 +#define SYS_sbrk 11 + +#define POUND # +#define SYSCALL(N) mov.b POUND N,0x400 + +#define S(n) _sys_##n: .global _sys_##n | SYSCALL(SYS_##n) | rts + +S(write) +S(exit) +S(sbrk) + + .global _abort +_abort: + /* This is for debuggers. The simulator stops here too. */ + brk + + /* Else, fall back on the simulator's "kill me" option. */ +#if defined(__r8c_cpu__) || defined(__m16c_cpu__) + mov.w #42,r1 +#else + mov.w #42,r0 +#endif + + SYSCALL(SYS_kill) + + /* Else, exit. */ + jmp.a __exit + |