diff --git a/tests/driver_enc28j60/Makefile b/tests/driver_enc28j60/Makefile new file mode 100644 index 0000000000..c17e17d78c --- /dev/null +++ b/tests/driver_enc28j60/Makefile @@ -0,0 +1,40 @@ +export APPLICATION = driver_enc28j60 +include ../Makefile.tests_common + +FEATURES_REQUIRED = periph_spi periph_gpio + +BOARD_INSUFFICIENT_MEMORY := msb-430h nucleo-f334 stm32f0discovery weio z1 + +USEMODULE += gnrc_netdev2 +USEMODULE += gnrc_netif_default +USEMODULE += auto_init_gnrc_netif +USEMODULE += enc28j60 +USEMODULE += gnrc_ipv6_router_default +USEMODULE += gnrc_icmpv6_echo +USEMODULE += shell +USEMODULE += shell_commands +USEMODULE += ps + +# set board specific peripheral configurations +ifneq (,$(filter stm32f4discovery,$(BOARD))) + ENC_SPI ?= SPI_1 + ENC_CS ?= GPIO_PIN\(PORT_B,12\) + ENC_INT ?= GPIO_PIN\(PORT_B,11\) + ENC_RST ?= GPIO_PIN\(PORT_B,10\) +endif + +# fallback: set SPI bus and pins to default values +ENC_SPI ?= SPI_0 +ENC_CS ?= GPIO_PIN\(0,0\) +ENC_INT ?= GPIO_PIN\(0,1\) +ENC_RST ?= GPIO_PIN\(0,2\) +# export SPI and pins +CFLAGS += -DENC28J60_PARAM_SPI=$(ENC_SPI) +CFLAGS += -DENC28J60_PARAM_CS=$(ENC_CS) +CFLAGS += -DENC28J60_PARAM_INT=$(ENC_INT) +CFLAGS += -DENC28J60_PARAM_RESET=$(ENC_RST) + +# make sure we read the local enc28j60 params file +CFLAGS += -I$(CURDIR) + +include $(RIOTBASE)/Makefile.include diff --git a/tests/driver_enc28j60/main.c b/tests/driver_enc28j60/main.c new file mode 100644 index 0000000000..cb17810a83 --- /dev/null +++ b/tests/driver_enc28j60/main.c @@ -0,0 +1,46 @@ +/* + * 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 ENC28J60 Ethernet device driver + * + * @author Hauke Petersen + * + * @} + */ + +#include + +#include "shell.h" +#include "msg.h" + +#define MAIN_QUEUE_SIZE (8U) +static msg_t _main_msg_queue[MAIN_QUEUE_SIZE]; + +int main(void) +{ + /* we need a message queue for the thread running the shell in order to + * receive potentially fast incoming networking packets */ + msg_init_queue(_main_msg_queue, MAIN_QUEUE_SIZE); + puts("Test application for the enc28j60 driver\n"); + puts("This test just pulls in parts of the GNRC network stack, use the\n" + "provided shell commands (i.e. ifconfig, ping6) to interact with\n" + "your enc28j60 device.\n"); + + /* start shell */ + puts("Starting the shell now..."); + char line_buf[SHELL_DEFAULT_BUFSIZE]; + shell_run(NULL, line_buf, SHELL_DEFAULT_BUFSIZE); + + /* should be never reached */ + return 0; +}