虽然我问过相关的问题,不过遇到瓶颈只好再问详细点
我写了一个module想用rpi的gpio控制一个含3个LED的小电路
/dev 下也有LED_0 LED_1 LED_2
我希望一般user可以写入这三个file(用0或1)去控制LED的开关
程式码如下:
https://gist.github.com/gnitnaw/b116f358fa688897fe00
之前不管是用一般user还是root都不能改变/dev/LED_(0,1,2)
改掉一些bug以后,用root可以control了,一般user还是不行
(写到现在还没开始ioctl...唉...我的学习速度真慢)
之后可能在kernel学习过程中会有更多问题要上来请教,希望不会违反板规
然后我也会回馈自己所学(拙作请勿见怪)。
我写了个小程式尝试去write /dev/LDE_0 :
int main(void)
{
char path[PATH_SIZE], buf[BUF_SIZE];
int i = 0, fd = 0;
snprintf(path, sizeof(path), "/dev/LED_0");
fd = open(path, O_WRONLY);
if (fd < 0) {
perror("Error opening GPIO pin");
exit(EXIT_FAILURE);
}
printf("Set GPIO pins to output, logic level :\n");
strncpy(buf, "1", 1);
buf[1] = '\0';
if (write(fd, buf, sizeof(buf)) < 0) {
perror("write, set pin output");
exit(EXIT_FAILURE);
}
return EXIT_SUCCESS;
}