新聞中心
控制外設(shè)驅(qū)動基于 linux 的 IIC 外設(shè)驅(qū)動開發(fā)實戰(zhàn)

創(chuàng)新互聯(lián)專注于陽谷企業(yè)網(wǎng)站建設(shè),響應式網(wǎng)站開發(fā),商城建設(shè)。陽谷網(wǎng)站建設(shè)公司,為陽谷等地區(qū)提供建站服務。全流程按需網(wǎng)站策劃,專業(yè)設(shè)計,全程項目跟蹤,創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務
隨著 Linux 應用的普及,嵌入式芯片越來越多的支持 Linux 系統(tǒng),對其進行定制和編譯,用來完成開發(fā)板的初始化工作。linux 使用的 IIC 驅(qū)動程序作為驅(qū)動程序的重要組成部分,也要根據(jù)開發(fā)板硬件與外設(shè)的特性,做出相應的驅(qū)動程序開發(fā)工作。本文講解以 Linux 的 IIC 驅(qū)動程序為例,簡單說明 Linux 驅(qū)動開發(fā)實戰(zhàn)的基本思路與流程。
IIC 驅(qū)動實際上是指 IIC 外設(shè)和 Linux 內(nèi)核之間的接口協(xié)議,它的設(shè)計是按照 Linux 設(shè)備模型的接口,內(nèi)核提供一系列的接口給上層應用程序調(diào)用,這也是 linux 內(nèi)核驅(qū)動程序?qū)崿F(xiàn)的大致方向和流程。以下是創(chuàng)建 IIC 驅(qū)動服務的基本流程:
1.首先熟悉 IIC 設(shè)備的硬件特性,在恰當?shù)奈恢米?IIC 服務;
2.分配一個 IIC 的上下文結(jié)構(gòu)體,把硬件信息,硬件上下文,設(shè)備驅(qū)動,IIC 操作接口匯集到一起;
3.注冊 IIC 攜帶 finish_function 回調(diào)函數(shù),確保 IIC 請求在完成后調(diào)用;
4.申請 IIC 操作數(shù)據(jù)必要的內(nèi)存空間,并將其填充數(shù)據(jù);
5.調(diào)用 i2c_access 函數(shù),啟動輪詢?nèi)蝿?,?IIC 外設(shè)進行讀寫;
6.利用 finish_function 回調(diào)函數(shù),獲取外設(shè)讀寫狀態(tài)以及結(jié)果;
7.完成 IIC 驅(qū)動程序的開發(fā)。
下面是一段最基本的 IIC 驅(qū)動程序代碼:
int i2c_register_driver(struct i2c_client *client)
{
int ret;
/* Register a new device with the I2C subsystem */
ret = i2c_add_driver(&client->driver);
if (ret) {
/* Error handling */
}
return ret;
}
結(jié)束語:控制外設(shè)驅(qū)動開發(fā)實戰(zhàn)是 Linux 系統(tǒng)設(shè)計的核心,基于 Linux 的 IIC 外設(shè)驅(qū)動的開發(fā)也是芯片研發(fā)過程的重要環(huán)節(jié),本文用 Linux 的 IIC 外設(shè)驅(qū)動來說明 Linux 驅(qū)動開發(fā)的基本流程與技術(shù),希望能夠幫助系統(tǒng)設(shè)計者們更加輕松高效地實現(xiàn)系統(tǒng)設(shè)計目標。
成都創(chuàng)新互聯(lián)科技有限公司,是一家專注于互聯(lián)網(wǎng)、IDC服務、應用軟件開發(fā)、網(wǎng)站建設(shè)推廣的公司,為客戶提供互聯(lián)網(wǎng)基礎(chǔ)服務!
創(chuàng)新互聯(lián)(www.cdcxhl.com)提供簡單好用,價格厚道的香港/美國云服務器和獨立服務器。創(chuàng)新互聯(lián)——四川成都IDC機房服務器托管/機柜租用。為您精選優(yōu)質(zhì)idc數(shù)據(jù)中心機房租用、服務器托管、機柜租賃、大帶寬租用,高電服務器托管,算力服務器租用,可選線路電信、移動、聯(lián)通機房等。
文章標題:控制外設(shè)驅(qū)動基于Linux的IIC外設(shè)驅(qū)動開發(fā)實戰(zhàn)(linuxiic)
轉(zhuǎn)載注明:http://m.5511xx.com/article/dpidjhi.html


咨詢
建站咨詢
