aboutsummaryrefslogtreecommitdiff
path: root/nuttx
diff options
context:
space:
mode:
authorLorenz Meier <lm@inf.ethz.ch>2012-09-14 10:26:05 +0200
committerLorenz Meier <lm@inf.ethz.ch>2012-09-14 10:26:05 +0200
commita8fcd4a49c6306a56cd8df2b015a1e16be70852f (patch)
treed3201a00bba4acbde6afaf662a3e50e0659fa902 /nuttx
parent3a18a79bd5661307eb4c32834e2daf84ccf02a07 (diff)
parentadad44a3a99dae529cc979bd4deb68bba8e9c61c (diff)
downloadpx4-firmware-a8fcd4a49c6306a56cd8df2b015a1e16be70852f.tar.gz
px4-firmware-a8fcd4a49c6306a56cd8df2b015a1e16be70852f.tar.bz2
px4-firmware-a8fcd4a49c6306a56cd8df2b015a1e16be70852f.zip
Merge branch 'master' of github.com:PX4/Firmware
Diffstat (limited to 'nuttx')
-rw-r--r--nuttx/arch/arm/src/stm32/stm32_i2c.c9
-rw-r--r--nuttx/arch/arm/src/stm32/stm32_serial.c24
2 files changed, 23 insertions, 10 deletions
diff --git a/nuttx/arch/arm/src/stm32/stm32_i2c.c b/nuttx/arch/arm/src/stm32/stm32_i2c.c
index cca7a24aa..2d1a7142c 100644
--- a/nuttx/arch/arm/src/stm32/stm32_i2c.c
+++ b/nuttx/arch/arm/src/stm32/stm32_i2c.c
@@ -1198,6 +1198,10 @@ static int stm32_i2c_isr(struct stm32_i2c_priv_s *priv)
{
stm32_i2c_traceevent(priv, I2CEVENT_RCVBYTE, priv->dcnt);
+#ifdef CONFIG_I2C_POLLED
+ //irqstate_t state = irqsave();
+#endif
+
/* Receive a byte */
*priv->ptr++ = stm32_i2c_getreg(priv, STM32_I2C_DR_OFFSET);
@@ -1209,6 +1213,11 @@ static int stm32_i2c_isr(struct stm32_i2c_priv_s *priv)
stm32_i2c_modifyreg(priv, STM32_I2C_CR1_OFFSET, I2C_CR1_ACK, 0);
}
priv->dcnt--;
+
+#ifdef CONFIG_I2C_POLLED
+ //irqrestore(state);
+#endif
+
}
}
diff --git a/nuttx/arch/arm/src/stm32/stm32_serial.c b/nuttx/arch/arm/src/stm32/stm32_serial.c
index 83acc676b..80cf5d61e 100644
--- a/nuttx/arch/arm/src/stm32/stm32_serial.c
+++ b/nuttx/arch/arm/src/stm32/stm32_serial.c
@@ -956,7 +956,8 @@ static int up_setup(struct uart_dev_s *dev)
/* Set up the cached interrupt enables value */
- priv->ie = 0;
+ up_restoreusartint(priv, 0);
+
return OK;
}
@@ -976,12 +977,15 @@ static int up_dma_setup(struct uart_dev_s *dev)
int result;
uint32_t regval;
- /* Do the basic UART setup first */
+ /* Do the basic UART setup first, unless we are the console */
- result = up_setup(dev);
- if (result != OK)
- {
- return result;
+ if (!dev->isconsole)
+ {
+ result = up_setup(dev);
+ if (result != OK)
+ {
+ return result;
+ }
}
/* Acquire the DMA channel. This should always succeed. */
@@ -1941,10 +1945,10 @@ void stm32_serial_dma_poll(void)
int up_putc(int ch)
{
#if CONSOLE_UART > 0
- struct up_dev_s *priv = uart_devs[CONSOLE_UART - 1];
- uint16_t ie;
+// struct up_dev_s *priv = uart_devs[CONSOLE_UART - 1];
+// uint16_t ie;
- up_disableusartint(priv, &ie);
+// up_disableusartint(priv, &ie);
/* Check for LF */
@@ -1956,7 +1960,7 @@ int up_putc(int ch)
}
up_lowputc(ch);
- up_restoreusartint(priv, ie);
+// up_restoreusartint(priv, ie);
#endif
return ch;
}