diff options
author | patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> | 2008-09-18 22:12:52 +0000 |
---|---|---|
committer | patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> | 2008-09-18 22:12:52 +0000 |
commit | cb28e069374a979bfafa651e4c8ddda8a95d3c79 (patch) | |
tree | 18f0805d7511a520729685c9ca81f1e7e70f3170 /nuttx/arch/arm/src/lpc214x | |
parent | b1bb829bbf07e59acb1aecf24c514901b32752e2 (diff) | |
download | px4-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.defs | 4 | ||||
-rw-r--r-- | nuttx/arch/arm/src/lpc214x/lpc214x_decodeirq.c | 6 | ||||
-rw-r--r-- | nuttx/arch/arm/src/lpc214x/lpc214x_irq.c | 3 | ||||
-rw-r--r-- | nuttx/arch/arm/src/lpc214x/lpc214x_timerisr.c | 8 |
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 |