之前key用的触发方式是单边触发,但是后来发现可以用判断电平的方式使用双边触发,在设置双边触发过程中
writel ( 0x00000004,0x20150408 )本来是很简单的一句话,但是在启动过程中加载gpio.ko的时候,系统卡死了,没有任何错误log
这个就让我懵逼了,之前改0x201f0408 为0x80的时候完全正常,为什么改这个gpio1_2就不行。
更邪门的是同样的驱动在系统启动完毕之后用insmod手动加载,一切正常,log如下
/usr # rmmod gpio_hyc.ko
GPIO driver exit
/usr # insmod gpio_hyc.ko
input: key_hyc as /devices/virtual/input/input1
GPIO_hyc driver init+2
/usr # himm 0x20150408
*** Board tools : ver0.0.1_20121120 ***
[debug]: {source/utils/cmdshell.c:166}cmdstr:himm
====dump memory 0X20150408====
0x20150408: 0x00000004
NewValue:就是在启动过程中加载不正常,这个问题值得研究。
而且如果在启动脚本里手动修改寄存器值
himm 0x200f0108 0x00000000
himm 0x20150400 0x00000000
himm 0x20150404 0x00000000
himm 0x20150408 0x00000004
insmod extdrv/gpio_hyc.ko
然后在加载ko又正常了,而且修改gpio1_3,1_4都是正常的,海思文档没有解释为什么1_2就这么特殊。