GuEe-GUI
9a6d515e27
[dm][serial] add new serial driver for DM
...
1. 8250 serila family (OFW, PCI, DWC, early)
2. Virtual serial (by graphic and input)
3. HVC early serial
4. ARM PL011 serial
Signed-off-by: GuEe-GUI <2991707448@qq.com >
2025-12-16 12:41:02 +08:00
GuEe-GUI
6394797471
[dm][serial] Fixup serial tty check
...
Just return if is not a tty device, don't assert
Signed-off-by: GuEe-GUI <2991707448@qq.com >
2025-12-16 12:41:02 +08:00
GuEe-GUI
cb808f3a0e
[dm][serial] replace rt_hw_atomic_add to rt_atomic_add, clean code
...
Signed-off-by: GuEe-GUI <2991707448@qq.com >
2025-12-16 12:41:02 +08:00
GuEe-GUI
32bdc73a11
[dm][serial] make DM Kconfig import
...
Signed-off-by: GuEe-GUI <2991707448@qq.com >
2025-12-16 12:41:02 +08:00
GUI
1b4111a99e
[dm][pinctrl] Set pinctrl default auto in platform bus. ( #11052 )
...
Signed-off-by: GuEe-GUI <2991707448@qq.com >
2025-12-13 16:33:05 +08:00
Chuan
604d123186
[utest][serial bypass]:Add standardized documentation for Serial Bypass Test
2025-11-26 22:52:39 +08:00
CYFS
327006cb88
[docs][utest]:Add standardized utest documentation block for serialv2_tc
2025-11-15 14:18:44 +08:00
CYFS
934c8195f4
[serialv2]:Fixed the issue where the serialv2 terminal did not have the enable stream mode
2025-11-07 09:52:55 +08:00
Chen Wang
c1363c77d6
utest: Improve the strings displayed in the menu
...
Use "Test" instead of "Unit Testcases" to make string shorter.
Use uppercase to make it look more eye-catching.
Signed-off-by: Chen Wang <unicorn_wang@outlook.com >
2025-10-16 18:34:43 +08:00
Chen Wang
c2f041640d
utest: UTEST_SERIAL_POSIX_TC -> RT_UTEST_SERIAL_POSIX
...
Signed-off-by: Chen Wang <unicorn_wang@outlook.com >
2025-10-15 09:43:16 +08:00
Chen Wang
3e7fd6b437
utest: UTEST_SERIAL_QEMU_TC -> RT_UTEST_SERIAL_QEMU
...
Signed-off-by: Chen Wang <unicorn_wang@outlook.com >
2025-10-15 09:43:16 +08:00
Chen Wang
2881803dec
utest: UTEST_SERIAL_TC -> RT_UTEST_SERIAL_V2
...
Signed-off-by: Chen Wang <unicorn_wang@outlook.com >
2025-10-15 09:43:16 +08:00
Chen Wang
066689bd2f
utest: UTEST_SERIAL_BYPASS -> RT_UTEST_SERIAL_BYPASS
...
Signed-off-by: Chen Wang <unicorn_wang@outlook.com >
2025-10-15 09:43:16 +08:00
Chen Wang
5b99f61af8
utest: serial: update case names
...
Follow the naming rules of utest-cases.
Signed-off-by: Chen Wang <unicorn_wang@outlook.com >
2025-10-11 15:38:45 +08:00
Chen Wang
3b97667323
utest: serial: move from examples to components/drivers/serial
...
Signed-off-by: Chen Wang <unicorn_wang@outlook.com >
2025-10-11 15:38:45 +08:00
wdfk-prog
6881f96ea5
feat: Initialize local variables to prevent GCC compilation warnings
2025-09-06 10:51:57 +08:00
Tang Haojin
728d9e4919
fix(ioctl): _IOR() overflows in switch (int) #10650
2025-09-01 12:46:43 +08:00
maosql
9567564e86
fix: warnings generated by Kconfig.
2025-09-01 11:50:41 +08:00
RyanCW
e0243e87c0
[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
2025-08-16 11:51:57 +08:00
wdfk-prog
302370720e
[driver][serial] V1]: fix correct data loss logic when RX ring buffer is full
...
In the serial ISR (`rt_hw_serial_isr`), the previous logic for handling a full RX FIFO was flawed. When the buffer was filled, it would increment `get_index` (`get_index += 1`).
This had two negative consequences:
1. It effectively discarded the oldest byte of data prematurely.
2. It reduced the usable capacity of a buffer of size N to N-1. For example, a 64-byte buffer could only ever hold 63 readable bytes after becoming full.
This patch corrects the behavior by implementing a standard overwriting ring buffer strategy. When the buffer is full, the logic is changed to `get_index = put_index`.
This ensures that:
- When new data arrives, it correctly overwrites the oldest data.
- The `get_index` is advanced along with the `put_index`, correctly marking the new start of the buffer.
- The full N-byte capacity of the buffer is utilized, always storing the N most recent bytes.
This change resolves the unexpected data loss and makes the buffer behavior correct and predictable.
2025-08-10 12:10:16 +08:00
rcitach
ae50e406da
【SMART】【BSP】【allwinner】Fix smart serial_v2 bypass compile error issue ( #10524 )
...
* Modify the reference path of the header file in the middle section
* format
* Fix smart serial_v2 bypass compile error issue
* add allwinner/d1s ci
2025-08-01 20:59:08 +08:00
ryancw
d23006ea4f
[drivers][serial_v2] 修复dma下rx_flush的bug
2025-07-24 09:37:54 +08:00
ryancw
5c23485006
[components][serial_v2] 写满丢弃策略对dma_ping_buf的处理有误、细节调整
2025-05-22 21:32:21 +08:00
ryancw
ac8fba0129
[drivers][serial_v2]允许阻塞接收超过rx缓冲区大小的数据、增加超时时间、flush、获取缓冲区数据长度命令、数据溢出逻辑修复、稳定性细节优化、添加更多serial_v2测试用例
...
[components][serial_v2] 优化txflush逻辑、对tx的activated做中断保护
[components][at] at_client适配新版serial_v2
[components][at] at_server适配新版serial_v2
[components][serial_v2] 测试用例增加循环调用,format测试用例
[components][serial_v2] poll模式判断逻辑错误
[components][serial_v2] 测试用例去掉一些非必要延时
[components][serial_v2] 测试例程使用menuconfig进行配置,更新readme
[components][at_client] at_client_getchar返回值错误、at_client解析线程优先级错误设置
[components][at] 错误码应该返回负值
[components][serial_v2] TCFLSH和FIONREAD完善、control函数增加错误返回值
[components][serial_v2] RT_SERIAL_CTRL_GET_RX_DATA_LEN更改为RT_SERIAL_CTRL_GET_UNREAD_BYTES_COUNT
[utest][serial_v2] TC_UART_SEND_TIMES替换为RT_SERIAL_TC_SEND_ITERATIONS
[components][serial_v2] FIONREAD参数应该是无符号类型
[utest][serial_v2] 完善测试用例
[components][serial_v2] 避免使用三目运算符
[components][serial_v2] 使用clang-format格式化代码
[components][serial_v2] 添加get超时时间命令
[components][serial_v2] 完善posix接口
[components][serial_v2] 阻塞接口添加阻塞时间为0时的处理逻辑、优化RX阻塞接收逻辑
[components][serial_v2] 设置超时时间命令的参数改为指针形式
[components][serial_v2] nbuf发送添加超时时间为0时的逻辑
[components][serial_v2] 完善添加测试用例
[utest][serial_v2] 修复依赖关系
[components][serial_v2] 非阻塞模式下tx_flush错误修复
[components][serial_v2] activated使用原子API
[components][serial_v2] 优化DMA逻辑、没使能DMA时屏蔽DMA逻辑节约资源
[components][serial_v2] 提供写满时丢弃新数据和覆盖旧数据策略,写满丢弃策略效率更高
[components][serial_v2] 部分平台适配写满时两种策略功能
[components][serial_v2] DMA模式暂不支持丢弃新数据策略
[utest][serial_v2] 优化测试代码
[components][serial_v2] DMA模式下使用乒乓缓冲、DMA模式支持丢弃新数据策略
[utest][serial_v2] 适配DMA乒乓缓冲
[bsp][serial_v2] 部分bsp适配DMA下乒乓缓冲
[components][serial_v2] 使用spinlock替换中断,对部分结构体变量使用原子操作
[utest][serial_v2] 更新测试用例
[components][at] 适配new serialv2不再判断RTT版本号
[components][at] 删除多余的中文注释
[utest][serial_v2] 添加交叉echo示例,qemu环境下专用
[bsp][qemu] 适配串口v2并开启fifo
[components][at] 修复合并导致的错误
[bsp][n32] 适配serial_v2,没有经过测试
[components][serial_v2] 格式化代码
[utest][serial_v2] 删除无意义的打印
2025-05-16 09:42:11 +08:00
zhujiale
9c164882e8
fix when open samrt but using msh after run elf file the msh will down
2025-01-20 15:09:02 +08:00
zhujiale
e4760364f1
[serial] add bypass testcase in utest
2024-12-17 11:08:14 +08:00
zhujiale
27cf024585
[serial] add bypass hook to direct processing char when uart irq coming
2024-12-17 11:08:14 +08:00
PermissionDenied7335
92f26b7ad2
[drivers] fixed a minor typo in the comments of dev_serial_v2.c
2024-11-24 12:48:19 -05:00
CXSforHPU
bb91502465
[drivers] Specifies the name of the drivers driver file
...
https://github.com/RT-Thread/rt-thread/pull/9420
2024-09-13 17:40:40 -04:00
Shell
3f6960b7f5
[smart/tty] skip configure of rt_serial on tty open ( #9152 )
...
Skip configure on open since all configs are copied from the current
configuration on device. So we don't bother to set it back to device
again.
Changes:
- test and skip configuration on open() of tty device
Signed-off-by: Shell <smokewood@qq.com >
2024-07-09 13:28:24 +08:00
LaterComer
4d0b048c97
[fixed]serial_v2.c兼容DFS_V2接口 ( #9153 )
2024-07-09 12:10:08 +08:00
wdfk-prog
28c7522e26
[drivers][serial V1]poll tx 增加异常退出机制
2024-06-27 00:11:18 +08:00
sp-cai
f1832fea24
[components] [drivers ] [Kconfig] 整理 components/drivers 的 Kconfig ( #9054 )
...
整理 components/drivers 的 Kconfig
2024-06-16 15:43:27 +08:00
zms123456
adf2b35ec6
[component][driver]init dm serial naming framework in a separate phase ( #8971 )
...
init dm serial naming framework in a phase
2024-05-21 22:36:20 +08:00
Shell
f2d6325b43
[smart] select console device dynamically ( #8949 )
...
* [smart] select console device dynamically
- Fixed compiler warning on terminal subsystem for
`components/lwp/terminal/terminal.h`
- Updated default console setup to dynamically select an appropriate tty
device based on the configured console device name.
Signed-off-by: Shell <smokewood@qq.com >
* fixup: remove useless codes
---------
Signed-off-by: Shell <smokewood@qq.com >
2024-05-17 13:19:00 +08:00
zms123456
ed002bb84a
[drivers][serial]fix error in getting serial_tty settings ( #8953 )
...
fix error in getting serial_tty settings
2024-05-16 15:36:16 +08:00
geniusgogo
79b3d5ec1e
fix_serial_baudrate_set
2024-05-09 00:35:46 -04:00
geniusgogo
02e0334ac3
fix_serial_baudrate_set
...
Signed-off-by: geniusgogo <xpxyr@sina.com >
2024-05-07 19:03:14 -04:00
xiao-mang
b586889216
fix baudrate error ( #8873 )
...
* fix baudrate error
* fix baudrate error
* fix baudrate error
* fix baudrate error
* fix baudrate error
* fix baudrate error
* fix baudrate error
* fix baudrate error
* fix baudrate error
2024-04-29 18:00:34 +08:00
Shell
9e1a816f06
[smart] fix tty serial ioctl ( #8861 )
...
Using param callback to reduce unnecessary call.
Signed-off-by: Shell <smokewood@qq.com >
2024-04-25 18:21:32 +08:00
Shell
732d32be09
[smart] fixup rt_hw_serial_unregister_tty of serial tty
...
Mutex lock should be taken before release the TTY device.
Signed-off-by: Shell <smokewood@qq.com >
2024-04-20 11:35:45 -04:00
zms123456
a68b4df4d8
[component][driver][serial/tty]using serial name to name tty
...
当使用新device model时,serial的名字由系统分配,id也由系统分配,此时应根据系统分配的serial id来作为serial-tty的id
2024-04-15 23:20:30 -04:00
zms123456
6ad0b2bd09
[components][drivers]fix workqueue bug
...
fix workqueue bug
2024-04-15 23:15:37 -04:00
Shell
4b0f42c24a
[drivers/serial] Introduce hooker for TTY ( #8733 )
...
In this patch, a hook list has been introduced to address the concerns
regarding coupling issues arising from modifications to the serial code
for integrating TTY logic.
Signed-off-by: Shell <smokewood@qq.com >
2024-04-09 21:36:16 +08:00
zhao maosheng
687eb87a2b
fix: code format of serial.c and compile error in aarch64 context_gcc
2024-04-02 08:07:21 -04:00
zms123456
d856f77a55
[components][drivers] fix posix tty, and add more baudrate ( #8683 )
...
* serial-tty fix
* v2
2024-04-01 21:23:04 +08:00
Shell
83e95bdff4
sync smart & dfs ( #8672 )
...
Signed-off-by: xqyjlj <xqyjlj@126.com >
Signed-off-by: Shell <smokewood@qq.com >
Co-authored-by: xqyjlj <xqyjlj@126.com >
2024-03-28 23:42:56 +08:00
Liu Yang
59dbebe6fc
[components/driver] Fix issue for serial_V2 in no buffer bloking tx mode.
2024-03-20 02:28:35 -04:00
fangjianzhou
00c6800e4e
[components/driver] update serial ( #8567 )
2024-03-01 10:29:21 +08:00
LaterComer
82bb104f65
fix(serial_v2): tx_fifo->rb.buffer_ptr not init when RT_DEVICE_FLAG_DMA_TX and RT_SERIAL_TX_BLOCKING
...
为什么提交这份PR (why to submit this PR)
serial_v2驱动框架,rt_serial_tx_enable()函数,在 DMA阻塞发送(RT_DEVICE_FLAG_DMA_TX and RT_SERIAL_TX_BLOCKING) 的时候,使用rt_malloc分配了tx_fifo内存,但是并未对tx_fifo->rb.buffer_ptr指针进行初始化(rt_malloc不会自动初始化内存),因此可能导致buffer_ptr是一个随机指针。但是rt_serail_write()函数需要根据tx_fifo->rb.buffer_ptr是否为RT_NULL来判断是调用_serial_fifo_tx_blocking_nbuf()还是_serial_fifo_tx_blocking_buf()。
由于tx_fifo->rb.buffer_ptr可能是一个随机值(不一定为RT_NULL=0),导致RT_DEVICE_FLAG_DMA_TX and RT_SERIAL_TX_BLOCKING模式下调用了_serial_fifo_tx_blocking_buf(),但是rb没有真正开辟内存空间,导致内存异常
你的解决方案是什么 (what is your solution)
rt_serial_tx_enable(),在DMA阻塞发送分支下,对tx_fifo->rb.buffer_ptr进行初始化,赋值为RT_NULL。
2024-02-21 00:29:53 -05:00