昨天刚从这问题中出来,我决定把这图书馆移植到我的董事会。我意识到我需要改变一些东西,所以我编译了这个库,在一个小程序上调用它,看看会发生什么。第一个问题是:
// 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的,在我的板上系统的结构是不一样的。因此,我想知道是否有人能告诉我,我可以在哪里找到这个文件,或者它看起来如何,这样我就可以自己找到它,以便继续这项工作。
谢谢。
发布于 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上。
https://stackoverflow.com/questions/46053044
复制相似问题