哪里可以找到设备树?

问题描述 投票:0回答:1
昨天从

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系统结构不一样。所以我想知道是否有人可以告诉我在哪里可以找到这个文件或者它是什么样子,这样我就可以自己找到它以继续工作。

linux-kernel raspberry-pi embedded
1个回答
0
投票
您不一定需要该“文件”(或更准确地说是 /proc 节点)。

其中找到的代码正在设置执行直接

内存映射 I/O,使用似乎是 pi 特定的 gpio 风格版本的 /dev/mem

 类型的设备驱动程序,用于向用户空间公开硬件特殊功能寄存器.

要将其移植到您的主板上,您需要首先确定您的内核中是否有

/dev/mem

 或类似的功能可以激活。  然后,您需要为 GPIO 引脚确定适当的 I/O 寄存器。  特定于 pi 的代码通过读取设备树来解决这个问题,但还有其他方法,例如您可以手动阅读正在运行的 SoC 的程序员手册。

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

© www.soinside.com 2019 - 2024. All rights reserved.