Check out the man page for mmap on a "full" linux system or on the web.
mmap can only be used to map to a page boundary. You then add suitable
offsets, depending on usage, to this mmap'ed base pointer.
check out the ts7200io.c file in my adio program at
http://www.comp.leeds.ac.uk/jj/linux/adio.tgz
This app note describes how this sort of stuff is done...
http://www.simtec.co.uk/appnotes/AN0014/
Jim
----------------------------------------------------------------------------
HomePage: http://www.comp.leeds.ac.uk/jj
TS7200 Page: http://www.comp.leeds.ac.uk/jj/linux/arm-sbc.html
On Fri, 6 Feb 2009, sean machin wrote:
> Hi All,
>
> I'm writing a driver which needs to interface to the digital I/O ports
> on my TS-7260. The particular physical addresses
> I need access to are 0x80840014 for a data direction register and
> 0x80840004 for the data register.
>
> It looks like my call to mmap the address 0x80840014 is failing with
> errno 22 (invalid argument). Anyone on the
> list got an idea why the call is failing? Thanks.
>
> --------------------------------------------------------------------------------------------------------------
> uint8_t* ddr_reg = mmap(0, getpagesize(), PROT_READ|PROT_WRITE,
> MAP_SHARED, fd, 0x80840014);
> if (ddr_reg == MAP_FAILED) {
> syslog(LOG_ERR, "mmap failed with errno %d", errno);
> }
>
>
------------------------------------
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/
|