下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、內(nèi)核版本:linux-3.4.2直奔主題,在Linux下怎樣增加一個I2C設(shè)備呢?假設(shè)手上有一塊從淘寶上買來的開發(fā)板,我要在開發(fā)板的I2C總線上增加一個從設(shè)備(如 at24c08),那么我要怎樣寫這個“I2C設(shè)備驅(qū)動,讓應(yīng)用程序可以訪問at24c08呢? 先來看一個最簡單的i2c設(shè)備驅(qū)動:static struct i2c_board_info at24cxx_info =所支持的i2c設(shè)備的列表I2C_BOARD_INFO(at24c08”, 0 x50),一項(xiàng)代表一個支持的設(shè)備,它的名字叫做at24c08,器件地址是 0 x50);static struct i2c_client *at2
2、4cxx_client;static int at24cxx_dev_init(void)struct i2c_adapter *i2c_adap;分配一個適配器的指針i2c_adap = i2c_get_adapter(0);調(diào)用core層的函數(shù),獲得一個i2c總線。這里我們已經(jīng)知道新增的器件掛接在編號為0的i2c總線上at24cxx_client = i2c_new_device(i2c_adap, &at24cxx_info); / 把 i2c 適配器和新增的I2C器件關(guān)聯(lián)起來,這個用了 i2c總線0,地址是0 x50。這就組成了一個客戶端 at24cxx_client i2c_put_
3、adapter(i2c_adap);return 0;static void at24cxx_dev_exit(void)i2c_unregister_device(at24cxx_client);module_init(at24cxx_dev_init);module_exit(at24cxx_dev_exit);從上面的程序可以看到,寫一個i2c設(shè)備驅(qū)動程序,與寫普通的字符驅(qū)動基本一樣。特別之處是 它調(diào)用了 i2c的core層的函數(shù),以獲得對i2c總線的控制。因?yàn)橛玫氖情_發(fā)板,板上的與soc芯片 (一般來說就是arm的芯片)i2c總線驅(qū)動一般都做好了,直接調(diào)用core層的函數(shù)就可以控制so
4、c 的i2c模塊了。也就是說,寫i2c設(shè)備驅(qū)動不需要關(guān)注arm內(nèi)部的i2c模塊的寄存器,我們需要關(guān) 注的是設(shè)備(at24c08)的寄存器以及它的datasheet對時序的要求。其實(shí),添加i2c設(shè)備的方法很 靈活。根據(jù) Linux 的官方文檔linux-3.4.2Documentationi2cinstantiating-devices,添 加i2c設(shè)備的方法總結(jié)有4種:i2c_register_board_info:根據(jù)總線編號、設(shè)備名字(at24c08)、設(shè)備地址(0 x50)注冊 一個字符驅(qū)動。這種方法最簡單、最粗暴,最貼近平時在開片機(jī)上開發(fā)i2c器件的。i2c_new_device:根據(jù)
5、i2c總線的編號,聲明一個i2c設(shè)備:這種方法就是上面例子用的方法。 這種方法也簡單,但是需要事先知道器件掛接在哪條總線上。對于設(shè)備,還實(shí)現(xiàn)知道了設(shè)備地址0 x50, 總線適配器也支持名字為、at24c08”的設(shè)備i2c_new_probed_device:從用戶空間實(shí)例化一個器件:這個方法相當(dāng)智能快速,如下輸入指令,即可增加一個i2c設(shè)備,同 時增加了對應(yīng)的設(shè)備文件。# echo eeprom 0 x50 /sys/bus/i2c/devices/i2c-3/new_device根據(jù)英文文檔的標(biāo)題,添加i2c設(shè)備有稱之為、i2c設(shè)備的實(shí)例化。從上述可以知道,在實(shí)例化一個i2c設(shè)備之前,除了有對應(yīng)的驅(qū)動支持
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- YY/T 0497-2025一次性使用無菌胰島素注射器
- 醫(yī)療行業(yè)醫(yī)院干部述職報告總結(jié)匯報課件
- 光化還原工藝參數(shù)設(shè)定與控制制度
- 2026年劇本殺運(yùn)營公司行政值班管理制度
- 機(jī)場槍支安全課件
- 2026年遠(yuǎn)程辦公技術(shù)發(fā)展報告
- 2026及未來5年中國電動玩具行業(yè)市場行情監(jiān)測及發(fā)展趨向研判報告
- 2026年及未來5年中國起重船行業(yè)發(fā)展監(jiān)測及投資戰(zhàn)略規(guī)劃研究報告
- 2025年醫(yī)用防護(hù)服無紡布材料創(chuàng)新行業(yè)報告
- 交管輔警面試題目及答案
- 病媒生物防制服務(wù)外包 投標(biāo)方案(技術(shù)方案)
- 年產(chǎn)6萬噸環(huán)氧樹脂工藝設(shè)計
- 軌道線路養(yǎng)護(hù)維修作業(yè)-改道作業(yè)
- QB∕T 3826-1999 輕工產(chǎn)品金屬鍍層和化學(xué)處理層的耐腐蝕試驗(yàn)方法 中性鹽霧試驗(yàn)(NSS)法
- 北師大版五年級數(shù)學(xué)上冊第七單元《可能性》教案
- 2023-2024學(xué)年上海市閔行區(qū)四上數(shù)學(xué)期末綜合測試試題含答案
- 解除勞動合同證明電子版(6篇)
- 呼吸科規(guī)培疑難病例討論
- 有關(guān)中國居民死亡態(tài)度的調(diào)查報告
- 核對稿100和200單元概述
- 醫(yī)學(xué)統(tǒng)計學(xué)(12)共143張課件
評論
0/150
提交評論