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

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


咨詢
建站咨詢
