首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用IO工具包与Xcode 4中的USB通信

使用IO工具包与Xcode 4中的USB通信
EN

Stack Overflow用户
提问于 2012-01-06 19:32:12
回答 1查看 3.8K关注 0票数 3

我在Xcode 4中为MAC做了一个应用程序,目的是绘制一个心电读数的图表。读取应该是通过USB/串行接收。因此,我需要为能够将字符读写到USB端口的应用程序编写代码。

我认为做这件事的方法是使用IO工具包和POSIX.

老实说,我在开发人员网站上找到的IOKit文档很难理解。

是否有任何关于使用IOKit与硬件设备对话和获取信息的基本教程?

如果没有,是否有关于OSX体系结构基本概念的基本教程?当他们开始谈论马赫任务和克恩结果时,我完全迷失了方向。

提前感谢

EN

回答 1

Stack Overflow用户

发布于 2012-01-07 10:50:42

如果您的设备基本上只是一个插入标准USB/串行适配器的串行设备,则不需要降到IOKit级别。定位您的串口的UNIX字符设备,并为未缓冲的文件I/O打开它。您可能想要遍历I/O工具包注册表,纯粹是为了枚举端口,但是对于实际的I/O,您不应该需要它。

要开始这样做,您需要创建一个匹配的字典,其中包括:

代码语言:javascript
复制
IOServiceMatching(kIOSerialBSDServiceValue);

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

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

  • OS和iOS内核编程专门针对(有抱负的)驱动程序程序员。它包含关于USB的两个章节,一个是关于USB基本原理和内核空间驱动程序,另一个是关于用户空间USB驱动程序。希望你能站起来和那些人一起跑。(免责声明:我是这本书的技术评论员之一;然而,我没有为它做广告的报酬,也没有版税)
  • Mac内部件正开始展示它的时代(它现在是OSX10.4版),并不是一本专门开发驱动程序的书。尽管如此,它确实对OS及其内核的许多部分进行了非常详细的描述。如果我没记错的话,USB上的东西不多。

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

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8763384

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档