I am trying to access specific memory locations and return the value at that location (read a status register). My code does not return the expected value when executed.
I am running this on a Linux 2.4.9 embedded computer.
My suspision is the data I am passing into the mmap() function is not correct.
This code compiled without errors.
The variable want_value is passed in as the address that I would like to view. The return value should be the data in that location.
Thank you for any suggestions.Code:unsigned long memory(unsigned long want_value) { int fd; unsigned long *data, ret; fd = open("/dev/mem", O_RDWR | O_SYNC); //file descriptor data = mmap(((unsigned long *)want_value), 4, PROT_READ, MAP_SHARED, fd, 0); // returns actual memory address ret = *((unsigned long *)(data)); munmap (((unsigned long *)want_value), 4); close(fd); return ret; }
Matt



LinkBack URL
About LinkBacks


