#include #include #include #include #include #include #define MMAP_BASE (0x30860000) #define MMAP_RANGE (0x100) int main(int argc, char *argv[]) { void *iomap_ptr; volatile unsigned int *ptr; unsigned int addr, data; int fd, i; if (!strcmp(argv[1], "-h")) { printf("usage:\n"); printf(" %s r addr addr ...\n", argv[0]); printf(" %s w addr data addr data ...\n", argv[0]); printf(" addr is offset from 0x%x\n", MMAP_BASE); return 1; } fd = open("/dev/mem", O_RDWR | O_SYNC); iomap_ptr = mmap(0, MMAP_RANGE, PROT_READ | PROT_WRITE, MAP_SHARED, fd, MMAP_BASE); ptr = (volatile unsigned int *)iomap_ptr; if (argv[1][0] == 'r') { printf("read register:\n"); for (i=2; i