首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Linux下的用户空间串行通信库

Linux下的用户空间串行通信库
EN

Stack Overflow用户
提问于 2018-06-29 10:49:05
回答 1查看 736关注 1票数 1

我需要开发一个(用户空间)库来处理Linux上的串行通信(在Zynq板上: UART,SPI,I2C)。

我浏览了各种网站和东西,研究了xilinx内核,以及一些关于O‘’Reilly设备驱动程序的参考资料。

到目前为止,我发现的是: Linux已经包含了自己的内核模块来处理通信(例如: UART内核模块处理外围设备,以便它们出现在/dev/中,并且通过该设备文件,我可以使用打开、读、写等方式从用户空间与设备进行交互)。

我还读到,作为一种常见的模式,与设备驱动程序的交互是通过字符设备驱动程序完成的,该驱动程序在用户空间中被访问,并负责与设备驱动程序的交互(详见下图)。

我脑海中浮现的想法是:

  • 编写用户空间库,它只与所提供的设备文件交互(在/dev/..)通过经典的打开,读,写
  • 参照上面的映像,开发一个字符设备驱动程序,并在内核中包含这个模块,这样用户空间库就可以通过IOCTL (或类似的)与它进行交互,然后这个新模块将直接与(预存在的)设备驱动程序交互。 (然而,这个解决方案听起来不太好:我读到使用开放、读、写内核模块之类的用户空间不是一个好主意-although是可能的-)

我的问题是:我应该走哪条路,为什么?

此外,任何关于这一主题的文章/书籍/链接都将受到高度赞赏。

提前感谢!

EN

回答 1

Stack Overflow用户

发布于 2018-06-30 18:12:38

快速搜索似乎有很多库,所以不确定为什么要发明轮子,例如i2c

但是无论如何,如果它是一种新型的总线/设备,用户空间库总是很好的方法。

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

https://stackoverflow.com/questions/51100022

复制
相关文章

相似问题

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