i2c驱动(二)core分析-创新互联
设备和CPU连接方式
创新互联公司10多年企业网站制作服务;为您提供网站建设,网站制作,网页设计及高端网站定制服务,企业网站制作及推广,对发电机维修等多个方面拥有多年的营销推广经验的网站建设公司。1)gpio连接设备 (LED按键)
2)ram-like 会使用到数据线,地址线,控制线
nand DDRAM DM9000
3)协议类型接口
i2c spi usb uart
按照总线设备来完成AT24C02的驱动程序
1,总线i2c 总线也是设备 该设备也应该实现驱动程序 ,该驱动程序完成的功能就是按照 i2c协议的要求收发数据i2c_transfer(...)??
i2c驱动怎么写的也就是怎么实现的啊)找到i2c控制器的驱动程序
make menuconfig 路径是driver/i2c/busses/ 变量:CONFIG XX XXXX 在Makefile中找变量在找.o然后对应他的.c文件 通过程序可看出i2c控制器(总线)是通过platform虚拟总线写的, 在找下自己写的i2c设备驱动的调用会用到它么?如i2c_transfer中怎么用msg的
在函数中只有return=adap->algo->master_xfer(adap,msgs,num) 能发现它是s3c24xx_i2c_algorithm中的成员 .masrter_xfer = s324xx_i2c_xfer, 又因i2c->adap.algo = &s3c24xx_i2c_algorithm,可以怀疑以前我们找出来的是正确的,其中一个方法可以改改我们找到那个.c文件中的该函数中加点打印信息即可验证他是否我们的猜想一致。这样找到了CPU中i2c控制器的驱动程序:i2c_s3c2410.c
2.设备
在2.6.35内核中实例化i2c的设备有4种方式 i2c_new_device???
设备怎么添加进去的?
i2cclient怎么来的?
首先定义了下上次我们说的数组之后注册了下i2c_register_board_info内核怎么自动给我们添加i2c_client? 在2c_register_board_info中他放在devinfo->bard_info = *info然后
list_add_tail(....&__i2c_board_list); 真正使用这链表的只有i2c_scan_static_board_info(。。)在干嘛呢??list_for_each_entry取出链表中的元素在i2c_new_device
哪块会调用2c_scan_static_board_info i2x_register_adapter调用它了,这个函数是实例化,哪里会使用它?i2c_add_numbered_adapter
内核中实现i2c控制器驱动,想内核中注册了ada_
内核中注册adapter时,同时完成扫描静态链表,看是否有设备挂在该adapter(i2c控制器)上,如果存在的话,会根据该设备的信息(“at24c02”,0x50)来完成i2c_client的实例化并注册,
3.设备驱动(略)
如果我们自己写怎么写这个控制器??1)看CPU的芯片手册的i2c的章节 怎么操作I2CCON,I2CDAT,I2CDS寄存器
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
标题名称:i2c驱动(二)core分析-创新互联
文章源于:http://azwzsj.com/article/dgjhee.html