海思3518ev200-根文件系统下写寄存器控制led亮灭

在根文件系统下通过写寄存器方式控制开发板上的LED灯亮灭。
LCD灯旁边写有IO口,为IO7_3。也就是gpio7_3。

查看寄存器手册:Hi3518EV20X/Hi3516CV200经济型HD IP Camera Soc用户指南.pdf。

在手册内搜索“外围设备”。
在这里插入图片描述
在外围设备的目录,找到GPIO,里面有GPIO的详细描述。往下看看如何写GPIO的寄存器。
在这里插入图片描述
手册里已经告诉了开发者写寄存器的步骤:
在这里插入图片描述
1.设置gpio复用
搜索“管脚复用控制寄存器”。查看他的基地址和偏移地址
在这里插入图片描述
在这里插入图片描述
基地址0x200F0000+偏移地址0x0EC=实际地址0x200F00EC 。

根据上文,在开发板Linux输入命令。让IO7_3管脚复用为GPIO输入输出功能,而不是PWM。

himm 0x200F00EC 0x01

可以看到开发板上的LCD灯灭
现在IO7_3就被设置成为GPIO功能。

2.设置GPIO是用于输入还是输出
继续从外围设备的GPIO章往下看,可以看到
在这里插入图片描述
方向控制寄存器,基地址0x201B0000+偏移地址0x400=实际地址0x201B0400。
可以看到配置1为输出。
在这里插入图片描述
设置gpio7_3为输出

himm 0x201B0400 0x8

3.设置GPIO口的值
往下看,通过控制GPIO数据寄存器,搜索GPIO_DATA
在这里插入图片描述
基地址0x201B0000+偏移地址0x3FC=实际地址0x201B03FC 。

如果要gpio7_3点亮,那么需要控制寄存器第4位,也就是0b11110111。
开发板Linux输入命令,点亮gpio7_3

himm 0x201B03FC 0xf7

熄灭gpio7_3

himm 0x201B03FC 0xff

完成。

查看寄存器的值,看看是否被写入,
himd.l命令可以用于读取寄存器

/mnt # himd.l  0x201B03FC 0x1
*** Board tools : ver0.0.1_20121120 *** 
[debug]: {source/utils/cmdshell.c:166}cmdstr:himd.l
====dump memory 0x201B03FC====
0000:  000000f7 000000ff 00000000 00000000
[END]
已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 游动-白 设计师:白松林 返回首页