2017-09-05 92 views
0

即将形成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在我的主板上的系统结构是不一样的。所以我想知道是否有人能告诉我在哪里可以找到这个文件,或者它是怎么样的,以便我可以通过我自己找到它以便继续工作。

谢谢。

+0

也许你可以下载Raspbian操作系统并查看该文件。 – Julien

+0

*“我可以找到这个文件......”* - 该*“文件”*仅存在于特殊的procfs文件系统中,并且**/proc/device-tree/**子目录源自该电路板的设备树一滴。在DT范围** *“文件”*中的DT源代码仅作为文件中的一行存在(例如** arch/arm/boot/dts/bcm2835.dtsi **)。您的电路板(您忽略提供任何详细信息)仅在使用DT时才会使用DT,即使它具有PPC或ARM SoC,即使此时DT的结构可能与此Broadcom示例不同。 – sawdust

+0

在用户空间中做这样的驱动似乎不是最好的主意。 – 0andriy

回答

0

你不一定需要那个“文件”(或更精确地说/ proc节点)。

这在正在建立使用什么似乎是/dev/mem类型的设备驱动程序中的特定PI-GPIO味版本用于暴露硬件的特殊功能寄存器,以做直接存储器映射I/O找到的代码用户空间。

要移植给你的主板,你需要首先确定是否有/dev/mem或类似的功能在你的内核,你可以激活。然后,您需要确定适用于GPIO引脚的I/O寄存器。特定于pi的代码正在读取设备树以找出结果,但还有其他方法,例如,您可以手动读取正在运行的SoC的程序员手册。

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

+0

我明白了,所以我实际上可以使用相同的pi代码,但更改了Gpio的寄存器,这对我的设备有用,对吗? – Lomezno

+0

这将取决于您的设备的功能,您很奇怪地避免识别。 –

相关问题