diff --git a/tests/driver_nrfmin/Makefile b/tests/driver_nrfmin/Makefile new file mode 100644 index 0000000000..f20c9800dc --- /dev/null +++ b/tests/driver_nrfmin/Makefile @@ -0,0 +1,15 @@ +APPLICATION = driver_nrfmin +include ../Makefile.tests_common + +FEATURES_REQUIRED = radio_nrfmin + +USEMODULE += shell +USEMODULE += shell_commands +USEMODULE += ps +USEMODULE += uart0 +USEMODULE += radio_nrfmin +USEMODULE += ng_netbase +USEMODULE += ng_nomac +USEMODULE += ng_pktdump + +include $(RIOTBASE)/Makefile.include diff --git a/tests/driver_nrfmin/README.md b/tests/driver_nrfmin/README.md new file mode 100644 index 0000000000..504f793fdf --- /dev/null +++ b/tests/driver_nrfmin/README.md @@ -0,0 +1,9 @@ +Expected result +=============== +The test will initialize all basic networking functionality including the +minimal NRF51822 radio driver and run the shell providing netif shell commands. + +Background +========== +Use the shell commands to test the link layer functionality of the minimal +NRF51822 radio driver (nrfmin). diff --git a/tests/driver_nrfmin/main.c b/tests/driver_nrfmin/main.c new file mode 100644 index 0000000000..ea969fcd5f --- /dev/null +++ b/tests/driver_nrfmin/main.c @@ -0,0 +1,75 @@ +/* + * Copyright (C) 2015 Freie Universität Berlin + * + * This file is subject to the terms and conditions of the GNU Lesser + * General Public License v2.1. See the file LICENSE in the top level + * directory for more details. + */ + +/** + * @ingroup tests + * @{ + * + * @file + * @brief Test application for the NRF51822 minimal radio driver (nrfmin) + * + * @author Hauke Petersen + * + * @} + */ + +#include + +#include "shell.h" +#include "posix_io.h" +#include "board_uart0.h" +#include "nrfmin.h" +#include "net/ng_netbase.h" +#include "net/ng_nomac.h" +#include "net/ng_pktdump.h" + +#define SHELL_BUFSIZE (UART0_BUFSIZE) + +static char nomac_stack[KERNEL_CONF_STACKSIZE_DEFAULT]; + +int shell_read(void) +{ + char c; + int result = posix_read(uart0_handler_pid, &c, 1); + if (result != 1) { + return -1; + } + return (unsigned char) c; +} + +void shell_put(int c) +{ + putchar(c); +} + +int main(void) +{ + shell_t shell; + ng_netdev_t dev; + ng_netreg_entry_t netobj; + + puts("\nManual test for the minimal NRF51822 radio driver\n"); + puts("Use the 'ifconfig' and 'txtsnd' shell commands to verify the driver"); + + /* initialize network device */ + nrfmin_init(&dev); + ng_nomac_init(nomac_stack, sizeof(nomac_stack), 5, "nomac", &dev); + + /* initialize packet dumper */ + netobj.pid = ng_pktdump_getpid(); + netobj.demux_ctx = NG_NETREG_DEMUX_CTX_ALL; + ng_netreg_register(NG_NETTYPE_UNDEF, &netobj); + + /* initialize and run the shell */ + board_uart0_init(); + posix_open(uart0_handler_pid, 0); + shell_init(&shell, NULL, SHELL_BUFSIZE, shell_read, shell_put); + shell_run(&shell); + + return 0; +}