我需要开发一个(用户空间)库来处理Linux上的串行通信(在Zynq-Zybo板上:UART,SPI,I2C)。
我浏览了各种网站和资料,并研究了xilinx-linux内核,以及有关O'Reilly Linux Device Drivers的一些参考。
到目前为止,我发现:Linux已经包含自己的内核模块来处理通信(例如:UART内核模块处理外围设备,以便它们显示在/ dev /中,并且可以通过该设备文件与该设备进行交互。使用打开,读取,写入等方式从用户空间访问)。
我还读到,作为一种常见模式,与设备驱动程序的交互是通过字符设备驱动程序完成的,该字符设备驱动程序在用户空间中访问,并负责与设备驱动程序的交互(下图中的详细信息)
我想到的想法是:
我的问题是:我应该选择哪种方式,为什么?
此外,无论在该主题上的任何文章/书籍/链接都将受到高度赞赏。
预先感谢!
答案 0 :(得分:1)
似乎有很多库,所以不确定为什么要发明轮子。 https://www.acmesystems.it/user_i2c
但是无论如何,如果它是新型的总线/设备,那么用户空间库始终是一个好方法