前段时间,看了看iic总线,故弄了一个at24c02的驱动,在网上下了一个。
看了看,很符合我的裸机程序改造驱动的思路!haha
故把它优化了一下,往系统里。移植了!
随手就加了一个自旋锁,来保护下读写!
spin_lock_irq();
...........................................
结果,程序达不到目的!
具体原因是收不到应答信号!(最后弄明白,具体原因是:中断被屏蔽,at24c02发回的应答信号,但没有产生中断!)
怎么办?
问题先放放!
今天在看书时,无意中想到了spin_lock_irq()是等于spin_lock()+local_irq_disable()
后者是会屏蔽系统中所有中断的!!!!
想到了这,所有问题迎刃而解!
改成了spin_lock()! ok 读写成功!