diff --git a/examples/README.txt b/examples/README.txt index 790f71916..f8f3b361a 100644 --- a/examples/README.txt +++ b/examples/README.txt @@ -1999,31 +1999,6 @@ examples/tiff CONFIG_EXAMPLES_TIFF=y CONFIG_GRAPHICS_TIFF=y -examples/timer -^^^^^^^^^^^^^^ - - This is a simple test of the timer driver (see include/nuttx/timers/timer.h). - - Dependencies: - CONFIG_TIMER - The timer driver must be selected - - Example configuration: - - CONFIG_EXAMPLE_TIMER_DEVNAME - This is the name of the timer device that - will be tested. Default: "/dev/timer0" - CONFIG_EXAMPLE_TIMER_INTERVAL - This is the timer interval in - microseconds. Default: 1000000 - CONFIG_EXAMPLE_TIMER_DELAY - This is the delay between timer samples in - microseconds. Default: 10000 - CONFIG_EXAMPLES_TIMER_APPNAME - This is the name of the built-in - application: Default: "timer" - CONFIG_EXAMPLES_TIMER_STACKSIZE - This is the stack size allocated when - the timer task runs. Default: 2048 - CONFIG_EXAMPLES_TIMER_PRIORITY - This is the priority of the timer task: - Default: 100 - CONFIG_EXAMPLES_TIMER_PROGNAME - This is the name of the program that - will be use when the NSH ELF program is installed. Default: "timer" - examples/touchscreen ^^^^^^^^^^^^^^^^^^^^ diff --git a/examples/timer/.gitignore b/examples/timer/.gitignore deleted file mode 100644 index fa1ec7579..000000000 --- a/examples/timer/.gitignore +++ /dev/null @@ -1,11 +0,0 @@ -/Make.dep -/.depend -/.built -/*.asm -/*.obj -/*.rel -/*.lst -/*.sym -/*.adb -/*.lib -/*.src diff --git a/examples/timer/Kconfig b/examples/timer/Kconfig deleted file mode 100644 index 43d672268..000000000 --- a/examples/timer/Kconfig +++ /dev/null @@ -1,68 +0,0 @@ -# -# For a description of the syntax of this configuration file, -# see the file kconfig-language.txt in the NuttX tools repository. -# - -config EXAMPLES_TIMER - bool "Timer example" - default n - depends on TIMER && BUILD_FLAT - ---help--- - Enable the timer example - -if EXAMPLES_TIMER - -config EXAMPLE_TIMER_DEVNAME - string "Timer device name" - default "/dev/timer0" - ---help--- - This is the name of the timer device that will be tested. - -config EXAMPLE_TIMER_INTERVAL - int "Timer interval (microseconds)" - default 1000000 - ---help--- - This is the timer interval in microseconds. - -config EXAMPLE_TIMER_DELAY - int "Sample delay (microseconds)" - default 100000 - ---help--- - This is the delay between timer samples in microseconds - -config EXAMPLE_TIMER_NSAMPLES - int "Number of samples" - default 20 - ---help--- - This is the number of timer samples that will be collected - -config EXAMPLES_TIMER_APPNAME - string "Timer executable name" - default "timer" - depends on NSH_BUILTIN_APPS - ---help--- - This is the name of the built-in application - -config EXAMPLES_TIMER_STACKSIZE - int "Timer stack size" - default 2048 - depends on NSH_BUILTIN_APPS - ---help--- - This is the stack size allocated when the timer task runs - -config EXAMPLES_TIMER_PRIORITY - int "Timer task priority" - default 100 - depends on NSH_BUILTIN_APPS - ---help--- - This is the priority of the timer task - -config EXAMPLES_TIMER_PROGNAME - string "Timer program name" - default "timer" - depends on BUILD_KERNEL - ---help--- - This is the name of the program that will be use when the NSH ELF - program is installed. - -endif diff --git a/examples/timer/Make.defs b/examples/timer/Make.defs deleted file mode 100644 index 16437a79f..000000000 --- a/examples/timer/Make.defs +++ /dev/null @@ -1,39 +0,0 @@ -############################################################################ -# apps/examples/timer/Make.defs -# Adds selected applications to apps/ build -# -# Copyright (C) 2015 Gregory Nutt. All rights reserved. -# Author: Gregory Nutt -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: -# -# 1. Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# 2. Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in -# the documentation and/or other materials provided with the -# distribution. -# 3. Neither the name NuttX nor the names of its contributors may be -# used to endorse or promote products derived from this software -# without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -# POSSIBILITY OF SUCH DAMAGE. -# -############################################################################ - -ifeq ($(CONFIG_EXAMPLES_TIMER),y) -CONFIGURED_APPS += examples/timer -endif diff --git a/examples/timer/Makefile b/examples/timer/Makefile deleted file mode 100644 index fec6936f8..000000000 --- a/examples/timer/Makefile +++ /dev/null @@ -1,56 +0,0 @@ -############################################################################ -# apps/examples/timer/Makefile -# -# Copyright (C) 2015 Gregory Nutt. All rights reserved. -# Author: Gregory Nutt -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: -# -# 1. Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# 2. Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in -# the documentation and/or other materials provided with the -# distribution. -# 3. Neither the name NuttX nor the names of its contributors may be -# used to endorse or promote products derived from this software -# without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -# POSSIBILITY OF SUCH DAMAGE. -# -############################################################################ - --include $(TOPDIR)/Make.defs - -# Timer built-in application info - -CONFIG_EXAMPLES_TIMER_APPNAME ?= "timer" -CONFIG_EXAMPLES_TIMER_STACKSIZE ?= 2048 -CONFIG_EXAMPLES_TIMER_PRIORITY ?= 100 -CONFIG_EXAMPLES_TIMER_PROGNAME ?= "timer" - -APPNAME = $(CONFIG_EXAMPLES_TIMER_APPNAME) -PRIORITY = $(CONFIG_EXAMPLES_TIMER_PRIORITY) -STACKSIZE = $(CONFIG_EXAMPLES_TIMER_STACKSIZE) -PROGNAME = $(CONFIG_EXAMPLES_TIMER_PROGNAME) - -# Timer example - -ASRCS = -CSRCS = -MAINSRC = timer_main.c - -include $(APPDIR)/Application.mk diff --git a/examples/timer/timer_main.c b/examples/timer/timer_main.c deleted file mode 100644 index ada283895..000000000 --- a/examples/timer/timer_main.c +++ /dev/null @@ -1,230 +0,0 @@ -/**************************************************************************** - * examples/timer/timer_main.c - * - * Copyright (C) 2015 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * 3. Neither the name NuttX nor the names of its contributors may be - * used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS - * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED - * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include - -#include -#include -#include -#include -#include - -#include - -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - -#ifndef CONFIG_EXAMPLE_TIMER_DEVNAME -# define CONFIG_EXAMPLE_TIMER_DEVNAME "/dev/timer0" -#endif - -#ifndef CONFIG_EXAMPLE_TIMER_INTERVAL -# define CONFIG_EXAMPLE_TIMER_INTERVAL 1000000 -#endif - -#ifndef CONFIG_EXAMPLE_TIMER_DELAY -# define CONFIG_EXAMPLE_TIMER_DELAY 100000 -#endif - -#ifndef CONFIG_EXAMPLE_TIMER_NSAMPLES -# define CONFIG_EXAMPLE_TIMER_NSAMPLES 20 -#endif - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - -/**************************************************************************** - * timer_handler - ****************************************************************************/ - -static bool timer_handler(FAR uint32_t *next_interval_us) -{ - /* This handler may: - * - * (1) Modify the timeout value to change the frequency dynamically, or - * (2) Return false to stop the timer. - */ - - return true; -} - -/**************************************************************************** - * timer_status - ****************************************************************************/ - -static void timer_status(int fd) -{ - struct timer_status_s status; - int ret; - - /* Get timer status */ - - ret = ioctl(fd, TCIOC_GETSTATUS, (unsigned long)((uintptr_t)&status)); - if (ret < 0) - { - fprintf(stderr, "ERROR: Failed to get timer status: %d\n", errno); - close(fd); - exit(EXIT_FAILURE); - } - - /* Print the timer status */ - - printf(" flags: %08lx timeout: %lu timeleft: %lu\n", - (unsigned long)status.flags, (unsigned long)status.timeout, - (unsigned long)status.timeleft); -} - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * timer_main - ****************************************************************************/ - -#ifdef CONFIG_BUILD_KERNEL -int main(int argc, FAR char *argv[]) -#else -int timer_main(int argc, char *argv[]) -#endif -{ - struct timer_sethandler_s handler; - int ret; - int fd; - int i; - - /* Open the timer device */ - - printf("Open %s\n", CONFIG_EXAMPLE_TIMER_DEVNAME); - - fd = open(CONFIG_EXAMPLE_TIMER_DEVNAME, O_RDONLY); - if (fd < 0) - { - fprintf(stderr, "ERROR: Failed to open %s: %d\n", - CONFIG_EXAMPLE_TIMER_DEVNAME, errno); - return EXIT_FAILURE; - } - - /* Show the timer status before setting the timer interval */ - - timer_status(fd); - - /* Set the timer interval */ - - printf("Set timer interval to %lu\n", - (unsigned long)CONFIG_EXAMPLE_TIMER_INTERVAL); - - ret = ioctl(fd, TCIOC_SETTIMEOUT, CONFIG_EXAMPLE_TIMER_INTERVAL); - if (ret < 0) - { - fprintf(stderr, "ERROR: Failed to set the timer interval: %d\n", errno); - close(fd); - return EXIT_FAILURE; - } - - /* Show the timer status before attaching the timer handler */ - - timer_status(fd); - - /* Attach the timer handler - * - * NOTE: If no handler is attached, the timer stop at the first interrupt. - */ - - printf("Attach timer handler\n"); - - handler.newhandler = timer_handler; - handler.oldhandler = NULL; - - ret = ioctl(fd, TCIOC_SETHANDLER, (unsigned long)((uintptr_t)&handler)); - if (ret < 0) - { - fprintf(stderr, "ERROR: Failed to set the timer handler: %d\n", errno); - close(fd); - return EXIT_FAILURE; - } - - /* Show the timer status before starting */ - - timer_status(fd); - - /* Start the timer */ - - printf("Start the timer\n"); - - ret = ioctl(fd, TCIOC_START, 0); - if (ret < 0) - { - fprintf(stderr, "ERROR: Failed to start the timer: %d\n", errno); - close(fd); - return EXIT_FAILURE; - } - - /* Wait a bit showing timer status */ - - for (i = 0; i < CONFIG_EXAMPLE_TIMER_NSAMPLES; i++) - { - usleep(CONFIG_EXAMPLE_TIMER_DELAY); - timer_status(fd); - } - - /* Stop the timer */ - - printf("Stop the timer\n"); - - ret = ioctl(fd, TCIOC_STOP, 0); - if (ret < 0) - { - fprintf(stderr, "ERROR: Failed to stop the timer: %d\n", errno); - close(fd); - return EXIT_FAILURE; - } - - /* Show the timer status before starting */ - - timer_status(fd); - - /* Close the timer driver */ - - printf("Finished\n"); - close(fd); - return EXIT_SUCCESS; -}