sun*_*amy 5 linux android signals ioctl android-ndk
我正在尝试在 C 语言的 Android NDK 中提交 ISOCHRONOUS URB。
usbdevfs_urb& urbRequest = *(usbdevfs_urb*)malloc( 384 );
urbRequest.type = USBDEVFS_URB_TYPE_ISO;
urbRequest.endpoint = mpEndpoint->GetEndpointAddress();//mpEndpoint->GetEndpointIndex();
urbRequest.status = 0;
urbRequest.flags = USBDEVFS_URB_ISO_ASAP;
urbRequest.buffer = pData;
urbRequest.buffer_length = 0;
urbRequest.actual_length = 0;
urbRequest.start_frame = 0;
urbRequest.number_of_packets = 1;
urbRequest.error_count = 0;
urbRequest.signr = SIGRTMIN;
urbRequest.usercontext = pData;
usbdevfs_iso_packet_desc* pIsoPacketDesc = &urbRequest.iso_frame_desc[0];
pIsoPacketDesc->length = 384;
pIsoPacketDesc->actual_length = 0;
pIsoPacketDesc->status = 0;
ioctl( fd, USBDEVFS_SUBMITURB, &usbRequest);
Run Code Online (Sandbox Code Playgroud)
在上面的代码中,我想为 urbRequest.signr 设置 SIGRTMIN 信号。这样我就可以在 URB 完成时获得 SIGRTMIN 信号,并且可以在之后调用 REAP URB
但在 Android 中我根本没有收到 SIGRTMIN 信号。相反,我的应用程序毫无例外地被杀死
有什么方法可以使用 SIGRTMIN 信号在 Android 中提交 URB 吗?
注意:我尝试使用 SIGUSR1 和 SIGUSR2 信号,但 ART 正在捕获这些信号
无论如何,在Android中是否可以进行同步、中断、批量传输(使用非阻塞异步IO)?
| 归档时间: |
|
| 查看次数: |
243 次 |
| 最近记录: |