On Tue, Jun 14, 2016 at 2:47 PM, Dave Mazzoni <dav...@gmail.com> wrote: > > Thanks for the suggestions. I'm a bit confused though since Mmap returns a > slice of bytes. I print all the bytes as you can see, but only the first > byte at each 32 bit boundary is correct. I don't know casting several of > them together would somehow derive the correct value.
Because Mmap returns a []byte, every access using that []byte will load a single byte. But device memory is often magic. Doing a byte load and doing a word load are two very different things from the device's perspective. So what we're suggesting is that you do something like b := syscall.Mmap(...) w := (*[1024]uint32)(unsafe.Pointer(&b[0])) and then print w[0]. That will access the memory as a 32-bit word, not a byte. Or conversely change your C program to print out one byte at a time and see what you get. 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.