2016-07-25 24 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()他們。

相關問題