2016-07-25 5 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に設定されています。 バイナリはrootとして実行されます。

何か問題がありますか、特別なカーネル機能を有効にする必要がありますか?あなたの助けのために thx

答えて

0

binファイルを除いて、sysfsエントリは通常mmap可能ではありません。 read()またはwrite()にする必要があります。

関連する問題