打印
[嵌入式linux]

mod_timer的定时器调用spi函数崩溃,为啥?

[复制链接]
4398|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lanmanck|  楼主 | 2010-9-3 16:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
正在写一个触摸屏驱动,该芯片通过spi与cpu相连。
按下触摸屏时产生gpio中断,我在该gpio中断里面先禁止本中断,然后调用mod_timer()启动10ms的定时查询,通过spi读取坐标值。参考的是ADS7846,但是崩溃了。
spi读写是通过spi_sync()函数,这个是死等操作,估计是定时器软件中断中也是死等操作,这样就原子操作出错,所以崩溃。
我现在改成spi_async(),进入几次定时器函数后也崩溃了,发现死在spi驱动里面,为啥?

相关帖子

沙发
sinanjj| | 2010-9-3 18:11 | 只看该作者
我记得有记录说过死等操作有点什么问题....

具体的你查一下 ....讲block操作的.



这种编程最好不要用延时.......状态机, 事件触发...

使用特权

评论回复
板凳
lanmanck|  楼主 | 2010-9-3 21:35 | 只看该作者
搞定了,用schedule_delay那种调用方式。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:跟阿里云拼了: http://www.qcloud.com/redirect.php?redirect=1001&cps_key=361a94179534e81fbc22912619cc97ef

153

主题

397

帖子

3

粉丝