Re: mmap /dev/mem in python

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



* Brett Graham <graham@xxxxxxxxxxxxxxxxxxx> [091020 15:06]:
> I'm trying to mmap /dev/mem in python to access various registers on a
> gumstix overo (with an omap 3530 processor). Here is the code I'm
> using (as a minimal example):
> ----------------------------
> import os, mmap
> MAP_MASK = mmap.PAGESIZE - 1
> addr = (see below)
> 
> f = os.open("/dev/mem", os.O_RDWR | os.O_SYNC)
> m = mmap.mmap(f, mmap.PAGESIZE, mmap.MAP_SHARED, mmap.PROT_WRITE |
> mmap.PROT_READ, offset=addr & ~MAP_MASK)
> m.seek(addr & MAP_MASK)
> c = m.read_byte()
> print c
> m.close()
> os.close(f)
> ----------------------------
> 
> If I use: addr = 0x48002178 everything works swimmingly. However, if I
> use: addr = 0x48088024 (or all the addresses I've tried > 0x48044000)
> I get the following error
> 
> Unhandled fault: external abort on non-linefetch (0x1018) at 0x40020024
> Bus error
> 
> and python crashes. I'm basing the mmap flags and options off of
> devmem2.c. If I remove the O_SYNC flag from the os.open command, I can
> read and write to registers fine, but randomly I will get the
> Unhandled fault error and things will not work correctly.
> 
> Am I using the right command to write to the omap registers? should I
> be using the O_SYNC flag? Any ideas where these errors are coming
> from?

Sounds like you need to enable ick and fck for the device you're trying
to read.

Tony
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux