我正在开发一些用户空间验证工具。其中我需要验证i2c频率。
在我的DT文件中,我设置了clock-frequency = <400000>;,并从用户空间的/proc/device-tree/i2c@XXXXX/clock-frequency读回了它。但是我得到了一些垃圾数据。
输出:
root@mymachine:~# od -bc /proc/device-tree/i2c\@XXXXXX/clock-frequency
0000000 000 006 032 200
\0 006 032 200
0000004它是压缩格式的吗?如果是,我如何解压它?
file命令的输出:
root@nvidia:/proc/device-tree# file i2c\@7000*/clock-frequency
i2c@7000XXXX/clock-frequency: TTComp archive data
i2c@7000XXXX/clock-frequency: raw G3 data, byte-padded
i2c@7000XXXX/clock-frequency: TTComp archive data
i2c@7000XXXX/clock-frequency: raw G3 data, byte-padded
i2c@7000XXXX/clock-frequency: TTComp archive data
i2c@7000XXXX/clock-frequency: TTComp archive data发布于 2015-03-18 05:18:20
它不是压缩的,它只是一个原始的二进制无符号32位整型存储大端。您拥有的四个字节以八进制显示:0、6、32、200,以十进制表示的是0、6、26和128,32位整数是6*65536 + 26*256 + 128 = 400000。
有很多方法可以解压它;在我的RPi 2上,有很多方法可以解压,它目前的i2c频率是100000:
>>> import struct; struct.unpack(">I", open('/proc/device-tree/soc/i2c@7e205000/clock-frequency').read())
(100000,)https://stackoverflow.com/questions/26966912
复制相似问题