Skip to content

Commit e0243e8

Browse files
authored
[component][drivers][serial_v2] 优化serial_v2 (#10603)
* [bsp][stm32][drv_usart_v2] uart_isr不再使用链式调用,RXNE内循环读空,一些细节优化 * [componnents][drivers][serial_v2] 增加获取config接口,使用rt_tick_get_delta替代内部的时间绕回判断,写满丢弃策略rx接收数据错乱修复,clang-tidy和cppcheck审查优化 * [utest][drivers][serial_v2] 测试例程进行优化 * [bsp][stm32][drv_usart_v2] 撤回DMAMUX1修改 * [componnents][drivers][serial_v2] read和write不再返回-RT_ETIMEOUT改为已发送或读取的字节数,细节优化 * [utest][drivers][serial_v2] 增加单独的timeout测试,减少测试中的硬延时 * [utest][drivers][serial_v2] 漏提交的posix下标志位 * [utest][drivers][serial_v2] 优化测试例程 * [bsp][stm32][drv_usart_v2] transmit返回错误值,RXNE增加超时逻辑 * [componnents][drivers][serial_v2] 增加transmit错误处理,增加超时退出机制显式的避免死循环 * [componnents][drivers][serial_v2] 适配serial_v2和posix非libc标准库下的console和shell
1 parent 329cffd commit e0243e8

20 files changed

+857
-423
lines changed

bsp/stm32/libraries/HAL_Drivers/drivers/drv_usart_v2.c

Lines changed: 212 additions & 222 deletions
Large diffs are not rendered by default.

components/drivers/include/drivers/dev_serial_v2.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -210,6 +210,7 @@
210210
#define RT_SERIAL_CTRL_RX_FLUSH 0x45 /* clear rx buffer. Discard all data */
211211
#define RT_SERIAL_CTRL_TX_FLUSH 0x46 /* clear tx buffer. Blocking and wait for the send buffer data to be sent. not supported in poll mode */
212212
#define RT_SERIAL_CTRL_GET_UNREAD_BYTES_COUNT 0x47 /* get unread bytes count. not supported in poll mode */
213+
#define RT_SERIAL_CTRL_GET_CONFIG 0x48 /* get serial config */
213214

214215
#define RT_SERIAL_ERR_OVERRUN 0x01
215216
#define RT_SERIAL_ERR_FRAMING 0x02
@@ -336,7 +337,12 @@ struct rt_serial_device
336337
#ifdef RT_USING_SERIAL_BYPASS
337338
struct rt_serial_bypass* bypass;
338339
#endif
340+
339341
struct rt_device_notify rx_notify;
342+
343+
#ifdef RT_USING_POSIX_STDIO
344+
rt_bool_t is_posix_mode;
345+
#endif
340346
};
341347

342348
/**

0 commit comments

Comments
 (0)