我需要这方面的帮助。
当从 Windows exe 调用由 Windows DLL 导出的函数时,我看到延迟或上下文转换时间。
得出的结论是,大多数情况下,DLL 导出函数可以在 1 毫秒内完成。但有时从调用 DLL 函数到它返回的时间点的时间戳甚至是 600 毫秒。这会导致从属端的缓冲区溢出和数据丢失。实际上它是我正在使用的 USB 到 SPI 转换器。DLL 接收 USB 馈送并在另一端发出 SPI 数据。所以如果这个函数需要 600 毫秒才能返回,我会丢失 SPI 从机上的数据。
在分析 DLL 的功能时,它们所用的时间不超过 15 毫秒(尽管考虑到 15 MHz 的 SPI 速度,我们读取 4 个字节,但这个量级的 SPI 读取和写入也很多)。
那么是上下文转换时间吗?将 DLL 的代码合并到我的 exe 本身有帮助吗?我看到的唯一延迟只是在这个 DLL 的函数调用中。有什么方法可以导致不抢占,以便我的应用程序在 Win 7 机器上获得更多的 CPU 时间。我正在使用视觉工作室。
请建议。感谢您对此的帮助。
谢谢,萨库尔