# HG changeset patch # User Mychaela Falconia # Date 1615581558 0 # Node ID 9c1d580b50fb61a95f06e77ef000b0042fe03b15 # Parent 81f9e4b4f55cca308888566e8f401a81348bea4d simagent: Rx byte timeout test implemented diff -r 81f9e4b4f55c -r 9c1d580b50fb target-utils/simagent/Makefile --- a/target-utils/simagent/Makefile Fri Mar 12 20:11:39 2021 +0000 +++ b/target-utils/simagent/Makefile Fri Mar 12 20:39:18 2021 +0000 @@ -7,7 +7,7 @@ INSTDIR=/opt/freecalypso/target-bin PROG= simagent -OBJS= crt0.o cmdtab.o main.o simup.o +OBJS= crt0.o byterx.o cmdtab.o main.o simup.o LIBS= ../libcommon/libcommon.a ../libprintf/libprintf.a ../libbase/libbase.a \ ../libc/libc.a LIBGCC= `${CC} -print-file-name=libgcc.a` diff -r 81f9e4b4f55c -r 9c1d580b50fb target-utils/simagent/byterx.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/target-utils/simagent/byterx.c Fri Mar 12 20:39:18 2021 +0000 @@ -0,0 +1,26 @@ +#include +#include "types.h" +#include "simregs.h" + +rx_sim_byte(count) + unsigned count; +{ + for (; count; count--) { + if (!(SIMREGS.stat & SIM_STAT_FEMPTY)) + return SIMREGS.drx; + } + return(-1); +} + +void +cmd_sertimeout(argbulk) + char *argbulk; +{ + char *argv[2]; + int count; + + if (parse_args(argbulk, 1, 1, argv, 0) < 0) + return; + count = atoi(argv[0]); + rx_sim_byte(count); +} diff -r 81f9e4b4f55c -r 9c1d580b50fb target-utils/simagent/cmdtab.c --- a/target-utils/simagent/cmdtab.c Fri Mar 12 20:11:39 2021 +0000 +++ b/target-utils/simagent/cmdtab.c Fri Mar 12 20:39:18 2021 +0000 @@ -7,6 +7,7 @@ extern void cmd_r8(); extern void cmd_r16(); extern void cmd_r32(); +extern void cmd_sertimeout(); extern void cmd_sim_up(); extern void cmd_w8(); extern void cmd_w16(); @@ -27,6 +28,7 @@ {"r8", cmd_r8}, {"r16", cmd_r16}, {"r32", cmd_r32}, + {"sertimeout", cmd_sertimeout}, {"sim-up", cmd_sim_up}, {"w8", cmd_w8}, {"w16", cmd_w16},