当前位置: 代码迷 >> 驱动开发 >> 串口驱动的有关问题(iso7816)
  详细解决方案

串口驱动的有关问题(iso7816)

热度:109   发布时间:2016-04-28 11:00:32.0
串口驱动的问题(iso7816)
最近我在做9260的iso7816驱动,方便起见,我在atmel_serial.c基础上修改。现在发现驱动发送没有问题,但是接收read时,总是无法读到数据。驱动层中发现硬件上数据是接收到了的,atmel_rx_from_dma服务中dma缓冲区中的数据是对的。tty_insert_flip_string返回也是正确的,也就是说数据已经被发送给了tty_core层。

有谁遇到过这个问题吗?请高手指点下。3x
 

------解决方案--------------------
对于serial有个resources资源,看它的中断号设置好了没?
------解决方案--------------------
由于你觉得串口驱动表现是对的,试着去排除你应用程序的一些低级错误,比如,设备名是否对了,openfile确保成功,read函数参数设置对等。

还有,为了验证你的程序写的是否正确,可以在PC上调试你的程序(目标是寻找一个底层没有问题的平台来验证你开发的应用程序),看看你的串口程序表现如何。
如果PC上是好的,那么就可以对比一下在PC上正确的read过程是什么样的,对应的串口驱动模块和TTY-IO在read过程中是如何被调用的。




------解决方案--------------------
你就更改了下面的部分么?不太懂具体模式的意义,不过你自己可以考虑一下你修改的东西有多少side effects。
C/C++ code
/* Get current mode register */printk("set_iso7816.\n");    mode = ATMEL_US_USMODE_ISO7816_T0 |  ATMEL_US_USCLKS_MCK |  ATMEL_US_CLKO |//ATMEL_US_NBSTOP_2 |ATMEL_US_FILTER |ATMEL_US_INACK |  ATMEL_US_DSNACK;
  相关解决方案