裸機(jī)程序如下:
上圖中只揭示了運(yùn)用層的讀寫函數(shù)怎么調(diào)用到adapter->algrithem->masterxfer()方法,以及為什么運(yùn)用層的read調(diào)用的是核心層的i2cdev_read()。那么,問題來了,我怎么知道這個(gè)mpu6050對應(yīng)的是哪個(gè)adpter,在我的工程代碼中定義的i2c_deriver對象注冊前根本沒指明他的adapter? 還有,代碼中的哪個(gè)client,看樣子是從PRobe函數(shù)的參數(shù)中傳進(jìn)來的,是怎么闖進(jìn)來的?我注冊i2c_driver之前可沒有指定他哦,怎么確保這個(gè)client是正確的client呢?
答:這是一個(gè)復(fù)雜的過程,見思維導(dǎo)圖: 《i2c從設(shè)備mpu6050是怎么注冊進(jìn)內(nèi)核的》實(shí)驗(yàn)源碼: https://git.coding.net/xxgui1992/linuxDriver-I2c.git
新聞熱點(diǎn)
疑難解答
圖片精選