gpt4 book ai didi

xcode - 在 Xcode 4 中使用 IO Kit 与 USB 通信

转载 作者:行者123 更新时间:2023-12-01 09:08:28 27 4
gpt4 key购买 nike

我正在 Xcode 4 中为 MAC 创建一个应用程序,目的是绘制 ECG 读数的图表。读数应该通过 USB/串行接收。因此,我需要为可以在 USB 端口读取和写入字符的应用程序编写代码。

我认为最好的方法是使用 IO Kit 和 POSIX...

老实说,我在开发者网站一直很难理解。

有没有关于使用 IOKit 进行对话和获取的基本教程?来自硬件设备的信息?

否则,是否有关于基本概念的基本教程OSX架构?当他们开始谈论 mach 任务和 kern 时结果,我完全迷路了。

提前致谢

最佳答案

如果您的设备基本上只是插入标准 USB/串行适配器的串行设备,则您不需要降到 IOKit 级别。为您的串行端口找到 UNIX 字符设备,并为无缓冲文件 I/O 打开它。您可能希望纯粹为了枚举端口而遍历 I/O 套件注册表,但实际 I/O 不需要它。

要开始使用它,您需要创建一个匹配的字典:

IOServiceMatching(kIOSerialBSDServiceValue);

然后通过kIOCalloutDeviceKey属性获取返回设备的文件路径。

如果它不是标准的 USB/串行适配器,您将需要使用 IOKit。不幸的是,在 USB 和驱动程序方面,我不知道有比 Apple 更好的网络资源,但是有一些书:

  • OS X and iOS Kernel Programming专门针对(有抱负的)驱动程序程序员。它包含关于 USB 的 2 章,一章关于 USB 基础知识和内核空间驱动程序,一章关于用户空间 USB 驱动程序。您应该希望能够启动并运行这些。 (免责声明:我是这本书的技术审稿人之一;但是,我没有为它做广告而得到报酬,也没有版税)

  • Mac OS X Internals开始显示它的年龄(它是 OS X 10.4 的最新版本)并且不是专门的驱动程序开发书籍。它确实对 OS X 及其内核的许多部分进行了非常详细的描述。如果我没记错的话,在 USB 上用的不是很多。

对于 USB,您有 2 个选项:用户空间和内核空间驱动程序。除非你有充分的理由在内核中这样做,否则我建议在用户空间中这样做。 API 非常不同,内核 API 是 C++,用户空间是 C。(不,我没有混淆它们)在查看文档时,确保您正在查看 2 个中正确的一个 - 它们都是称为 I/O 套件!

关于xcode - 在 Xcode 4 中使用 IO Kit 与 USB 通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8763384/

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