diff options
author | Lorenz Meier <lm@inf.ethz.ch> | 2012-09-14 10:26:05 +0200 |
---|---|---|
committer | Lorenz Meier <lm@inf.ethz.ch> | 2012-09-14 10:26:05 +0200 |
commit | a8fcd4a49c6306a56cd8df2b015a1e16be70852f (patch) | |
tree | d3201a00bba4acbde6afaf662a3e50e0659fa902 /nuttx/arch/arm/src | |
parent | 3a18a79bd5661307eb4c32834e2daf84ccf02a07 (diff) | |
parent | adad44a3a99dae529cc979bd4deb68bba8e9c61c (diff) | |
download | px4-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/arch/arm/src')
-rw-r--r-- | nuttx/arch/arm/src/stm32/stm32_i2c.c | 9 | ||||
-rw-r--r-- | nuttx/arch/arm/src/stm32/stm32_serial.c | 24 |
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; } |