summaryrefslogtreecommitdiff
path: root/nuttx/arch/avr/src/atmega
diff options
context:
space:
mode:
authorpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2011-06-15 20:43:32 +0000
committerpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2011-06-15 20:43:32 +0000
commit6883da2c97ffc7f3ee0d96d3f977fb7c1ecd1c9c (patch)
tree4531f9dbd086b423486fd28773e8fe84519ecc13 /nuttx/arch/avr/src/atmega
parent3831c92f094ef1e0f59d0bc8c11a7119f8835a7a (diff)
downloadpx4-nuttx-6883da2c97ffc7f3ee0d96d3f977fb7c1ecd1c9c.tar.gz
px4-nuttx-6883da2c97ffc7f3ee0d96d3f977fb7c1ecd1c9c.tar.bz2
px4-nuttx-6883da2c97ffc7f3ee0d96d3f977fb7c1ecd1c9c.zip
AVR: Need to use rjmp, not jmp, in vector table
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3707 42af7a65-404d-4744-a932-0658087f49c3
Diffstat (limited to 'nuttx/arch/avr/src/atmega')
-rwxr-xr-xnuttx/arch/avr/src/atmega/atmega_head.S2
-rw-r--r--nuttx/arch/avr/src/atmega/atmega_lowinit.c43
2 files changed, 44 insertions, 1 deletions
diff --git a/nuttx/arch/avr/src/atmega/atmega_head.S b/nuttx/arch/avr/src/atmega/atmega_head.S
index cc3027658..0fcdf6c28 100755
--- a/nuttx/arch/avr/src/atmega/atmega_head.S
+++ b/nuttx/arch/avr/src/atmega/atmega_head.S
@@ -116,7 +116,7 @@
****************************************************************************/
.macro vector name
- jmp \name
+ rjmp \name
.endm
/****************************************************************************
diff --git a/nuttx/arch/avr/src/atmega/atmega_lowinit.c b/nuttx/arch/avr/src/atmega/atmega_lowinit.c
index 9361e26b0..4720161bf 100644
--- a/nuttx/arch/avr/src/atmega/atmega_lowinit.c
+++ b/nuttx/arch/avr/src/atmega/atmega_lowinit.c
@@ -47,6 +47,28 @@
* Private Definitions
**************************************************************************/
+#if defined(CONFIG_WDTO_15MS)
+# define WDTO_VALUE WDTO_15MS
+#elif defined(CONFIG_WDTO_30MS)
+# define WDTO_VALUE WDTO_30MS
+#elif defined(CONFIG_WDTO_60MS)
+# define WDTO_VALUE WDTO_60MS
+#elif defined(CONFIG_WDTO_120MS)
+# define WDTO_VALUE WDTO_120MS
+#elif defined(CONFIG_WDTO_1250MS)
+# define WDTO_VALUE WDTO_250MS
+#elif defined(CONFIG_WDTO_500MS)
+# define WDTO_VALUE WDTO_500MS
+#elif defined(CONFIG_WDTO_1S)
+# define WDTO_VALUE WDTO_1S
+#elif defined(CONFIG_WDTO_2S)
+# define WDTO_VALUE WDTO_2S
+#elif defined(CONFIG_WDTO_4S)
+# define WDTO_VALUE WDTO_4S
+#else /* if defined(CONFIG_WDTO_8S) */
+# define WDTO_VALUE WDTO_8S
+#endif
+
/**************************************************************************
* Private Types
**************************************************************************/
@@ -68,6 +90,23 @@
**************************************************************************/
/**************************************************************************
+ * Name: up_wdtinit
+ *
+ * Description:
+ * Initialize the watchdog per the NuttX configuration.
+ *
+ **************************************************************************/
+
+static inline void up_wdtinit(void)
+{
+#ifndef CONFIG_AVR_WDT
+ wdt_disable();
+#else
+ wdt_enable(WDTO_VALUE);
+#endif
+}
+
+/**************************************************************************
* Public Functions
**************************************************************************/
@@ -83,6 +122,10 @@
void up_lowinit(void)
{
+ /* Initialize the watchdog timer */
+
+ up_wdtinit();
+
/* Initialize a console (probably a serial console) */
up_consoleinit();