2016-07-25 73 views
0

我正在尝试为gpio值创建内存映射。 gpio引脚是映射到/ sys/class/gpio/gpio45/value的内存。mmap/sys/class/gpio/gpioX/value - > ENODEV

int fd = open(file.c_str(), O_RDWR); 

    if(fd == -1){ 
     return false; 
    } 

    struct stat fileStat; 
    int statRes = fstat(fd, &fileStat); 
    if(statRes == -1){ 
     close(fd); 
     return false; 
    } 

    errno = 0; 
    char* res = (char*)mmap(NULL, static_cast<size_t>(fileStat.st_size), PROT_READ | PROT_WRITE,   MAP_SHARED, fd, 0); 

errno设置为19 - > ENODEV。 二进制作为根运行。

有什么问题吗?还是必须启用特殊的内核功能? thx为您提供帮助。

回答

0

除bin文件外,sysfs条目通常不是mmap。你必须read()write()他们。

相关问题