Tom Kuiper wrote:
It appears that there is something I don't understand about memory mapped IO.

I'm trying to write directly to a firmware register. I have tried in Python in binary mode with various options regarding buffering. I have also tried the command line 'echo 1 > register'. Whatever I try, the length of the register 'file' changes from 4 to 0.

In python, you'll want to use the 'binascii' module functions 'b2a_hex' and 'a2b_hex' (or the colorfully aliased equivalents, 'hexlify' and 'unhexlify', respectively) to encode the data before writing it to the firmware register.

ex:

>>> unhexlify('04') # data going into the file
'\x04'
>>> hexlify('\x04') # data coming out of the file
'04'

Obviously this is using hexadecimal representation. There are probably ways to handle plain integers, but I didn't stumble upon it when I was writing my control code.

Reply via email to