Implemented advanced queues in STM32 USARTv2 driver.
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@9752 35acf78f-673a-0410-8e92-d51de3d6d3f4
This commit is contained in:
parent
59a0e57530
commit
c976acc335
|
@ -65,6 +65,8 @@
|
||||||
* buffers depending on the requirements of your application.
|
* buffers depending on the requirements of your application.
|
||||||
* @note The default is 16 bytes for both the transmission and receive
|
* @note The default is 16 bytes for both the transmission and receive
|
||||||
* buffers.
|
* buffers.
|
||||||
|
* @note This is a global setting and it can be overridden by low level
|
||||||
|
* driver specific settings.
|
||||||
*/
|
*/
|
||||||
#if !defined(SERIAL_BUFFERS_SIZE) || defined(__DOXYGEN__)
|
#if !defined(SERIAL_BUFFERS_SIZE) || defined(__DOXYGEN__)
|
||||||
#define SERIAL_BUFFERS_SIZE 16
|
#define SERIAL_BUFFERS_SIZE 16
|
||||||
|
@ -268,7 +270,12 @@ struct SerialDriver {
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
void sdInit(void);
|
void sdInit(void);
|
||||||
|
#if !defined(SERIAL_ADVANCED_BUFFERING_SUPPORT) || \
|
||||||
|
(SERIAL_ADVANCED_BUFFERING_SUPPORT == FALSE)
|
||||||
void sdObjectInit(SerialDriver *sdp, qnotify_t inotify, qnotify_t onotify);
|
void sdObjectInit(SerialDriver *sdp, qnotify_t inotify, qnotify_t onotify);
|
||||||
|
#else
|
||||||
|
void sdObjectInit(SerialDriver *sdp);
|
||||||
|
#endif
|
||||||
void sdStart(SerialDriver *sdp, const SerialConfig *config);
|
void sdStart(SerialDriver *sdp, const SerialConfig *config);
|
||||||
void sdStop(SerialDriver *sdp);
|
void sdStop(SerialDriver *sdp);
|
||||||
void sdIncomingDataI(SerialDriver *sdp, uint8_t b);
|
void sdIncomingDataI(SerialDriver *sdp, uint8_t b);
|
||||||
|
|
|
@ -125,6 +125,78 @@ static const SerialConfig default_config =
|
||||||
0
|
0
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#if STM32_SERIAL_USE_USART1 || defined(__DOXYGEN__)
|
||||||
|
/** @brief Input buffer for SD1.*/
|
||||||
|
static uint8_t sd_in_buf1[STM32_SERIAL_USART1_IN_BUF_SIZE];
|
||||||
|
|
||||||
|
/** @brief Output buffer for SD1.*/
|
||||||
|
static uint8_t sd_out_buf1[STM32_SERIAL_USART1_OUT_BUF_SIZE];
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if STM32_SERIAL_USE_USART2 || defined(__DOXYGEN__)
|
||||||
|
/** @brief Input buffer for SD2.*/
|
||||||
|
static uint8_t sd_in_buf2[STM32_SERIAL_USART2_IN_BUF_SIZE];
|
||||||
|
|
||||||
|
/** @brief Output buffer for SD2.*/
|
||||||
|
static uint8_t sd_out_buf2[STM32_SERIAL_USART2_OUT_BUF_SIZE];
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if STM32_SERIAL_USE_USART3 || defined(__DOXYGEN__)
|
||||||
|
/** @brief Input buffer for SD3.*/
|
||||||
|
static uint8_t sd_in_buf3[STM32_SERIAL_USART3_IN_BUF_SIZE];
|
||||||
|
|
||||||
|
/** @brief Output buffer for SD3.*/
|
||||||
|
static uint8_t sd_out_buf3[STM32_SERIAL_USART3_OUT_BUF_SIZE];
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if STM32_SERIAL_USE_UART4 || defined(__DOXYGEN__)
|
||||||
|
/** @brief Input buffer for SD4.*/
|
||||||
|
static uint8_t sd_in_buf4[STM32_SERIAL_UART4_IN_BUF_SIZE];
|
||||||
|
|
||||||
|
/** @brief Output buffer for SD4.*/
|
||||||
|
static uint8_t sd_out_buf4[STM32_SERIAL_UART4_IN_BUF_SIZE];
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if STM32_SERIAL_USE_UART5 || defined(__DOXYGEN__)
|
||||||
|
/** @brief Input buffer for SD5.*/
|
||||||
|
static uint8_t sd_in_buf5[STM32_SERIAL_UART5_IN_BUF_SIZE];
|
||||||
|
|
||||||
|
/** @brief Output buffer for SD5.*/
|
||||||
|
static uint8_t sd_out_buf5[STM32_SERIAL_UART5_IN_BUF_SIZE];
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if STM32_SERIAL_USE_USART6 || defined(__DOXYGEN__)
|
||||||
|
/** @brief Input buffer for SD6.*/
|
||||||
|
static uint8_t sd_in_buf6[STM32_SERIAL_USART6_IN_BUF_SIZE];
|
||||||
|
|
||||||
|
/** @brief Output buffer for SD6.*/
|
||||||
|
static uint8_t sd_out_buf6[STM32_SERIAL_USART6_OUT_BUF_SIZE];
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if STM32_SERIAL_USE_UART7 || defined(__DOXYGEN__)
|
||||||
|
/** @brief Input buffer for SD7.*/
|
||||||
|
static uint8_t sd_in_buf7[STM32_SERIAL_UART7_IN_BUF_SIZE];
|
||||||
|
|
||||||
|
/** @brief Output buffer for SD7.*/
|
||||||
|
static uint8_t sd_out_buf7[STM32_SERIAL_UART7_OUT_BUF_SIZE];
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if STM32_SERIAL_USE_UART8 || defined(__DOXYGEN__)
|
||||||
|
/** @brief Input buffer for SD8.*/
|
||||||
|
static uint8_t sd_in_buf8[STM32_SERIAL_UART8_IN_BUF_SIZE];
|
||||||
|
|
||||||
|
/** @brief Output buffer for SD8.*/
|
||||||
|
static uint8_t sd_out_buf8[STM32_SERIAL_UART8_OUT_BUF_SIZE];
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if STM32_SERIAL_USE_LPUART1 || defined(__DOXYGEN__)
|
||||||
|
/** @brief Input buffer for LPSD1.*/
|
||||||
|
static uint8_t sd_in_buflp1[STM32_SERIAL_LPUART1_IN_BUF_SIZE];
|
||||||
|
|
||||||
|
/** @brief Output buffer for LPSD1.*/
|
||||||
|
static uint8_t sd_out_buflp1[STM32_SERIAL_LPUART1_OUT_BUF_SIZE];
|
||||||
|
#endif
|
||||||
|
|
||||||
/*===========================================================================*/
|
/*===========================================================================*/
|
||||||
/* Driver local functions. */
|
/* Driver local functions. */
|
||||||
/*===========================================================================*/
|
/*===========================================================================*/
|
||||||
|
@ -560,7 +632,9 @@ OSAL_IRQ_HANDLER(STM32_LPUART1_HANDLER) {
|
||||||
void sd_lld_init(void) {
|
void sd_lld_init(void) {
|
||||||
|
|
||||||
#if STM32_SERIAL_USE_USART1
|
#if STM32_SERIAL_USE_USART1
|
||||||
sdObjectInit(&SD1, NULL, notify1);
|
sdObjectInit(&SD1);
|
||||||
|
iqObjectInit(&SD1.iqueue, sd_in_buf1, sizeof sd_in_buf1, NULL, &SD1);
|
||||||
|
oqObjectInit(&SD1.oqueue, sd_out_buf1, sizeof sd_out_buf1, notify1, &SD1);
|
||||||
SD1.usart = USART1;
|
SD1.usart = USART1;
|
||||||
SD1.clock = STM32_USART1CLK;
|
SD1.clock = STM32_USART1CLK;
|
||||||
#if defined(STM32_USART1_NUMBER)
|
#if defined(STM32_USART1_NUMBER)
|
||||||
|
@ -569,7 +643,9 @@ void sd_lld_init(void) {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if STM32_SERIAL_USE_USART2
|
#if STM32_SERIAL_USE_USART2
|
||||||
sdObjectInit(&SD2, NULL, notify2);
|
sdObjectInit(&SD2);
|
||||||
|
iqObjectInit(&SD2.iqueue, sd_in_buf2, sizeof sd_in_buf2, NULL, &SD2);
|
||||||
|
oqObjectInit(&SD2.oqueue, sd_out_buf2, sizeof sd_out_buf2, notify2, &SD2);
|
||||||
SD2.usart = USART2;
|
SD2.usart = USART2;
|
||||||
SD2.clock = STM32_USART2CLK;
|
SD2.clock = STM32_USART2CLK;
|
||||||
#if defined(STM32_USART2_NUMBER)
|
#if defined(STM32_USART2_NUMBER)
|
||||||
|
@ -578,7 +654,9 @@ void sd_lld_init(void) {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if STM32_SERIAL_USE_USART3
|
#if STM32_SERIAL_USE_USART3
|
||||||
sdObjectInit(&SD3, NULL, notify3);
|
sdObjectInit(&SD3);
|
||||||
|
iqObjectInit(&SD3.iqueue, sd_in_buf3, sizeof sd_in_buf3, NULL, &SD3);
|
||||||
|
oqObjectInit(&SD3.oqueue, sd_out_buf3, sizeof sd_out_buf3, notify3, &SD3);
|
||||||
SD3.usart = USART3;
|
SD3.usart = USART3;
|
||||||
SD3.clock = STM32_USART3CLK;
|
SD3.clock = STM32_USART3CLK;
|
||||||
#if defined(STM32_USART3_NUMBER)
|
#if defined(STM32_USART3_NUMBER)
|
||||||
|
@ -587,7 +665,9 @@ void sd_lld_init(void) {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if STM32_SERIAL_USE_UART4
|
#if STM32_SERIAL_USE_UART4
|
||||||
sdObjectInit(&SD4, NULL, notify4);
|
sdObjectInit(&SD4);
|
||||||
|
iqObjectInit(&SD4.iqueue, sd_in_buf4, sizeof sd_in_buf4, NULL, &SD4);
|
||||||
|
oqObjectInit(&SD4.oqueue, sd_out_buf4, sizeof sd_out_buf4, notify4, &SD4);
|
||||||
SD4.usart = UART4;
|
SD4.usart = UART4;
|
||||||
SD4.clock = STM32_UART4CLK;
|
SD4.clock = STM32_UART4CLK;
|
||||||
#if defined(STM32_UART4_NUMBER)
|
#if defined(STM32_UART4_NUMBER)
|
||||||
|
@ -596,7 +676,9 @@ void sd_lld_init(void) {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if STM32_SERIAL_USE_UART5
|
#if STM32_SERIAL_USE_UART5
|
||||||
sdObjectInit(&SD5, NULL, notify5);
|
sdObjectInit(&SD5);
|
||||||
|
iqObjectInit(&SD5.iqueue, sd_in_buf5, sizeof sd_in_buf5, NULL, &SD5);
|
||||||
|
oqObjectInit(&SD5.oqueue, sd_out_buf5, sizeof sd_out_buf5, notify5, &SD5);
|
||||||
SD5.usart = UART5;
|
SD5.usart = UART5;
|
||||||
SD5.clock = STM32_UART5CLK;
|
SD5.clock = STM32_UART5CLK;
|
||||||
#if defined(STM32_UART5_NUMBER)
|
#if defined(STM32_UART5_NUMBER)
|
||||||
|
@ -605,7 +687,9 @@ void sd_lld_init(void) {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if STM32_SERIAL_USE_USART6
|
#if STM32_SERIAL_USE_USART6
|
||||||
sdObjectInit(&SD6, NULL, notify6);
|
sdObjectInit(&SD6);
|
||||||
|
iqObjectInit(&SD6.iqueue, sd_in_buf6, sizeof sd_in_buf6, NULL, &SD6);
|
||||||
|
oqObjectInit(&SD6.oqueue, sd_out_buf6, sizeof sd_out_buf6, notify6, &SD6);
|
||||||
SD6.usart = USART6;
|
SD6.usart = USART6;
|
||||||
SD6.clock = STM32_USART6CLK;
|
SD6.clock = STM32_USART6CLK;
|
||||||
#if defined(STM32_USART6_NUMBER)
|
#if defined(STM32_USART6_NUMBER)
|
||||||
|
@ -614,7 +698,9 @@ void sd_lld_init(void) {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if STM32_SERIAL_USE_UART7
|
#if STM32_SERIAL_USE_UART7
|
||||||
sdObjectInit(&SD7, NULL, notify7);
|
sdObjectInit(&SD7);
|
||||||
|
iqObjectInit(&SD7.iqueue, sd_in_buf7, sizeof sd_in_buf7, NULL, &SD7);
|
||||||
|
oqObjectInit(&SD7.oqueue, sd_out_buf7, sizeof sd_out_buf7, notify7, &SD7);
|
||||||
SD7.usart = UART7;
|
SD7.usart = UART7;
|
||||||
SD7.clock = STM32_UART7CLK;
|
SD7.clock = STM32_UART7CLK;
|
||||||
#if defined(STM32_UART7_NUMBER)
|
#if defined(STM32_UART7_NUMBER)
|
||||||
|
@ -623,7 +709,9 @@ void sd_lld_init(void) {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if STM32_SERIAL_USE_UART8
|
#if STM32_SERIAL_USE_UART8
|
||||||
sdObjectInit(&SD8, NULL, notify8);
|
sdObjectInit(&SD8);
|
||||||
|
iqObjectInit(&SD8.iqueue, sd_in_buf8, sizeof sd_in_buf8, NULL, &SD8);
|
||||||
|
oqObjectInit(&SD8.oqueue, sd_out_buf8, sizeof sd_out_buf8, notify8, &SD8);
|
||||||
SD8.usart = UART8;
|
SD8.usart = UART8;
|
||||||
SD8.clock = STM32_UART8CLK;
|
SD8.clock = STM32_UART8CLK;
|
||||||
#if defined(STM32_UART8_NUMBER)
|
#if defined(STM32_UART8_NUMBER)
|
||||||
|
@ -633,6 +721,8 @@ void sd_lld_init(void) {
|
||||||
|
|
||||||
#if STM32_SERIAL_USE_LPUART1
|
#if STM32_SERIAL_USE_LPUART1
|
||||||
sdObjectInit(&LPSD1, NULL, notifylp1);
|
sdObjectInit(&LPSD1, NULL, notifylp1);
|
||||||
|
iqObjectInit(&LPSD1.iqueue, sd_in_buflp1, sizeof sd_in_buflp1, NULL, &LPSD1);
|
||||||
|
oqObjectInit(&LPSD1.oqueue, sd_out_buflp1, sizeof sd_out_buflp1, notifylp1, &LPSD1);
|
||||||
LPSD1.usart = LPUART1;
|
LPSD1.usart = LPUART1;
|
||||||
LPSD1.clock = STM32_LPUART1CLK;
|
LPSD1.clock = STM32_LPUART1CLK;
|
||||||
#if defined(STM32_LPUART1_NUMBER)
|
#if defined(STM32_LPUART1_NUMBER)
|
||||||
|
|
|
@ -31,6 +31,15 @@
|
||||||
/* Driver constants. */
|
/* Driver constants. */
|
||||||
/*===========================================================================*/
|
/*===========================================================================*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Advanced buffering support switch.
|
||||||
|
* @details This constants enables the advanced buffering support in the
|
||||||
|
* low level driver, the queue buffer is no more part of the
|
||||||
|
* @p SerialDriver structure, each driver can have a different
|
||||||
|
* queue size.
|
||||||
|
*/
|
||||||
|
#define SERIAL_ADVANCED_BUFFERING_SUPPORT TRUE
|
||||||
|
|
||||||
/*===========================================================================*/
|
/*===========================================================================*/
|
||||||
/* Driver pre-compile time settings. */
|
/* Driver pre-compile time settings. */
|
||||||
/*===========================================================================*/
|
/*===========================================================================*/
|
||||||
|
@ -190,6 +199,132 @@
|
||||||
#if !defined(STM32_SERIAL_LPUART1_PRIORITY) || defined(__DOXYGEN__)
|
#if !defined(STM32_SERIAL_LPUART1_PRIORITY) || defined(__DOXYGEN__)
|
||||||
#define STM32_SERIAL_LPUART1_PRIORITY 12
|
#define STM32_SERIAL_LPUART1_PRIORITY 12
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Input buffer size for USART1.
|
||||||
|
*/
|
||||||
|
#if !defined(STM32_SERIAL_USART1_IN_BUF_SIZE) || defined(__DOXYGEN__)
|
||||||
|
#define STM32_SERIAL_USART1_IN_BUF_SIZE SERIAL_BUFFERS_SIZE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Output buffer size for USART1.
|
||||||
|
*/
|
||||||
|
#if !defined(STM32_SERIAL_USART1_OUT_BUF_SIZE) || defined(__DOXYGEN__)
|
||||||
|
#define STM32_SERIAL_USART1_OUT_BUF_SIZE SERIAL_BUFFERS_SIZE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Input buffer size for USART2.
|
||||||
|
*/
|
||||||
|
#if !defined(STM32_SERIAL_USART2_IN_BUF_SIZE) || defined(__DOXYGEN__)
|
||||||
|
#define STM32_SERIAL_USART2_IN_BUF_SIZE SERIAL_BUFFERS_SIZE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Output buffer size for USART2.
|
||||||
|
*/
|
||||||
|
#if !defined(STM32_SERIAL_USART2_OUT_BUF_SIZE) || defined(__DOXYGEN__)
|
||||||
|
#define STM32_SERIAL_USART2_OUT_BUF_SIZE SERIAL_BUFFERS_SIZE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Input buffer size for USART3.
|
||||||
|
*/
|
||||||
|
#if !defined(STM32_SERIAL_USART3_IN_BUF_SIZE) || defined(__DOXYGEN__)
|
||||||
|
#define STM32_SERIAL_USART3_IN_BUF_SIZE SERIAL_BUFFERS_SIZE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Output buffer size for USART3.
|
||||||
|
*/
|
||||||
|
#if !defined(STM32_SERIAL_USART3_OUT_BUF_SIZE) || defined(__DOXYGEN__)
|
||||||
|
#define STM32_SERIAL_USART3_OUT_BUF_SIZE SERIAL_BUFFERS_SIZE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Input buffer size for UART4.
|
||||||
|
*/
|
||||||
|
#if !defined(STM32_SERIAL_UART4_IN_BUF_SIZE) || defined(__DOXYGEN__)
|
||||||
|
#define STM32_SERIAL_UART4_IN_BUF_SIZE SERIAL_BUFFERS_SIZE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Output buffer size for UART4.
|
||||||
|
*/
|
||||||
|
#if !defined(STM32_SERIAL_UART4_OUT_BUF_SIZE) || defined(__DOXYGEN__)
|
||||||
|
#define STM32_SERIAL_UART4_OUT_BUF_SIZE SERIAL_BUFFERS_SIZE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Input buffer size for UART5.
|
||||||
|
*/
|
||||||
|
#if !defined(STM32_SERIAL_UART5_IN_BUF_SIZE) || defined(__DOXYGEN__)
|
||||||
|
#define STM32_SERIAL_UART5_IN_BUF_SIZE SERIAL_BUFFERS_SIZE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Output buffer size for UART5.
|
||||||
|
*/
|
||||||
|
#if !defined(STM32_SERIAL_UART5_OUT_BUF_SIZE) || defined(__DOXYGEN__)
|
||||||
|
#define STM32_SERIAL_UART5_OUT_BUF_SIZE SERIAL_BUFFERS_SIZE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Input buffer size for USART6.
|
||||||
|
*/
|
||||||
|
#if !defined(STM32_SERIAL_USART6_IN_BUF_SIZE) || defined(__DOXYGEN__)
|
||||||
|
#define STM32_SERIAL_USART6_IN_BUF_SIZE SERIAL_BUFFERS_SIZE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Output buffer size for USART6.
|
||||||
|
*/
|
||||||
|
#if !defined(STM32_SERIAL_USART6_OUT_BUF_SIZE) || defined(__DOXYGEN__)
|
||||||
|
#define STM32_SERIAL_USART6_OUT_BUF_SIZE SERIAL_BUFFERS_SIZE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Input buffer size for UART7.
|
||||||
|
*/
|
||||||
|
#if !defined(STM32_SERIAL_UART7_IN_BUF_SIZE) || defined(__DOXYGEN__)
|
||||||
|
#define STM32_SERIAL_UART7_IN_BUF_SIZE SERIAL_BUFFERS_SIZE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Output buffer size for UART7.
|
||||||
|
*/
|
||||||
|
#if !defined(STM32_SERIAL_UART7_OUT_BUF_SIZE) || defined(__DOXYGEN__)
|
||||||
|
#define STM32_SERIAL_UART7_OUT_BUF_SIZE SERIAL_BUFFERS_SIZE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Input buffer size for UART8.
|
||||||
|
*/
|
||||||
|
#if !defined(STM32_SERIAL_UART8_IN_BUF_SIZE) || defined(__DOXYGEN__)
|
||||||
|
#define STM32_SERIAL_UART8_IN_BUF_SIZE SERIAL_BUFFERS_SIZE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Output buffer size for UART8.
|
||||||
|
*/
|
||||||
|
#if !defined(STM32_SERIAL_UART8_OUT_BUF_SIZE) || defined(__DOXYGEN__)
|
||||||
|
#define STM32_SERIAL_UART8_OUT_BUF_SIZE SERIAL_BUFFERS_SIZE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Input buffer size for LPUART1.
|
||||||
|
*/
|
||||||
|
#if !defined(STM32_SERIAL_LPUART1_IN_BUF_SIZE) || defined(__DOXYGEN__)
|
||||||
|
#define STM32_SERIAL_LPUART1_IN_BUF_SIZE SERIAL_BUFFERS_SIZE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Output buffer size for LPUART1.
|
||||||
|
*/
|
||||||
|
#if !defined(STM32_SERIAL_LPUART1_OUT_BUF_SIZE) || defined(__DOXYGEN__)
|
||||||
|
#define STM32_SERIAL_LPUART1_OUT_BUF_SIZE SERIAL_BUFFERS_SIZE
|
||||||
|
#endif
|
||||||
/** @} */
|
/** @} */
|
||||||
|
|
||||||
/*===========================================================================*/
|
/*===========================================================================*/
|
||||||
|
@ -328,11 +463,11 @@ typedef struct {
|
||||||
input_queue_t iqueue; \
|
input_queue_t iqueue; \
|
||||||
/* Output queue.*/ \
|
/* Output queue.*/ \
|
||||||
output_queue_t oqueue; \
|
output_queue_t oqueue; \
|
||||||
|
/* End of the mandatory fields.*/ \
|
||||||
/* Input circular buffer.*/ \
|
/* Input circular buffer.*/ \
|
||||||
uint8_t ib[SERIAL_BUFFERS_SIZE]; \
|
uint8_t ib[SERIAL_BUFFERS_SIZE]; \
|
||||||
/* Output circular buffer.*/ \
|
/* Output circular buffer.*/ \
|
||||||
uint8_t ob[SERIAL_BUFFERS_SIZE]; \
|
uint8_t ob[SERIAL_BUFFERS_SIZE]; \
|
||||||
/* End of the mandatory fields.*/ \
|
|
||||||
/* Pointer to the USART registers block.*/ \
|
/* Pointer to the USART registers block.*/ \
|
||||||
USART_TypeDef *usart; \
|
USART_TypeDef *usart; \
|
||||||
/* Clock frequency for the associated USART/UART.*/ \
|
/* Clock frequency for the associated USART/UART.*/ \
|
||||||
|
|
|
@ -839,7 +839,7 @@
|
||||||
*
|
*
|
||||||
* @api
|
* @api
|
||||||
*/
|
*/
|
||||||
#define rccEnableUART5(lp) rccEnableAPB1(RCC_APB1ENR_USARTS5EN, lp)
|
#define rccEnableUART5(lp) rccEnableAPB1(RCC_APB1ENR_USART5EN, lp)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Disables the USART5 peripheral clock.
|
* @brief Disables the USART5 peripheral clock.
|
||||||
|
|
|
@ -125,6 +125,9 @@ void sdInit(void) {
|
||||||
*
|
*
|
||||||
* @init
|
* @init
|
||||||
*/
|
*/
|
||||||
|
#if !defined(SERIAL_ADVANCED_BUFFERING_SUPPORT) || \
|
||||||
|
(SERIAL_ADVANCED_BUFFERING_SUPPORT == FALSE) || \
|
||||||
|
defined(__DOXYGEN__)
|
||||||
void sdObjectInit(SerialDriver *sdp, qnotify_t inotify, qnotify_t onotify) {
|
void sdObjectInit(SerialDriver *sdp, qnotify_t inotify, qnotify_t onotify) {
|
||||||
|
|
||||||
sdp->vmt = &vmt;
|
sdp->vmt = &vmt;
|
||||||
|
@ -133,6 +136,14 @@ void sdObjectInit(SerialDriver *sdp, qnotify_t inotify, qnotify_t onotify) {
|
||||||
iqObjectInit(&sdp->iqueue, sdp->ib, SERIAL_BUFFERS_SIZE, inotify, sdp);
|
iqObjectInit(&sdp->iqueue, sdp->ib, SERIAL_BUFFERS_SIZE, inotify, sdp);
|
||||||
oqObjectInit(&sdp->oqueue, sdp->ob, SERIAL_BUFFERS_SIZE, onotify, sdp);
|
oqObjectInit(&sdp->oqueue, sdp->ob, SERIAL_BUFFERS_SIZE, onotify, sdp);
|
||||||
}
|
}
|
||||||
|
#else
|
||||||
|
void sdObjectInit(SerialDriver *sdp) {
|
||||||
|
|
||||||
|
sdp->vmt = &vmt;
|
||||||
|
osalEventObjectInit(&sdp->event);
|
||||||
|
sdp->state = SD_STOP;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Configures and starts the driver.
|
* @brief Configures and starts the driver.
|
||||||
|
|
|
@ -79,6 +79,9 @@
|
||||||
*****************************************************************************
|
*****************************************************************************
|
||||||
|
|
||||||
*** Next ***
|
*** Next ***
|
||||||
|
- HAL: Added an advanced buffering mode to the serial driver, now, if the
|
||||||
|
LLD supports it, it is possible to set the size of each queue
|
||||||
|
independently.
|
||||||
- EX: Added compass implementation for ST LSM303DLHC device.
|
- EX: Added compass implementation for ST LSM303DLHC device.
|
||||||
- EX: Added accelerometer implementation for ST LSM303DLHC device.
|
- EX: Added accelerometer implementation for ST LSM303DLHC device.
|
||||||
- EX: Added gyroscope implementation for ST L3GD20 device.
|
- EX: Added gyroscope implementation for ST L3GD20 device.
|
||||||
|
|
Loading…
Reference in New Issue