From 44173905cbefd2c63da5ae7b51e0fbba7d4ddea6 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Tue, 22 Apr 2014 09:01:20 -0600 Subject: [PATCH] Various SAM4S related fixes, mostely related to the timer driver driver and the SAM4S timer/counter. All from Bob Doisin --- configs/sam4s-xplained-pro/include/board.h | 1 + configs/sam4s-xplained-pro/src/Makefile | 3 +++ .../src/sam4s-xplained-pro.h | 2 +- configs/sam4s-xplained-pro/src/sam_nsh.c | 20 +++++++++++++++---- configs/sam4s-xplained-pro/src/sam_wdt.c | 1 + 5 files changed, 22 insertions(+), 5 deletions(-) diff --git a/configs/sam4s-xplained-pro/include/board.h b/configs/sam4s-xplained-pro/include/board.h index 05de1ea671..406efc17f3 100644 --- a/configs/sam4s-xplained-pro/include/board.h +++ b/configs/sam4s-xplained-pro/include/board.h @@ -41,6 +41,7 @@ ************************************************************************************/ #include +#include #ifndef __ASSEMBLY__ # include diff --git a/configs/sam4s-xplained-pro/src/Makefile b/configs/sam4s-xplained-pro/src/Makefile index 15501d49ef..e3ebc842f8 100644 --- a/configs/sam4s-xplained-pro/src/Makefile +++ b/configs/sam4s-xplained-pro/src/Makefile @@ -72,6 +72,9 @@ ifeq ($(CONFIG_SAM34_WDT),y) CSRCS += sam_wdt.c endif +ifeq ($(CONFIG_TIMER),y) +CSRCS += sam_tc.c +endif COBJS = $(CSRCS:.c=$(OBJEXT)) diff --git a/configs/sam4s-xplained-pro/src/sam4s-xplained-pro.h b/configs/sam4s-xplained-pro/src/sam4s-xplained-pro.h index 9226f2d0d7..e4a6fc4ca1 100644 --- a/configs/sam4s-xplained-pro/src/sam4s-xplained-pro.h +++ b/configs/sam4s-xplained-pro/src/sam4s-xplained-pro.h @@ -57,7 +57,7 @@ #define HAVE_HSMCI 1 #define HAVE_PROC 1 -#define HAVE_USBDEV 1 +#define HAVE_USBDEV 0 #undef HAVE_USBMONITOR /* HSMCI */ diff --git a/configs/sam4s-xplained-pro/src/sam_nsh.c b/configs/sam4s-xplained-pro/src/sam_nsh.c index 92b1ff8aa4..60b1aee82e 100644 --- a/configs/sam4s-xplained-pro/src/sam_nsh.c +++ b/configs/sam4s-xplained-pro/src/sam_nsh.c @@ -45,10 +45,9 @@ #include #include #include +#include -#ifdef CONFIG_SYSTEM_USBMONITOR -# include -#endif +#include #ifdef CONFIG_CDCACM # include @@ -58,6 +57,14 @@ # include #endif +#ifdef CONFIG_TIMER +# include +#endif + +#ifdef CONFIG_SYSTEM_USBMONITOR +# include +#endif + #include "sam4s-xplained-pro.h" /**************************************************************************** @@ -134,7 +141,6 @@ int nsh_archinitialize(void) } #endif -#warning "add automount config...." message("Mounting /dev/mmcsd0 to /fat\n"); ret = mount("/dev/mmcsd0", "/fat", "vfat", 0, NULL); if (ret < 0) @@ -143,5 +149,11 @@ int nsh_archinitialize(void) return ret; } +#ifdef CONFIG_TIMER + /* Registers the timer driver and starts an async interrupt. */ + + up_timerinitialize(); +#endif + return OK; } diff --git a/configs/sam4s-xplained-pro/src/sam_wdt.c b/configs/sam4s-xplained-pro/src/sam_wdt.c index 8423e802dc..e78a12023f 100644 --- a/configs/sam4s-xplained-pro/src/sam_wdt.c +++ b/configs/sam4s-xplained-pro/src/sam_wdt.c @@ -139,6 +139,7 @@ static int wdog_daemon(int argc, char *argv[]) goto errout_with_dev; } + usleep(200); while(1) { usleep((CONFIG_WDT_THREAD_INTERVAL)*1000);