diff options
author | patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> | 2010-11-17 03:16:26 +0000 |
---|---|---|
committer | patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> | 2010-11-17 03:16:26 +0000 |
commit | 4f3a80e30cf925912316179463f7f1288bd0aac8 (patch) | |
tree | c6eac2ed2d8c57861d33663cebc9c39e11a909ec | |
parent | 4d176147d29f98d75bcf15c0a377cf92048174e9 (diff) | |
download | px4-nuttx-4f3a80e30cf925912316179463f7f1288bd0aac8.tar.gz px4-nuttx-4f3a80e30cf925912316179463f7f1288bd0aac8.tar.bz2 px4-nuttx-4f3a80e30cf925912316179463f7f1288bd0aac8.zip |
misc updates
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3116 42af7a65-404d-4744-a932-0658087f49c3
-rw-r--r-- | nuttx/arch/arm/src/lpc17xx/lpc17_ethernet.c | 11 | ||||
-rwxr-xr-x | nuttx/arch/arm/src/lpc17xx/lpc17_irq.c | 28 | ||||
-rwxr-xr-x | nuttx/arch/arm/src/lpc17xx/lpc17_vectors.S | 2 |
3 files changed, 35 insertions, 6 deletions
diff --git a/nuttx/arch/arm/src/lpc17xx/lpc17_ethernet.c b/nuttx/arch/arm/src/lpc17xx/lpc17_ethernet.c index 874ef1c96..33540549c 100644 --- a/nuttx/arch/arm/src/lpc17xx/lpc17_ethernet.c +++ b/nuttx/arch/arm/src/lpc17xx/lpc17_ethernet.c @@ -714,10 +714,10 @@ static int lpc17_transmit(struct lpc17_driver_s *priv) (priv->lp_dev.d_len - 1); /* Copy the packet data into the Tx buffer assignd to this descriptor. It - * should fit because each packet buffer is the MTU size and breaking up larger - * TCP messasges is handled by higher level logic. The hardware does, however,t - * support breaking up larger messages into many fragments, however, that - * capability is not exploited here. + * should fit because each packet buffer is the MTU size and breaking up + * largerTCP messasges is handled by higher level logic. The hardware + * does, however, support breaking up larger messages into many fragments, + * however, that capability is not exploited here. * * This would be a great performance improvement: Remove the buffer from * the lp_dev structure and replace it a pointer directly into the EMAC @@ -744,7 +744,8 @@ static int lpc17_transmit(struct lpc17_driver_s *priv) /* Setup the TX timeout watchdog (perhaps restarting the timer) */ - (void)wd_start(priv->lp_txtimeout, LPC17_TXTIMEOUT, lpc17_txtimeout, 1, (uint32_t)priv); + (void)wd_start(priv->lp_txtimeout, LPC17_TXTIMEOUT, lpc17_txtimeout, + 1, (uint32_t)priv); return OK; } diff --git a/nuttx/arch/arm/src/lpc17xx/lpc17_irq.c b/nuttx/arch/arm/src/lpc17xx/lpc17_irq.c index 886bb7480..59802d87d 100755 --- a/nuttx/arch/arm/src/lpc17xx/lpc17_irq.c +++ b/nuttx/arch/arm/src/lpc17xx/lpc17_irq.c @@ -260,6 +260,33 @@ static int lpc17_irqinfo(int irq, uint32_t *regaddr, uint32_t *bit) } /**************************************************************************** + * Name: lpc17_clrpend + * + * Description: + * Clear a pending interrupt. + * + ****************************************************************************/ + +static inline void lpc17_clrpend(int irq) +{ +#if 0 /* Necessary? */ + /* Check for external interrupt */ + + if (irq >= LPC17_IRQ_EXTINT) + { + if (irq < (LPC17_IRQ_EXTINT+32)) + { + putreg32(1 << (irq - LPC17_IRQ_EXTINT), NVIC_IRQ0_31_CLRPEND); + } + else if (irq < LPC17_IRQ_NIRQS) + { + putreg32(1 << (irq - LPC17_IRQ_EXTINT - 32), NVIC_IRQ32_63_CLRPEND); + } + } +#endif +} + +/**************************************************************************** * Public Functions ****************************************************************************/ @@ -426,6 +453,7 @@ void up_enable_irq(int irq) void up_maskack_irq(int irq) { up_disable_irq(irq); + lpc17_clrpend(irq); } /**************************************************************************** diff --git a/nuttx/arch/arm/src/lpc17xx/lpc17_vectors.S b/nuttx/arch/arm/src/lpc17xx/lpc17_vectors.S index 8498dd87a..ae36da345 100755 --- a/nuttx/arch/arm/src/lpc17xx/lpc17_vectors.S +++ b/nuttx/arch/arm/src/lpc17xx/lpc17_vectors.S @@ -295,7 +295,7 @@ lpc17_common: 2:
msr msp, r1 /* Recover the return MSP value */
- /* Do we need to restore interrupts? */
+ /* Do we need to restore interrupts? Why not just: msr primask, r3 */
tst r3, #1 /* PRIMASK bit 1=1 means that interrupts are masked */
bne 3f
|