溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

i2c驅動(二) core分析

發布時間:2020-05-28 13:21:41 來源:網絡 閱讀:532 作者:毛散人 欄目:編程語言

設備和CPU連接方式

 1gpio連接設備 (LED按鍵)

 2ram-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_xferadap,msgs,num)  能發現它是s3c24xx_i2c_algorithm中的成員 .masrter_xfer = s324xx_i2c_xfer, 又因i2c->adap.algo = &s3c24xx_i2c_algorithm,可以懷疑以前我們找出來的是正確的,其中一個方法可以改改我們找到那個.c文件中的該函數中加點打印信息即可驗證他是否我們的猜想一致。這樣找到了CPUi2c控制器的驅動程序: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時,同時完成掃描靜態鏈表,看是否有設備掛在該adapteri2c控制器)上,如果存在的話,會根據該設備的信息(“at24c02”,0x50)來完成i2c_client的實例化并注冊,

   3.設備驅動(略)

    

 

如果我們自己寫怎么寫這個控制器??1)看CPU的芯片手冊的i2c的章節  怎么操作I2CCON,I2CDAT,I2CDS寄存器


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女