設備和CPU連接方式
1)gpio連接設備 (LED按鍵)
2)ram-like 會使用到數據線,地址線,控制線
nand DDRAM DM9000
3)協議類型接口
i2c spi usb uart
按照總線設備來完成AT24C02的驅動程序
1,總線i2c 總線也是設備 該設備也應該實現驅動程序 ,該驅動程序完成的功能就是按照 i2c協議的要求收發數據i2c_transfer(...)??
i2c驅動怎么寫的也就是怎么實現的?。┱业?/span>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寄存器
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。