-
sunxi_reg使用说明
sunxi_reg是目前A1x平台通过shell读写寄存器的模块. sunxi_dump_reg功能和它类似.
sunxi_reg代码位于: \linux-3.0\drivers\misc\sunxi-reg.c.
当驱动加载后,在/sys/class/misc/sunxi-reg/rw/目录下会出现三个节点:
Address为查看访问的起始地址,写入访问的目的地址。
其值的修改方法(address的输入值是16进制数):
echo f1c20800 > address
查看方法
cat address
Size为查看value是一次输出寄存器的BYTE数,默认为1值的修改方法和address相似
区别在于size输入值是10进制数,(size的值上限是512)
对value进行读操作,就是在屏幕上打印地址从address开始,共size个BYTE的寄存器的值,对其进行写操作就是,地址从address开始,共size个BYTE的寄存器的值进行改写
注意:当size >1时,命令行输入需要用空格将每个寄存器的值隔开,如当address=f1c20800时,size=3 echo ffff1111 ffff0000 ffff2222 > value
假如f1c20800 f1c20801 f1c20802都是可写的,则操作完成后
0xf1c20800 : ffff1111
0xf1c20801 : ffff0000
0xf1c20802: ffff2222
批量修改的数据可以用命令行(echo xxx > value )或者是cat一个文件重定向的形式输入给文件节点(cat xx.txt > value ),命令行输入的话只能用空格将每个数据隔开(shell就是这样认的,驱动无法做什么),用文本cat导入的话所有连着的0-9,a-f(A-F)都被认为是数字,其他的任意符号都会被认为是分隔符。
每次修改的寄存器的个数必须和size中的值一样,否则返回错误
即文本导入时,文本的书写方式可以是:
1234ffff
1235ffff
1235ffff
也可以是
1234ffff 1235ffff 1235ffff
也可以是1234ffff,1235ffff,1235ffff(这里的“,”可以是键盘上任意符号)
假如在地址输入不符合要求的值(地址要求在0xf0000000到0xffffffff之间),会有错误提示,address中的值不符合要求,cat value时也会报错。