mmap-issue
Manuel Stühn
freebsdnewbie at freenet.de
Fri Jan 16 17:12:36 UTC 2015
Hi,
I'm seeing unexpected behavior using mmap( /dev/mem ) on my beaglebone
black. It seems to me, that writing to/reading from this mapped pointer
does not immediatly take effect. The code looks like this:
#define GPIO1 0x4804C000
#define CLR_REG 0x190
#define SET_REG 0x194
#define LED0 21
#define LED1 22
#define LED2 23
#define LED3 24
int fd = open( "/dev/mem", O_RDWR );
int pagesize = getpagesize();
volatile uint32_t* ptr =
mmap( 0, pagesize, PROT_READ | PROT_WRITE, MAP_SHARED, fd, GPIO1_ADDR );
ptr[SET_REG] = LED0 << 1;
I mapped for testing purposes the AM335x-GPIO-registers from /dev/mem.
Writing into these mmap'ed registers for toggling some LEDs does not
immediatly take effect. I have to call it several times to get one
LED-toggle. Is there any data caching I'm missing?
Thanks for hints.
More information about the freebsd-arm
mailing list