Move watchdog function platform depend to specific cpu directory.
authorasterix <asterix@38d2e660-2303-0410-9eaa-f027e97ec537>
Mon, 1 Dec 2008 18:10:44 +0000 (18:10 +0000)
committerasterix <asterix@38d2e660-2303-0410-9eaa-f027e97ec537>
Mon, 1 Dec 2008 18:10:44 +0000 (18:10 +0000)
git-svn-id: https://src.develer.com/svnoss/bertos/trunk@1948 38d2e660-2303-0410-9eaa-f027e97ec537

bertos/drv/wdt.h

index 55b74264f535dc13d269c894c341197c208d45c2..85f33f8249b544d86bf5012c4f90e57e0dac0570 100644 (file)
 #define DRV_WDT_H
 
 #include "cfg/cfg_wdt.h"
-#include <cfg/compiler.h> // INLINE
 #include "cfg/cfg_arch.h"
 
+#include <cfg/compiler.h> // INLINE
+
 /* Configury sanity check */
 #if !defined(CONFIG_WATCHDOG) || (CONFIG_WATCHDOG != 0 && CONFIG_WATCHDOG != 1)
        #error CONFIG_WATCHDOG must be defined to either 0 or 1
 #endif
 
-#if CONFIG_WATCHDOG
+#if OS_HOSTED || !CONFIG_WATCHDOG
        #include <cpu/detect.h>
        #include <cfg/os.h>
 
                        #include <QtGui/QApplication>
        #elif OS_POSIX
                #include <sys/select.h>
-       #elif CPU_AVR
-               #include <avr/io.h>
-               #include <cfg/macros.h> // BV()
-               #if CPU_AVR_ATMEGA1281  // Name is different in atmega1281
-                       #define WDTCR WDTCSR
-               #endif
-       #elif defined(ARCH_FREERTOS) && (ARCH & ARCH_FREERTOS)
-               #include <task.h> /* taskYIELD() */
        #else
                #error unknown CPU
        #endif
 #endif /* CONFIG_WATCHDOG */
 
-/**
- * Reset the watchdog timer.
- */
-INLINE void wdt_reset(void)
-{
-#if CONFIG_WATCHDOG
-       #if OS_QT
-               // Let Qt handle events
-               ASSERT(qApp);
-               qApp->processEvents();
-       #elif OS_POSIX
-               static struct timeval tv = { 0, 0 };
-               select(0, NULL, NULL, NULL, &tv);
-       #elif defined(ARCH_FREERTOS) && (ARCH & ARCH_FREERTOS)
-               vTaskDelay(1);
-       #elif CPU_AVR
-               __asm__ __volatile__ ("wdr");
-       #else
-               #error unknown CPU
-       #endif
-#endif /* CONFIG_WATCHDOG */
-}
 
-/**
- * Set watchdog timer timeout.
- *
- * \param timeout  0: 16.3ms, 7: 2.1s
- */
-INLINE void wdt_init(uint8_t timeout)
-{
-#if CONFIG_WATCHDOG
-       #if OS_QT
-               // Create a dummy QApplication object
-               if (!qApp)
-               {
-                       int argc;
-                       new QApplication(argc, (char **)NULL);
-               }
+#if OS_HOSTED || !CONFIG_WATCHDOG
+       /**
+        * Reset the watchdog timer.
+        */
+       INLINE void wdt_reset(void)
+       {
+       #if CONFIG_WATCHDOG
+               #if OS_QT
+                       // Let Qt handle events
+                       ASSERT(qApp);
+                       qApp->processEvents();
+               #elif OS_POSIX
+                       static struct timeval tv = { 0, 0 };
+                       select(0, NULL, NULL, NULL, &tv);
+               #endif
+       #endif /* CONFIG_WATCHDOG */
+       }
+
+       /**
+        * Set watchdog timer timeout.
+        *
+        * \param timeout  0: 16.3ms, 7: 2.1s
+        */
+       INLINE void wdt_init(uint8_t timeout)
+       {
+       #if CONFIG_WATCHDOG
+               #if OS_QT
+                       // Create a dummy QApplication object
+                       if (!qApp)
+                       {
+                               int argc;
+                               new QApplication(argc, (char **)NULL);
+                       }
+                       (void)timeout;
+               #elif OS_POSIX
+                       (void)timeout; // NOP
+               #else
+                       #error unknown CPU
+               #endif
+       #endif /* CONFIG_WATCHDOG */
                (void)timeout;
-       #elif OS_POSIX
-               (void)timeout; // NOP
-       #elif defined(ARCH_FREERTOS) && (ARCH & ARCH_FREERTOS)
-               /* nop */
-       #elif CPU_AVR
-               WDTCR |= BV(WDCE) | BV(WDE);
-               WDTCR = timeout;
-       #else
-               #error unknown CPU
-       #endif
-#else
-       (void)timeout;
-#endif /* CONFIG_WATCHDOG */
-}
+       }
 
-INLINE void wdt_start(void)
-{
+       INLINE void wdt_start(void)
+       {
 #if CONFIG_WATCHDOG
-       #if OS_QT
-               // NOP
-       #elif OS_POSIX
-               // NOP
-       #elif defined(ARCH_FREERTOS) && (ARCH & ARCH_FREERTOS)
-               /* nop */
-       #elif CPU_AVR
-               WDTCR |= BV(WDE);
-       #else
-               #error unknown CPU
-       #endif
+               #if OS_QT
+                       // NOP
+               #elif OS_POSIX
+                       // NOP
+               #else
+                       #error unknown CPU
+               #endif
 #endif /* CONFIG_WATCHDOG */
-}
+       }
 
-INLINE void wdt_stop(void)
-{
+       INLINE void wdt_stop(void)
+       {
 #if CONFIG_WATCHDOG
-       #if OS_QT
-               // NOP
-       #elif OS_POSIX
-               // NOP
-       #elif defined(ARCH_FREERTOS) && (ARCH & ARCH_FREERTOS)
-               /* nop */
-       #elif CPU_AVR
-               WDTCR |= BV(WDCE) | BV(WDE);
-               WDTCR &= ~BV(WDE);
-       #else
-               #error unknown CPU
-       #endif
+               #if OS_QT
+                       // NOP
+               #elif OS_POSIX
+                       // NOP
+               #else
+                       #error unknown CPU
+               #endif
 #endif /* CONFIG_WATCHDOG */
-}
+       }
+#endif /* OS_HOSTED || !CONFIG_WATCHDOG */
 
 #endif /* DRV_WDT_H */