summaryrefslogtreecommitdiff
path: root/nuttx/arch/arm/src/lpc214x
diff options
context:
space:
mode:
authorpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2008-09-18 22:12:52 +0000
committerpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2008-09-18 22:12:52 +0000
commitcb28e069374a979bfafa651e4c8ddda8a95d3c79 (patch)
tree18f0805d7511a520729685c9ca81f1e7e70f3170 /nuttx/arch/arm/src/lpc214x
parentb1bb829bbf07e59acb1aecf24c514901b32752e2 (diff)
downloadpx4-nuttx-cb28e069374a979bfafa651e4c8ddda8a95d3c79.tar.gz
px4-nuttx-cb28e069374a979bfafa651e4c8ddda8a95d3c79.tar.bz2
px4-nuttx-cb28e069374a979bfafa651e4c8ddda8a95d3c79.zip
LPC2148 timer irq fixes
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@931 42af7a65-404d-4744-a932-0658087f49c3
Diffstat (limited to 'nuttx/arch/arm/src/lpc214x')
-rw-r--r--nuttx/arch/arm/src/lpc214x/Make.defs4
-rw-r--r--nuttx/arch/arm/src/lpc214x/lpc214x_decodeirq.c6
-rw-r--r--nuttx/arch/arm/src/lpc214x/lpc214x_irq.c3
-rw-r--r--nuttx/arch/arm/src/lpc214x/lpc214x_timerisr.c8
4 files changed, 13 insertions, 8 deletions
diff --git a/nuttx/arch/arm/src/lpc214x/Make.defs b/nuttx/arch/arm/src/lpc214x/Make.defs
index 6b10e4bad..d18788954 100644
--- a/nuttx/arch/arm/src/lpc214x/Make.defs
+++ b/nuttx/arch/arm/src/lpc214x/Make.defs
@@ -47,6 +47,10 @@ ifneq ($(CONFIG_DISABLE_SIGNALS),y)
CMN_CSRCS += up_schedulesigaction.c up_sigdeliver.c
endif
+ifeq ($(CONFIG_DEBUG),y)
+CMN_CSRCS += up_puts.c
+endif
+
CHIP_ASRCS = lpc214x_lowputc.S
CHIP_CSRCS = lpc214x_decodeirq.c lpc214x_irq.c lpc214x_timerisr.c \
lpc214x_serial.c
diff --git a/nuttx/arch/arm/src/lpc214x/lpc214x_decodeirq.c b/nuttx/arch/arm/src/lpc214x/lpc214x_decodeirq.c
index 12ae2354f..bf7b4940e 100644
--- a/nuttx/arch/arm/src/lpc214x/lpc214x_decodeirq.c
+++ b/nuttx/arch/arm/src/lpc214x/lpc214x_decodeirq.c
@@ -127,9 +127,9 @@ static void lpc214x_decodeirq( uint32 *regs)
* times through the loop.
*/
- for (nibble = pending & 0xff, irq_base = 0;
- pending && irq < NR_IRQS;
- pending >>= 4, nibble = pending & 0xff, irq_base += 4)
+ for (nibble = pending & 0x0f, irq_base = 0;
+ pending && irq_base < NR_IRQS;
+ pending >>= 4, nibble = pending & 0x0f, irq_base += 4)
{
if (nibble)
{
diff --git a/nuttx/arch/arm/src/lpc214x/lpc214x_irq.c b/nuttx/arch/arm/src/lpc214x/lpc214x_irq.c
index 96a40b0e2..1bfd6bba0 100644
--- a/nuttx/arch/arm/src/lpc214x/lpc214x_irq.c
+++ b/nuttx/arch/arm/src/lpc214x/lpc214x_irq.c
@@ -39,6 +39,7 @@
#include <nuttx/config.h>
#include <sys/types.h>
+#include <debug.h>
#include <nuttx/irq.h>
#include "up_arch.h"
@@ -156,7 +157,7 @@ void up_enable_irq(int irq)
*/
uint32 val = vic_getreg(LPC214X_VIC_INTENABLE_OFFSET);
- vic_putreg(val | (1 << irq), LPC214X_VIC_INTENCLEAR_OFFSET);
+ vic_putreg(val | (1 << irq), LPC214X_VIC_INTENABLE_OFFSET);
irqrestore(flags);
}
}
diff --git a/nuttx/arch/arm/src/lpc214x/lpc214x_timerisr.c b/nuttx/arch/arm/src/lpc214x/lpc214x_timerisr.c
index 618e9b15d..367b96ca3 100644
--- a/nuttx/arch/arm/src/lpc214x/lpc214x_timerisr.c
+++ b/nuttx/arch/arm/src/lpc214x/lpc214x_timerisr.c
@@ -60,9 +60,9 @@
#define tmr_getreg16(o) getreg16(LPC214X_TMR0_BASE+(o))
#define tmr_getreg32(o) getreg32(LPC214X_TMR0_BASE+(o))
-#define tmr_putreg8(o,v) putreg8((v), LPC214X_TMR0_BASE+(o))
-#define tmr_putreg16(o,v) putreg16((v), LPC214X_TMR0_BASE+(o))
-#define tmr_putreg32(o,v) putreg32((v), LPC214X_TMR0_BASE+(o))
+#define tmr_putreg8(v,o) putreg8((v), LPC214X_TMR0_BASE+(o))
+#define tmr_putreg16(v,o) putreg16((v), LPC214X_TMR0_BASE+(o))
+#define tmr_putreg32(v,o) putreg32((v), LPC214X_TMR0_BASE+(o))
/****************************************************************************
* Private Types
@@ -151,7 +151,7 @@ void up_timerinit(void)
/* Attach the timer interrupt vector */
#ifdef CONFIG_VECTORED_INTERRUPTS
- up_attach_vector(LPC214X_IRQ_SYSTIMER, LPC214X_SYSTEMER_VEC, (vic_vector_t)up_timerisr);
+ up_attach_vector(LPC214X_IRQ_SYSTIMER, LPC214X_SYSTIMER_VEC, (vic_vector_t)up_timerisr);
#else
(void)irq_attach(LPC214X_IRQ_SYSTIMER, (xcpt_t)up_timerisr);
#endif