gpt4 book ai didi

c - 如何将客户端的recv()部分更改为中断服务例程?

转载 作者:行者123 更新时间:2023-11-30 19:24:16 25 4
gpt4 key购买 nike

我当前有一个客户端在其自己的线程中监听数据包。有人告诉我尝试实现 ISR,以便可以立即处理从 recv() 调用收到的数据包,而不是等待该线程被调度。

编辑:现在是在 Windows 中,但稍后会移植到 DSP。

最佳答案

ISR 根据定义在内核空间中运行。除非您处于没有内存保护的嵌入式系统中,否则您需要将内核代码添加到您的项目中。此外,要重新实现 recv,它需要根据需要处理 IP 和 TCP 或 UDP,以从以太网数据包中提取数据。

重新调度和切换到线程的开销是最小的,并且无论如何都需要发生,除非数据包完全在内核中处理。大多数操作系统都有最高优先级的线程设置,有时称为“实时”,这会导致用户空间代码在驱动程序接收数据后以最小的延迟运行。这通常用于音频/视频 I/O 以及网络。

关于c - 如何将客户端的recv()部分更改为中断服务例程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5968438/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com