我正在使用HummingBoard Pro(Armbian)进行开发。
我想和使用I2C的外设进行交谈。我阅读了数据表,发现它在地址0xff
处提供了数据流。
因此,我写了一个工具来定期检查数据是否可用并打印。
这是司机吗?
如果是驱动程序,它是否应该像其他程序一样在用户空间中运行?
是否有其他方法(以避免轮询外围设备)?
最佳答案
首先,您需要将外围设备添加到Linux设备树中,以便您的Linux系统知道它在那里。我使用Zynq 7000处理系统做了类似的应用程序。这是假设您的体系结构允许您的处理器使用Linux直接与外围设备对话。
http://www.wiki.xilinx.com/Linux+I2C+Driver
这是Xilinx资源。它有一个向设备树添加i2c设备以使用Cadence I2C驱动程序进行访问的示例。 Cadence I2C驱动程序可在许多平台上使用。您应该检查Humming Bird Pro驱动程序兼容性。
我假设您要使用Linux I2C设备接口。这是我使用的方法,我认为这是最简单的方法。我建议您查看一下以了解软件方面的内容。
http://rts.lab.asu.edu/web_438/CSE438_598_slides_yhlee/438_6_Linux_I2C_SMBus.pdf
我假设您知道用户空间和内核空间之间的区别,以及如何在用户空间应用程序中使用设备驱动程序。如果不是这样,我建议您看一下这些Xilinx资源,我认为这些资源在涵盖嵌入式软件设计人员的主题方面做得很好。
https://forums.xilinx.com/xlnx/attachments/xlnx/ELINUX/10657/2/drivers-session3-uio-4public.pdf