On Tue, Jun 14, 2016 at 12:17 PM, Dave Mazzoni <dav...@gmail.com> wrote: > Hello all - I've been having a hard time getting syscall.Mmap to produce the > "right" values. I'm using 1.6.2 and cross-compiling for the ARM/Linux. I'm > trying to read from Arm memory at its device address 0x43c00000. > > Here's the scenario: I 'poke' values into memory using the C based arm/linux > 'poke' command: > /var/ftp# poke 0x43c00000 0x03020100 > /var/ftp# poke 0x43c00004 0x07060504 > /var/ftp# poke 0x43c00008 0x0b0a0908 > /var/ftp# poke 0x43c0000c 0x0f0e0d0c > > If I then 'read' from these memory locations with the C based peek command I > get this (as expected): > /var/ftp# peek 0x43c00000 > 0x03020100 > /var/ftp# peek 0x43c00004 > 0x07060504 > /var/ftp# peek 0x43c00008 > 0x0b0a0908 > /var/ftp# peek 0x43c0000c > 0x0f0e0d0c > > However, if I use a go based version to read this range, something is wrong > (peek_orig.go, attached), results in: > /var/ftp# ./peekgo 0x43c00000 > mem[0]:0x00 mem[1]:0x01 mem[2]:0x02 mem[3]:0x00 mem[4]:0x04 > mem[5]:0x00 mem[6]:0x00 mem[7]:0x00 > mem[8]:0x08 mem[9]:0x00 mem[10]:0x00 mem[11]:0x00 mem[12]:0x0c > mem[13]:0x00 mem[14]:0x00 mem[15]:0x00 > mem[16]:0x00 mem[17]:0x00 mem[18]:0x00 mem[19]:0x00 mem[20]:0x00 > mem[21]:0x00 mem[22]:0x00 mem[23]:0x00 > mem[24]:0x00 mem[25]:0x00 mem[26]:0x00 mem[27]:0x00 mem[28]:0x00 > mem[29]:0x00 mem[30]:0x00 mem[31]:0x00 > > I'll also attach the equivalent C based version of peek (peek.c). > > I believe everything in the go version should work based on godoc -src > syscall Mmap, which shows the actual call to the linux mmap function. The go > version returns a []byte, but they're not the correct values. > > Any help/suggestions would be very welcome!
I don't know the answer. The results you are getting seem partially correct. That suggests that one thing to try is to access the memory as words rather than bytes. Some device memory is sensitive to the size of the memory access. Ian -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.