C 如何在设备驱动程序编程中添加用户空间标头?
我试图通过一个可移植内核模块执行一些GPIO操作。为此,我尝试使用open()和write()系统调用访问文件“/sys/class/led/led1/brightness”,因此我包含了以下头文件C 如何在设备驱动程序编程中添加用户空间标头?,c,linux-kernel,linux-device-driver,embedded-linux,kernel-module,C,Linux Kernel,Linux Device Driver,Embedded Linux,Kernel Module,我试图通过一个可移植内核模块执行一些GPIO操作。为此,我尝试使用open()和write()系统调用访问文件“/sys/class/led/led1/brightness”,因此我包含了以下头文件 #include <sys/stat.h> #include <sys/types.h> #include <fcntl.h> #include <unistd.h> #include <errno.h> #include <stdi
#include <sys/stat.h>
#include <sys/types.h>
#include <fcntl.h>
#include <unistd.h>
#include <errno.h>
#include <stdio.h>
#include <string.h>
#包括
#包括
#包括
#包括
#包括
#包括
#包括
但是在交叉编译项目时,我得到了以下警告和错误
guru@guru-G40-80:~/OFC/lnx/projects/V4/source_codes/git/Device-Driver/char_dev_gsm$ make
pwd : /home/guru/OFC/lnx/projects/V4/source_codes/git/Device-Driver/char_dev_gsm
make -C /home/guru/OFC/lnx/projects/V4/source_codes/git/linux-at91/ M=/home/guru/OFC/lnx/projects/V4/source_codes/git/Device-Driver/char_dev_gsm modules
make[1]: Entering directory '/home/guru/OFC/lnx/projects/V4/source_codes/git/linux-at91'
WARNING: Symbol version dump ./Module.symvers
is missing; modules will have no dependencies and modversions.
pwd : /home/guru/OFC/lnx/projects/V4/source_codes/git/Device-Driver/char_dev_gsm
CC [M] /home/guru/OFC/lnx/projects/V4/source_codes/git/Device-Driver/char_dev_gsm/src/pwr_hndl/pwr_hndl.o
/home/guru/OFC/lnx/projects/V4/source_codes/git/Device-Driver/char_dev_gsm/src/pwr_hndl/pwr_hndl.c:5:10: fatal error: sys/stat.h: No such file or directory
#include <sys/stat.h>
^~~~~~~~~~~~
compilation terminated.
guru@guru-G40-80:~/OFC/lnx/projects/V4/source\u code/git/Device Driver/char\u dev\u gsm$make
pwd:/home/guru/OFC/lnx/projects/V4/source\u code/git/Device Driver/char\u dev\u gsm
make-C/home/guru/OFC/lnx/projects/V4/source\u code/git/linux-at91/M=/home/guru/OFC/lnx/projects/V4/source\u code/git/Device Driver/char dev\u gsm模块
make[1]:输入目录“/home/guru/OFC/lnx/projects/V4/source\u codes/git/linux-at91”
警告:符号版本转储。/Module.symvers
他失踪了;模块将没有依赖项和modversions。
pwd:/home/guru/OFC/lnx/projects/V4/source\u code/git/Device Driver/char\u dev\u gsm
CC[M]/home/guru/OFC/lnx/projects/V4/source\u code/git/Device Driver/char\u dev\u gsm/src/pwr\u hndl/pwr\u hndl.o
/home/guru/OFC/lnx/projects/V4/source\u codes/git/Device Driver/char\u dev\u gsm/src/pwr\u hndl/pwr\u hndl.c:5:10:致命错误:sys/stat.h:没有这样的文件或目录
#包括
^~~~~~~~~~~~
编译终止。
以下是git hub的链接:
你能帮我一下吗?对不起,你做错了-不要试图从内核访问GPIO用户空间界面。相反,使用内核内的GPIO接口
更多信息请点击此处:你必须弄清楚自己在做什么。如果它是用户空间应用程序,那么为什么需要内核像这样参与编译呢?否则,为什么要尝试使用用户空间头和ABI从内核处理它?内核有自己的用于GPIO和/或LED设备的内部API。现在我在你的问题中看到XY混乱。这是否回答了你的问题?