I've had the O_SYNC flag : fd = open("/dev/mem", O_RDWR | O_SYNC ),
but nothing change, the io stay at high level like if the io is in
input mode neverthelesss, if I read the direction register is really
in output mode ( PBDDR : 255, PEDDR : 255, PCDDR : 255, PDDDR : 255).
--- In "Matt Godbolt" <> wrote:
>
>
> > This is my test program :
> >
> > int main(int argc, char ** argv)
> > {
> > volatile unsigned int * PBDR, *PBDDR, *PEDDR, *PEDR,
> > *PFDDR,*PFDR,*PCDDR,*PCDR;
> >
> > unsigned char * start;
> >
> > int fd = open("/dev/mem", O_RDWR);
> > start = mmap(0, getpagesize(), PROT_READ|PROT_WRITE,
> > MAP_SHARED, fd,0x80840000);
>
> Part of your issue might be that you're opening /dev/mem without the
> O_SYNC flag. This means the kernel is at liberty to give you a
> pointer to cached memory, which might (at a push!) cause the kind of
> issues you're experiencing. Worth giving it a go with O_RDWR|O_STAT
> anyway!
>
Yahoo! Groups Links
<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/ts-7000/
<*> Your email settings:
Individual Email | Traditional
<*> To change settings online go to:
http://groups.yahoo.com/group/ts-7000/join
(Yahoo! ID required)
<*> To change settings via email:
<*> To unsubscribe from this group, send an email to:
<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
|