首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >哪里可以找到设备树?

哪里可以找到设备树?
EN

Stack Overflow用户
提问于 2017-09-05 10:44:21
回答 1查看 1.9K关注 0票数 0

昨天刚从问题中出来,我决定把图书馆移植到我的董事会。我意识到我需要改变一些东西,所以我编译了这个库,在一个小程序上调用它,看看会发生什么。第一个问题是:

代码语言:javascript
复制
    // 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;
    }

这个库是针对Rpi的,在我的板上系统的结构是不一样的。因此,我想知道是否有人能告诉我,我可以在哪里找到这个文件,或者它看起来如何,这样我就可以自己找到它,以便继续这项工作。

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-08 03:56:17

您不一定想要那个“文件”(或者更准确地说,是/proc节点)。

在其中找到的代码是设置为执行直接内存映射的I/O,使用的似乎是特定于pi的gpio风格的设备驱动程序的/dev/mem类型的版本,用于向用户空间公开硬件特殊功能寄存器。

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

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46053044

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档