I2C总线驱动程序
i2c_bus_s3c2440_exit(void)
{
}
module_init(i2c_bus_s3c2440_init);
module_exit(i2c_bus_s3c2440_exit);
MODULE_LICENSE("GPL");
==============================================================
解析:
编写"总线(适配器adapter)"驱动
Device Drivers
nfs 30000000 192.168.1.123:/work/nfs_root/uImage_noi2cbus; bootm 30000000
应用程序发送消息出去时,会调用适配器adapter里面的算法函数algo里面的master_xfer函数,先把消息记录下来之后调用start函数,start函数里发送start启动信号并且把设备地址发送出去,然后休眠。发送完之后产生一个中断,在中断函数里面读出状态,如果没有ack的话认为发生错误发出停止信号唤醒应用程序;如果有ack信号而且是最后一个消息,最后一个数据则发出停止信号,否则进入下一个状态读/写,如果是写判断是否是最后一个数据,若还有数据要发送把数据发送出去,若是最后一个数据但是不是最后一个消息的话开始处理下一个消息,发出start信号和设备地址,若是最后一个消息的最后一个数据则发出停止信号;如果是读判断数据是否读完,如果没有读完但是接收到的不是最后一个数据则发送ack信号,若接收到最后一个数据否则无ack,但若数据已经读完则处理下一个消息发送start信号。
I2C总线驱动程序s3c244 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)