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