how things work by a series of component-connection。
试试mtk自带的函数和linux通用的函数
驱动里mt_eint_unmask(CUST_EINT_FP_NUM); 没有禁用
cat /sys/class/misc/mtgpio/pin | grep -E "PIN:| 65:| 66:| 67:| 68:| 0:| 80:"
开发板关闭mtkloger就不会有大量的内核log
spi返回值不同是因为cs脚没有控制好,短接mimo数据正确,
spi正常,但是生成校准数据很慢,看log是返回 jni A083_Static_Calibrate ret = 11 , 原因: write/ioctl方式写对没有, 或者cs脚没有拉到,或者spi速度太慢
用示波器看cs脚状态,或者mtk平台下cat /sys/class/misc/mtgpio/pin | grep -E "PIN:| 65:| 66:| 67:| 68:| 0:| 80:"
发现用write的方式生成校准数据正常,因为cs脚能正常拉低拉高,但是驱动里ioctl没有实现cs拉低拉高
<4>[ 436.632901]<0>-(0)[0:swapper/0]zsw tooan_eint_func
<4>[ 436.632851]<0>-(0)[0:swapper/0]zsw disable_interrupt
<4>[ 436.632977]<0> (0)[129:tooan_fp]zsw FPS triggered 222222 !!!!!!!
现在发现禁用中断没有起作用,但是驱动里已经执行了,所以猜测可能是驱动里又打开了,或者enable_irq(ex_spidev->irq); 没作用
mt_eint_mask(CUST_EINT_FP_NUM); 关闭中断
mt_eint_unmask(CUST_EINT_FP_NUM); 打开中断
ioctl 收发同时,读图时cs不停的拉低拉高,而且收(read)多于发(write)
<4>[ 787.873631]<0> (0)[2915:com.a083x32]zsw tooan_ioctl cmd=1075866368
<4>[ 787.874331]<0> (0)[2915:com.a083x32]zsw tooan_ioctl cmd=1075866368
<4>[ 787.875026]<0> (0)[2915:com.a083x32]zsw tooan_ioctl cmd=1075866368
<4>[ 787.875718]<0> (0)[2915:com.a083x32]zsw tooan_ioctl cmd=1075866368
<4>[ 787.876410]<0> (0)[2915:com.a083x32]zsw tooan_ioctl cmd=1075866368
<4>[ 787.877103]<0> (0)[2915:com.a083x32]zsw tooan_ioctl cmd=1075866368
<4>[ 787.877796]<0> (0)[2915:com.a083x32]zsw tooan_ioctl cmd=1075866368
<4>[ 787.878485]<0> (0)[2915:com.a083x32]zsw tooan_ioctl cmd=1073834753
<4>[ 787.878896]<0> (0)[2915:com.a083x32]zsw ioctl set_cs_high
<4>[ 787.896265]<0> (0)[2915:com.a083x32]zsw ioctl set_cs_low
<4>[ 787.896292]<0> (0)[2915:com.a083x32]zsw ID_IOCTL_DIS_IRQ num = 9
<4>[ 787.896327]<0> (0)[2915:com.a083x32]zsw tooan_ioctl cmd=1075866368
<4>[ 787.896404]<0> (0)[2915:com.a083x32]zsw tooan_ioctl cmd=1073834753
<4>[ 787.897583]<0> (0)[2915:com.a083x32]zsw ioctl set_cs_high
<4>[ 787.897721]<0> (0)[2915:com.a083x32]zsw tooan_ioctl cmd=-2147390719
<4>[ 787.898122]<0> (0)[2915:com.a083x32]zsw ioctl set_cs_low
<4>[ 787.898144]<0> (0)[2915:com.a083x32]zsw ID_IOCTL_DIS_IRQ num = 9
以前是通过板级文件配置,5.1以后都是通过配dts来控制设备节点。
probe 执行初始化,管脚初始化,
int gpio输入可以高低默认拉高,cs输出,可以高低,默认拉高,读图时拉低cs确定从机
gpio复用为其他特殊协议的io如i2c,spi时是需要配置模式的,mtk是mode_01,最基本的模式是mode_00,
释放资源
互斥锁
结构体调用
操作硬件寄存器
示波器