Commit Graph

59 Commits

Author SHA1 Message Date
StackYuan a582c0cc31 [fix] NXP bsp for RT-Thread 5.1.0 fixed up. 2024-03-19 08:13:00 -04: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
Shicheng Chu e2c031643c
[include][dbg]update: no longer use RT_DEBUG_LOG in rtdebug.h (#7750) 2023-06-29 11:24:25 -04:00
7YZ7 501b22aabe
[HUST CSE] Fix many abnormal symbols in annotations and format code 2023-04-17 22:26:23 -04:00
Meco Man 0f461e870c [errno code][-RT_ERROR] fix that use RT_ERROR without - 2023-03-20 00:06:16 -04:00
Meco Man f58d3c5200 rt_device_write/read return data type as rt_ssize_t
rt_ssize_t can give negative error code, which follows the unix style correctly
2023-02-07 21:43:57 -05:00
kylongmu 0b58637a49
USB CDC驱动在win11下无法识别,看了微软的描述修改子类后正常 (#6783)
这是微软关于此问题的链接:
 https://learn.microsoft.com/zh-cn/windows-hardware/drivers/usbcon/usb-driver-installation-based-on-compatible-ids#usbsersys-installation
Windows 10 及更高版本
从 Windows 10 开始,Usbser.inf 已添加到 %Systemroot%\INF 目录,该目录加载 Usbser.sys 作为设备堆栈中功能设备对象 (FDO) 。 如果设备属于通信和 CDC 控制设备类, Usbser.sys 加载。 无需编写自己的 INF 来引用驱动程序。 驱动程序是基于与包含在 Windows 中的其他 USB 设备类驱动程序相似的兼容 ID 匹配来加载的。

USB\Class_02

USB\Class_02&SubClass_02

如果要自动 加载Usbser.sys, 在设备描述符中将类代码设置为 02,将子类代码 设置为 02。 有关详细信息,请参阅 USB 通信设备类。 使用此方法时,无需为设备分发 INF 文件,因为系统使用的是 Usbser.inf。
如果设备指定类代码 02,但子类代码值不是 02,则 Usbser.sys不会自动加载 。 即插即用管理器尝试查找驱动程序。 如果找不到合适的驱动程序,则设备可能未加载驱动程序。 在这种情况下,你可能需要加载自己的驱动程序或编写引用另一个内置驱动程序的 INF。
2023-01-02 22:25:54 -05:00
Man, Jianting (Meco) 99bdf978d7
[rtdef] use lower-case to define attributes (#6728)
* [rtdef] rename RT_WEAK attribute as rt_weak

* [rtdef] rename RT_USED attribute as rt_used

* [rtdef] rename RT_SECTION attribute as rt_section

* [rtdef] rename ALIGN attribute as rt_align

* [legacy] add RT_USED ALIGN RT_SECTION RT_WEAK as legacy support
2022-12-11 13:12:03 -05:00
myshow2258 87be8fdba8 Modified bsp/stm32/libraries/HAL_Drivers/drv_usbd.c
Modified   components/drivers/usb/usbdevice/class/cdc_vcom.c
修复cdc在v1v2的serial框架下接收发送错误的问题.stm32下usbd添加更多的ep_id,以支持复合设备.
2022-11-14 23:47:49 -05:00
BreederBai c28b79b7d7
硬件驱动(VCOM):增加获取USB虚拟串口连接状态的接口 (#5881)
* 硬件驱动(VCOM):增加获取USB虚拟串口连接状态的接口
2022-04-28 20:30:51 +08:00
thewon86 f5b0bfd3f4 uniform code writing-disable interrupt 2022-04-20 14:22:43 +08:00
nongxiaoming 57165329ac [components][usb] fix compile warning in cdc_vcom.c 2021-12-30 01:38:16 +08:00
mazhiyuan f04941c951 [cdc_vcom.c]adapt to both v1 and v2 of serial 2021-10-14 11:42:05 +08:00
mazhiyuan bc5744b1ba 修复cdc_vcom.c中的一些编译问题 2021-10-14 10:58:14 +08:00
dillon-min 247df39bfe
Merge branch 'master' into comp 2021-03-16 20:15:43 +08:00
Dillon Min effcee25b7 component: driver: usb: Add usb interface string(iInterface) setting
To make compositive usb device string more reansonable, not all devices
just show same "RTT Composite Device" on windows device manager.

add a interface rt_usbd_device_set_interface_string to set respective
interface string.

Signed-off-by: Dillon Min <dillon.minfei@gmail.com>
v1 -> v2: remove all tabs to space, to match rt-thread coding style
2021-03-11 17:29:41 +08:00
Meco Man 3c05a4e719 [compoenets] auto & manual formatted 2021-03-08 18:19:04 +08:00
David Lin f086765401
Update cdc_vcom.c 2020-11-21 15:37:45 +08:00
hphuang 0bfb881168 merge latest usb class with workaround 2020-07-03 11:13:24 +08:00
David Lin 10e0f28754
Update cdc_vcom.c 2020-03-21 20:54:13 +08:00
Ihavedone 0fdf20cf58 添加虚拟串口接收缓存的 ENV 配置项,可手动配置接收缓存大小,默认为128字节 2020-01-17 15:42:56 +08:00
weety 5293175998 Fixed data loss issue when USB CDC serial works in dma transmission mode. 2019-02-03 20:36:34 +08:00
Peter Zhang 328a697c1d [components][drivers][usb][usb_device][cdc_vcom]: Add 'RT_VCOM_TX_TIMEOUT' to configure TX_TIMEOUT whick may block vcom tx thread for a long time. Add 'RT_VCOM_TASK_STK_SIZE', 'RT_VCOM_TX_USE_DMA', 'RT_VCOM_SERNO', 'RT_VCOM_SER_LEN', 'RT_VCOM_TX_TIMEOUT' to Kconfig 2018-10-26 14:29:22 +08:00
zyh c2539db38e [Components][drivers][usb]修复非对齐访问异常 2018-10-22 12:08:43 +08:00
Bernard Xiong 2c0640a178 [license] Change license to Apache. 2018-10-14 19:37:18 +08:00
liruncong 7b788014f7 修正drivers下,armclang编译时的警告或错误 注:vcom_tx_thread_entry下, if(!res & CDC_TX_HAS_DATE)应为bug. 2018-09-10 19:40:08 +08:00
liruncong 923d6fe33d 消除usb结构体gcc编译时的相关警告 2018-08-28 03:18:39 +08:00
zyh 1ed770039c [Coponents][USB device]add class register interface 2018-04-24 12:48:05 +08:00
ZYH 5035662cd9 [Components][USB Device]各个class对HS进行了适配
部分class还不支持HS,RNDIS存在暂时无法解决的已知bug
2018-03-16 18:36:14 +08:00
charlown 4f1f0ad918 fix cdc_vcom.c notify receive data. 2018-03-15 10:07:23 +08:00
ChunfengMu a499c18072 [Components][Drivers][USB]vcom dma_tx模式下根据bulk in提交能力限制tx_ringbuffer的填充长度,避免对下次bulk in传输造成影响. 2018-02-06 01:49:59 +08:00
ChunfengMu 9798917638 1:解决主机端未打开串口时,设备端应用程序dma模式下操作vcom发送数据时,dataqueue条目泄漏的问题。 2018-01-31 02:37:34 +08:00
ChunfengMu 263e9faae4
Update cdc_vcom.c 2018-01-30 10:19:40 +08:00
ChunfengMu 2ea318cc03 1:解决未使用串口设备时,bulkout端点接收数据触发断言的问题。 2018-01-30 01:24:00 +08:00
ChunfengMu 0b0cbaf9aa [Components][Drivers][USB]fix compiling errors 2018-01-24 00:27:11 +08:00
Aubr.Cool 537943ed6f [Components] driver usb vcom fix error for console (#1160)
* [Components] driver usb vcom fix error for console
2018-01-22 13:18:27 +08:00
ChunfengMu 31dcce45c8 1:修复cdc_vcom命令处理错误,SetLineCoding命令用于设置一些vcom参数,在此处判定vcom连接状态不合适,因通过SetControlLineState命令wValue字段最低位进行判断。 2018-01-19 01:24:33 +08:00
tangyuxin cc54e0a74e [usb]update usb stack 2017-11-11 10:53:08 +08:00
shaolin 64a2902fa9 1. Fix some spell error;
2. Fix data transfer size calculate error issue;
2014-07-13 17:19:34 +08:00
shaolin 8fd0a7f9c6 Update USB Device Stack to support more device controllers;
Pass USB CV test verification;
Code cleanup;
2014-02-16 17:42:35 +08:00
Grissiom 981d929b56 ringbuffer: fix the ambiguous name
RT_RINGBUFFER_SIZE could mean "the size of the whole buffer", "the size
of the empty space" or "the size of the data". Moreover, it's never a
micro anymore. Change it to rt_ringbuffer_data_len before it's too late.
Also, RT_RINGBUFFER_EMPTY is changed to rt_ringbuffer_space_len.
2013-08-19 14:12:35 +08:00
yiyue.fang 621fbdb90c Embedded GPLv2 license in drivers 2013-06-28 00:36:54 +08:00
Grissiom 046182be94 cdc_vcom: reset the vcom state in proper cases
Reset the vcom state in class_{run,stop} and when the PC is not
receiving data from me.
2013-05-25 15:25:32 +08:00
Grissiom aa179e4438 cdc_vcom: not to start sending data when the data is already sending
We start the sending transaction in SOF handler. But if the data is
already sending, start an other transaction will cause data lose.
Implement a state machine is cdc_vcom and avoid that.
2013-05-12 13:27:13 +08:00
Grissiom d23ee75d2e cdc_vcom: send data as many as possible
The data filled into dcd_ep_write does not to be limited by
MaxPacketSize.
2013-05-10 17:50:07 +08:00
Grissiom ffb1e62020 cdc_vcom: send a zero-length-packet at the end is transaction 2013-05-10 15:17:59 +08:00
Grissiom 778c4239b1 cdc_vcom: fix the bug that use ringbuffer pool as usb packet buffer
This commit set the buffer for packet to CDC_MaxPacketSize which is a
reasonable value for it. However, maybe we should make
CDC_{RX,TX}_BUFSIZE configurable as well.
2013-05-09 23:18:58 +08:00
heyuanjie87 34d531578e class driver can custom string description 2013-01-24 20:59:43 +08:00
heyuanjie87 d20974b9d2 allows the user custom PID and VID 2013-01-09 12:18:13 +08:00
Ming, Bai b4de7cce57 Re-normalizing the repo 2013-01-08 22:40:58 +08:00