Added timer device path as a CLI option

This commit is contained in:
saramonteiro 2020-09-16 17:19:07 -03:00 committed by Alan Carvalho de Assis
parent c26d662951
commit 32f193a7e2

View File

@ -45,13 +45,15 @@
#include <fcntl.h> #include <fcntl.h>
#include <signal.h> #include <signal.h>
#include <errno.h> #include <errno.h>
#include <string.h>
#include <nuttx/timers/timer.h> #include <nuttx/timers/timer.h>
/**************************************************************************** /****************************************************************************
* Pre-processor Definitions * Pre-processor Definitions
****************************************************************************/ ****************************************************************************/
#define DEVNAME_SIZE 11
#ifndef CONFIG_EXAMPLES_TIMER_DEVNAME #ifndef CONFIG_EXAMPLES_TIMER_DEVNAME
# define CONFIG_EXAMPLES_TIMER_DEVNAME "/dev/timer0" # define CONFIG_EXAMPLES_TIMER_DEVNAME "/dev/timer0"
#endif #endif
@ -72,6 +74,10 @@
# define CONFIG_EXAMPLES_TIMER_SIGNO 17 # define CONFIG_EXAMPLES_TIMER_SIGNO 17
#endif #endif
/****************************************************************************
* Private Types
****************************************************************************/
/**************************************************************************** /****************************************************************************
* Private Functions * Private Functions
****************************************************************************/ ****************************************************************************/
@ -142,16 +148,37 @@ int main(int argc, FAR char *argv[])
int ret; int ret;
int fd; int fd;
int i; int i;
int opt;
char devname[DEVNAME_SIZE];
strcpy(devname, CONFIG_EXAMPLES_TIMER_DEVNAME);
while ((opt = getopt(argc, argv, ":d:")) != -1)
{
switch (opt)
{
case 'd':
strcpy(devname, optarg);
break;
case ':':
fprintf(stderr, "ERROR: Option needs a value\n");
exit(EXIT_FAILURE);
default: /* '?' */
fprintf(stderr, "Usage: %s [-d /dev/timerx]\n",
argv[0]);
exit(EXIT_FAILURE);
}
}
/* Open the timer device */ /* Open the timer device */
printf("Open %s\n", CONFIG_EXAMPLES_TIMER_DEVNAME); printf("Open %s\n", devname);
fd = open(CONFIG_EXAMPLES_TIMER_DEVNAME, O_RDONLY); fd = open(devname, O_RDONLY);
if (fd < 0) if (fd < 0)
{ {
fprintf(stderr, "ERROR: Failed to open %s: %d\n", fprintf(stderr, "ERROR: Failed to open %s: %d\n",
CONFIG_EXAMPLES_TIMER_DEVNAME, errno); devname, errno);
return EXIT_FAILURE; return EXIT_FAILURE;
} }