哪里可以找到设备树?

时间:2017-09-05 10:44:22

标签: linux-kernel raspberry-pi embedded

昨天来了this问题,我决定将this库移到我的董事会。我知道我需要改变一些东西,所以我编译了库,在一个小程序上调用它,看看会发生什么。第一个问题在这里:

    // Check for GPIO and peripheral addresses from device tree.
    // Adapted from code in the RPi.GPIO library at:
    //   http://sourceforge.net/p/raspberry-gpio-python/
    FILE *fp = fopen("/proc/device-tree/soc/ranges", "rb");
    if (fp == NULL) {
      return MMIO_ERROR_OFFSET;
    }

这个lib的目标是Rpi,os我系统上的系统结构是不一样的。所以我想知道是否有人可以告诉我在哪里可以找到这个文件或者它看起来如何,所以我可以自己找到它来继续工作。

感谢。

1 个答案:

答案 0 :(得分:0)

你不一定要那个"文件" (或者更准确地说是/ proc节点)。

此代码中的代码设置为直接内存映射I / O ,使用的是/dev/mem类型设备的pi特定gpio风格版本用于将硬件特殊功能寄存器暴露给用户空间的驱动程序。

要将此端口移植到您的主板上,您需要先确定内核中是否有/dev/mem或类似功能,您可以激活它。然后,您需要为GPIO引脚确定适当的I / O寄存器。特定于pi的代码正在读取设备树以解决这个问题,但还有其他方法,例如,您可以手动阅读正在运行的SoC的程序员手册。

您可以考虑的另一种方法是向系统添加一些小型微控制器(或者是,准系统*** duino),并使用它来收集来自各种传感器和外围设备的信息。然后可以通过UART链路将其转发到SoC,或通过I2C或类似方式查询 - 增加少量成本和一定程度的瓶颈,但也意味着SoC上的软件变得非常便携 - 变得不同可比芯片,或者甚至可以在开发期间在台式PC上运行。

相关问题