前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >全志平台通读写寄存器的方法

全志平台通读写寄存器的方法

作者头像
阿志小管家
发布2024-02-02 15:02:25
1090
发布2024-02-02 15:02:25
举报

        全志平台通读写寄存器的方法

echo 寄存器值 > /sys/class/sunxi_dump/dump

cat dump 查看写进去的值

echo 寄存器值 > /sys/class/sunxi_dumo/write

cat write 查看写进去的值

示例:

1.

到全志一号通查阅对应芯片的user_manual,看想查的寄存器的位置是多少

如,将PH8配作spi0的mosi

2.

io口的基地址0x01C2 0800 

PH Configure Register 1的偏移 Offset:0x100

所以这一组是的地址是0x01C2 0900

3.

查到PH8_SELECT Bit 2:0(0到2位):

PH8_SELECT

000: Input

001: Output

010: SPI0_MOSI

011: UART3_RTS

100: Reserved

101: Reserved

110: Reserved

111: IO Disable

所以如果PH8配成spi 的mosi的话,应该是

0x00000022

32位寄存器:

0000 0000 0000 0000 0000 0000 0000 0010

后面3位010则代表是配成SPI0_MOSI

4.

验证:

root@mico:/sys/class/sunxi_dump# echo 0x01C20900 > dump                          root@mico:/sys/class/sunxi_dump# cat dump                                        0x00000022

确认无误

5.

再查spi0对应的寄存器的数值:

R16 spi0 - 0x01C6 8000 --- 0x01C6 8FFF  (size 4K)

root@mico:/sys/class/sunxi_dump# echo 0x01C68000 > dump                          root@mico:/sys/class/sunxi_dump# cat dump                                        0x00090000

即:

0000 0000 0000 1001 0000 0000 0000 0000

读多个寄存器的数据:

root@mico:/sys/class/sunxi_dump# echo 0x01c68000,0x01c68300 > dump               root@mico:/sys/class/sunxi_dump# cat dump                                        0x01c68000: 0x00090000 0x00000083 0x000001c4 0x00000000                          0x01c68010: 0x00000000 0x00000032 0x00400001 0x00000000                          0x01c68020: 0x00000000 0x00001001 0x00000000 0x00000000                          0x01c68030: 0x00000000 0x00000000 0x00000000 0x00000000                          .....                          0x01c682f0: 0x00000000 0x00000000 0x00000000 0x00000000                          0x01c68300: 0x00000000

比如,查offset 0x08

root@mico:/sys/class/sunxi_dump# echo 0x01c68008 > dump                          root@mico:/sys/class/sunxi_dump# cat dump                                        0x000001c4

0x000001c4 = 0000 0000 0000 0000 0000 0001 1100 0100

从右边数第31个bit位是0,0: Idle-0代表idle,可以从用户手册里查到每个寄存器每个数值的含义。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-02-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档