Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 如何在设备驱动程序编程中添加用户空间标头?_C_Linux Kernel_Linux Device Driver_Embedded Linux_Kernel Module - Fatal编程技术网

C 如何在设备驱动程序编程中添加用户空间标头?

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

我试图通过一个可移植内核模块执行一些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 <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混乱。这是否回答了你的问题?