我有一个Raspberry Pi,要访问GPIO引脚或硬件外设(例如I2C,SPI),您需要运行以root用户身份访问它们的程序。或者您可以将运行该程序的用户添加到该外围设备的组中(例如,用于I2C的i2c组)。
我的问题:在现实世界中(例如,运行嵌入式Linux的某些机器),标准做法是简单地将用户添加到程序所需的每个外围设备的每个用户组中吗?有没有更好的方法呢?
我的第二个问题:例如,当您使用C直接访问硬件寄存器而不是通过/ sys时,这是如何工作的。我能想到这样做的唯一方法是一直以root身份运行,这根本不是一个好主意,或者编写一个处理访问寄存器的内核模块,而用户空间程序则与该模块通信(这似乎都是如果有更多“推荐”的方式,就像很多工作一样)。程序如何正常访问嵌入式Linux设置上的硬件寄存器?
答案 0 :(得分:2)
答案 1 :(得分:0)
Raspberry Pi的Raspbian / Debian版本提供了库,用于访问GPIO。查看The MagPi的后期问题,了解Python和其他语言中的大量示例。还有the example projects here。