客户端/服务器通信 - 客户端是发送者,服务器是接收者。
当服务器在以太网接口(UDP)上接收到数据时,服务器中的内核被触发。我在服务器端使用实时 LINUX。服务器(即嵌入式 pc 目标)正在处理中断以触发嵌入式 pc 目标(包含 rt Linux)以获取注意力以执行新到达的数据。
如何在中断发生后立即计算内核中的时间并将响应发送回客户端?
客户端/服务器通信 - 客户端是发送者,服务器是接收者。
当服务器在以太网接口(UDP)上接收到数据时,服务器中的内核被触发。我在服务器端使用实时 LINUX。服务器(即嵌入式 pc 目标)正在处理中断以触发嵌入式 pc 目标(包含 rt Linux)以获取注意力以执行新到达的数据。
如何在中断发生后立即计算内核中的时间并将响应发送回客户端?
1)如果你使用的是嵌入式linux平台,你可以参考CPU datasheet:也许它有一套高速定时器。例如,我使用的是基于 ARM Cortex A8 的 SoC,它具有时钟频率高达 38.4 MHz 的 GP 计时器,因此我可以以约 27ns 的精度测量执行时间。很可能,您的操作系统不会提供这样的 API,因此欢迎您直接从内核驱动程序读写 CPU 寄存器。
2) 如果您只想估计执行时间,仅此而已,您可以使用电路板的 GPIO 引脚之一。在“开始”设置引脚,在“结束”设置引脚,然后用示波器观察这个引脚,如果你有的话。
3)如果我误解了你,你只需要一个实时的时间戳(如HH:mm:ss),你可以参考你板子的RTC芯片。使用实时时钟芯片的驱动程序,您可以从内核模块中读取时间。不幸的是,您可能无法从中断服务程序中做到这一点。或者,如果需要,只需调用do_gettimeofday并通过time_to_tm将 timeval 转换为人类可读的内容:)