summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGregory Nutt <gnutt@nuttx.org>2013-08-23 11:48:53 -0600
committerGregory Nutt <gnutt@nuttx.org>2013-08-23 11:48:53 -0600
commitf5041805e65e1b75dee96a79d410cf427f51b67e (patch)
tree80c2bf0f00c0e6d6923e3e2ca80d1b3f81234018
parentb422de3ec5e3ef4f33c8fbd7e9ce3ae2cccfb262 (diff)
downloadnuttx-f5041805e65e1b75dee96a79d410cf427f51b67e.tar.gz
nuttx-f5041805e65e1b75dee96a79d410cf427f51b67e.tar.bz2
nuttx-f5041805e65e1b75dee96a79d410cf427f51b67e.zip
SourceForge bug #16 Fix IO pin map. Add CONFIG_SERIAL_TERMIOS support. From CCTSAO
-rw-r--r--nuttx/ChangeLog4
-rw-r--r--nuttx/arch/arm/src/stm32/chip/stm32f40xxx_pinmap.h2
-rw-r--r--nuttx/include/nuttx/serial/serial.h22
3 files changed, 27 insertions, 1 deletions
diff --git a/nuttx/ChangeLog b/nuttx/ChangeLog
index e5592576d..2e1dd12e0 100644
--- a/nuttx/ChangeLog
+++ b/nuttx/ChangeLog
@@ -5427,4 +5427,8 @@
* nuttx/arch/arm/src/sama5/sam_ehci.c: Now code complete for all
asynchronous endpoints (control and bulk); nothing yet in place
for periodic endponts (interrupt and isochronous) (2013-8-22).
+ * include/nuttx/serial/serial.h and arch/arm/src/stm32/chip/stm32f40xxx_pinmap.h:
+ SourceForge bug #16 Fix IO pin map. Add CONFIG_SERIAL_TERMIOS support.
+ Also fixes some STM32 F4 Timer 8 pin configurations. From CCTSAO
+ (2013-8-23).
diff --git a/nuttx/arch/arm/src/stm32/chip/stm32f40xxx_pinmap.h b/nuttx/arch/arm/src/stm32/chip/stm32f40xxx_pinmap.h
index ed3f09c01..488d03f40 100644
--- a/nuttx/arch/arm/src/stm32/chip/stm32f40xxx_pinmap.h
+++ b/nuttx/arch/arm/src/stm32/chip/stm32f40xxx_pinmap.h
@@ -615,7 +615,7 @@
#define GPIO_TIM8_CH2N_2 (GPIO_ALT|GPIO_AF3|GPIO_PORTB|GPIO_PIN14)
#define GPIO_TIM8_CH2N_3 (GPIO_ALT|GPIO_AF3|GPIO_PORTH|GPIO_PIN14)
#define GPIO_TIM8_CH3N_1 (GPIO_ALT|GPIO_AF3|GPIO_PORTB|GPIO_PIN1)
-#define GPIO_TIM8_CH3N_2 (GPIO_ALT|GPIO_AF3|GPIO_PORTC|GPIO_PIN15)
+#define GPIO_TIM8_CH3N_2 (GPIO_ALT|GPIO_AF3|GPIO_PORTB|GPIO_PIN15)
#define GPIO_TIM8_CH3N_3 (GPIO_ALT|GPIO_AF3|GPIO_PORTH|GPIO_PIN15)
#define GPIO_TIM8_CH3IN_1 (GPIO_ALT|GPIO_AF3|GPIO_SPEED_50MHz|GPIO_FLOAT|GPIO_PORTC|GPIO_PIN8)
#define GPIO_TIM8_CH3IN_2 (GPIO_ALT|GPIO_AF3|GPIO_SPEED_50MHz|GPIO_FLOAT|GPIO_PORTI|GPIO_PIN7)
diff --git a/nuttx/include/nuttx/serial/serial.h b/nuttx/include/nuttx/serial/serial.h
index 3c1de2225..9a3d9098a 100644
--- a/nuttx/include/nuttx/serial/serial.h
+++ b/nuttx/include/nuttx/serial/serial.h
@@ -46,6 +46,9 @@
#include <stdint.h>
#include <stdbool.h>
#include <semaphore.h>
+#ifdef CONFIG_SERIAL_TERMIOS
+# include <termios.h>
+#endif
#include <nuttx/fs/fs.h>
@@ -191,6 +194,8 @@ struct uart_ops_s
struct uart_dev_s
{
+ /* State data */
+
uint8_t open_count; /* Number of times the device has been opened */
volatile bool xmitwaiting; /* true: User waiting for space in xmit.buffer */
volatile bool recvwaiting; /* true: User waiting for data in recv.buffer */
@@ -198,14 +203,31 @@ struct uart_dev_s
volatile bool disconnected; /* true: Removable device is not connected */
#endif
bool isconsole; /* true: This is the serial console */
+
+ /* Terminal control flags */
+
+#ifdef CONFIG_SERIAL_TERMIOS
+ tcflag_t tc_iflag; /* Input modes */
+ tcflag_t tc_oflag; /* Output modes */
+ tcflag_t tc_lflag; /* Local modes */
+#endif
+
+ /* Semaphores */
+
sem_t closesem; /* Locks out new open while close is in progress */
sem_t xmitsem; /* Wakeup user waiting for space in xmit.buffer */
sem_t recvsem; /* Wakeup user waiting for data in recv.buffer */
#ifndef CONFIG_DISABLE_POLL
sem_t pollsem; /* Manages exclusive access to fds[] */
#endif
+
+ /* I/O buffers */
+
struct uart_buffer_s xmit; /* Describes transmit buffer */
struct uart_buffer_s recv; /* Describes receive buffer */
+
+ /* Driver interface */
+
FAR const struct uart_ops_s *ops; /* Arch-specific operations */
FAR void *priv; /* Used by the arch-specific logic */