設(shè)備和CPU連接方式
成都網(wǎng)站建設(shè)、成都網(wǎng)站制作的開發(fā),更需要了解用戶,從用戶角度來建設(shè)網(wǎng)站,獲得較好的用戶體驗(yàn)。成都創(chuàng)新互聯(lián)公司多年互聯(lián)網(wǎng)經(jīng)驗(yàn),見的多,溝通容易、能幫助客戶提出的運(yùn)營建議。作為成都一家網(wǎng)絡(luò)公司,打造的就是網(wǎng)站建設(shè)產(chǎn)品直銷的概念。選擇成都創(chuàng)新互聯(lián)公司,不只是建站,我們把建站作為產(chǎn)品,不斷的更新、完善,讓每位來訪用戶感受到浩方產(chǎn)品的價(jià)值服務(wù)。
1)gpio連接設(shè)備 (LED按鍵)
2)ram-like 會使用到數(shù)據(jù)線,地址線,控制線
nand DDRAM DM9000
3)協(xié)議類型接口
i2c spi usb uart
按照總線設(shè)備來完成AT24C02的驅(qū)動程序
1,總線i2c總線也是設(shè)備 該設(shè)備也應(yīng)該實(shí)現(xiàn)驅(qū)動程序 ,該驅(qū)動程序完成的功能就是按照 i2c協(xié)議的要求收發(fā)數(shù)據(jù)i2c_transfer(...)??
i2c驅(qū)動怎么寫的也就是怎么實(shí)現(xiàn)的?。┱业絠2c控制器的驅(qū)動程序
make menuconfig 路徑是driver/i2c/busses/ 變量:CONFIG XX XXXX 在Makefile中找變量在找.o然后對應(yīng)他的.c文件 通過程序可看出i2c控制器(總線)是通過platform虛擬總線寫的, 在找下自己寫的i2c設(shè)備驅(qū)動的調(diào)用會用到它么?如i2c_transfer中怎么用msg的
在函數(shù)中只有return=adap->algo->master_xfer(adap,msgs,num) 能發(fā)現(xiàn)它是s3c24xx_i2c_algorithm中的成員.masrter_xfer = s324xx_i2c_xfer,又因i2c->adap.algo = &s3c24xx_i2c_algorithm,可以懷疑以前我們找出來的是正確的,其中一個(gè)方法可以改改我們找到那個(gè).c文件中的該函數(shù)中加點(diǎn)打印信息即可驗(yàn)證他是否我們的猜想一致。這樣找到了CPU中i2c控制器的驅(qū)動程序:i2c_s3c2410.c
2.設(shè)備
在2.6.35內(nèi)核中實(shí)例化i2c的設(shè)備有4種方式 i2c_new_device???
設(shè)備怎么添加進(jìn)去的?
i2cclient怎么來的?
首先定義了下上次我們說的數(shù)組之后注冊了下i2c_register_board_info內(nèi)核怎么自動給我們添加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
哪塊會調(diào)用2c_scan_static_board_info i2x_register_adapter調(diào)用它了,這個(gè)函數(shù)是實(shí)例化,哪里會使用它?i2c_add_numbered_adapter
內(nèi)核中實(shí)現(xiàn)i2c控制器驅(qū)動,想內(nèi)核中注冊了ada_
內(nèi)核中注冊adapter時(shí),同時(shí)完成掃描靜態(tài)鏈表,看是否有設(shè)備掛在該adapter(i2c控制器)上,如果存在的話,會根據(jù)該設(shè)備的信息(“at24c02”,0x50)來完成i2c_client的實(shí)例化并注冊,
3.設(shè)備驅(qū)動(略)
如果我們自己寫怎么寫這個(gè)控制器??1)看CPU的芯片手冊的i2c的章節(jié) 怎么操作I2CCON,I2CDAT,I2CDS寄存器