#include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <sys/mman.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> int main(int argc, void** argv) { void* base; int fd, reg; fd = open("/dev/mem", O_RDWR | O_SYNC); if (fd < 0) { printf("ERR: device open failed. "); return -1; } base = mmap(NULL, 0x1000, PROT_READ, MAP_SHARED, fd, 0x20E0000); if (base == 0) { printf("ERR: mmap failed. "); close(fd); return -1; } if (argc > 1) { reg = strtol(argv[1], NULL, 16); printf(">>> %08X is %08X ", 0x20E0000 + reg, *((unsigned int*)(base + reg))); } munmap(base, 0x1000); close(fd); return 0; }