Linux設(shè)備驅(qū)動(dòng)程序的函數(shù)跳轉(zhuǎn)表
發(fā)布時(shí)間:2009/2/18 0:00:00 訪問(wèn)次數(shù):2204
直接面向設(shè)各硬件的程序叫做設(shè)各驅(qū)動(dòng)程序。設(shè)各驅(qū)動(dòng)程序的作用就是在設(shè)各硬件寄存器的基礎(chǔ)上來(lái)實(shí)現(xiàn)系統(tǒng)上層的各項(xiàng)操作命令。這些函數(shù)雖然是直接面向設(shè)備的硬件編程,有一部分代碼是用匯編語(yǔ)言來(lái)編寫的,但通常都會(huì)提供一個(gè)高級(jí)語(yǔ)言的接口,因此,它們的外觀看起來(lái)與一般的c函數(shù)沒(méi)有區(qū)別,例如read()、write()、open()、close()等。
在linux中,常用一個(gè)結(jié)構(gòu)作為調(diào)用上述設(shè)各驅(qū)動(dòng)程序中各個(gè)函數(shù)的跳轉(zhuǎn)表,即把指向上述設(shè)備驅(qū)動(dòng)程序函數(shù)的指針集中在一個(gè)結(jié)構(gòu)中。這個(gè)結(jié)構(gòu)就是我們已經(jīng)熟悉的file_opera_tions。為了清楚起見(jiàn)。把在文件系統(tǒng)中介紹的結(jié)構(gòu)file opcrattons的部分內(nèi)容列舉如下:
其實(shí),計(jì)算機(jī)的信息最終還是要落實(shí)到某個(gè)實(shí)際物理設(shè)備或裝置上的。當(dāng)然,文件作為一個(gè)具有邏輯關(guān)系的數(shù)據(jù)集合是存儲(chǔ)到磁盤這個(gè)物理設(shè)各中的。如果把磁盤中的數(shù)據(jù)塊看成是一個(gè)沒(méi)備·那么上面這個(gè)結(jié)構(gòu)中的各函數(shù)指針落實(shí)到具體文件i節(jié)點(diǎn)中的文件操作函數(shù)集,實(shí)質(zhì)上就是磁盤這個(gè)設(shè)備的驅(qū)動(dòng)程序,所以前面也曾經(jīng)把i節(jié)點(diǎn)叫做設(shè)備文件。
原則上,作為不是以存儲(chǔ)數(shù)據(jù)為目的的諸如鼠標(biāo)、鍵盤、顯示器、打印機(jī)等其他設(shè)備,file_operations結(jié)構(gòu)中函數(shù)指針的名稱可以由程序設(shè)計(jì)人員任意命名.例如,write()實(shí)質(zhì)上就是處理器向設(shè)備輸出數(shù)據(jù),把它改為output()也未嘗不可。但由于將來(lái)要用文件系統(tǒng)來(lái)管理設(shè)備,也就是要把設(shè)各也要看做一種文件.所以這里還是應(yīng)該遵循文件系統(tǒng)的命名方法。
歡迎轉(zhuǎn)載,信息來(lái)自維庫(kù)電子市場(chǎng)網(wǎng)(www.dzsc.com)
直接面向設(shè)各硬件的程序叫做設(shè)各驅(qū)動(dòng)程序。設(shè)各驅(qū)動(dòng)程序的作用就是在設(shè)各硬件寄存器的基礎(chǔ)上來(lái)實(shí)現(xiàn)系統(tǒng)上層的各項(xiàng)操作命令。這些函數(shù)雖然是直接面向設(shè)備的硬件編程,有一部分代碼是用匯編語(yǔ)言來(lái)編寫的,但通常都會(huì)提供一個(gè)高級(jí)語(yǔ)言的接口,因此,它們的外觀看起來(lái)與一般的c函數(shù)沒(méi)有區(qū)別,例如read()、write()、open()、close()等。
在linux中,常用一個(gè)結(jié)構(gòu)作為調(diào)用上述設(shè)各驅(qū)動(dòng)程序中各個(gè)函數(shù)的跳轉(zhuǎn)表,即把指向上述設(shè)備驅(qū)動(dòng)程序函數(shù)的指針集中在一個(gè)結(jié)構(gòu)中。這個(gè)結(jié)構(gòu)就是我們已經(jīng)熟悉的file_opera_tions。為了清楚起見(jiàn)。把在文件系統(tǒng)中介紹的結(jié)構(gòu)file opcrattons的部分內(nèi)容列舉如下:
其實(shí),計(jì)算機(jī)的信息最終還是要落實(shí)到某個(gè)實(shí)際物理設(shè)備或裝置上的。當(dāng)然,文件作為一個(gè)具有邏輯關(guān)系的數(shù)據(jù)集合是存儲(chǔ)到磁盤這個(gè)物理設(shè)各中的。如果把磁盤中的數(shù)據(jù)塊看成是一個(gè)沒(méi)備·那么上面這個(gè)結(jié)構(gòu)中的各函數(shù)指針落實(shí)到具體文件i節(jié)點(diǎn)中的文件操作函數(shù)集,實(shí)質(zhì)上就是磁盤這個(gè)設(shè)備的驅(qū)動(dòng)程序,所以前面也曾經(jīng)把i節(jié)點(diǎn)叫做設(shè)備文件。
原則上,作為不是以存儲(chǔ)數(shù)據(jù)為目的的諸如鼠標(biāo)、鍵盤、顯示器、打印機(jī)等其他設(shè)備,file_operations結(jié)構(gòu)中函數(shù)指針的名稱可以由程序設(shè)計(jì)人員任意命名.例如,write()實(shí)質(zhì)上就是處理器向設(shè)備輸出數(shù)據(jù),把它改為output()也未嘗不可。但由于將來(lái)要用文件系統(tǒng)來(lái)管理設(shè)備,也就是要把設(shè)各也要看做一種文件.所以這里還是應(yīng)該遵循文件系統(tǒng)的命名方法。
歡迎轉(zhuǎn)載,信息來(lái)自維庫(kù)電子市場(chǎng)網(wǎng)(www.dzsc.com)
熱門點(diǎn)擊
- Linux設(shè)備驅(qū)動(dòng)程序的函數(shù)跳轉(zhuǎn)表
- PIE中斷向量的映射方式
- Linux系統(tǒng)調(diào)用例程system_call
- PIE模塊級(jí)中斷
- 什么是Linux內(nèi)核模塊
- Linux系統(tǒng)調(diào)用接口、系統(tǒng)調(diào)用例程和內(nèi)核服
- ARM復(fù)位原理
- Linux系統(tǒng)調(diào)用接口、系統(tǒng)調(diào)用例程和內(nèi)核服
- Linux字符設(shè)備驅(qū)動(dòng)程序的注冊(cè)
- Linux外部設(shè)備的基本概念
推薦技術(shù)資料
- DFRobot—玩的就是
- 如果說(shuō)新車間的特點(diǎn)是“靈動(dòng)”,F(xiàn)QPF12N60C那么... [詳細(xì)]
- CV/CC InnoSwitch3-AQ 開
- URF1DxxM-60WR3系
- 1-6W URA24xxN-x
- 閉環(huán)磁通門信號(hào)調(diào)節(jié)芯片NSDRV401
- SK-RiSC-SOM-H27X-V1.1應(yīng)
- RISC技術(shù)8位微控制器參數(shù)設(shè)
- 多媒體協(xié)處理器SM501在嵌入式系統(tǒng)中的應(yīng)用
- 基于IEEE802.11b的EPA溫度變送器
- QUICCEngine新引擎推動(dòng)IP網(wǎng)絡(luò)革新
- SoC面世八年后的產(chǎn)業(yè)機(jī)遇
- MPC8xx系列處理器的嵌入式系統(tǒng)電源設(shè)計(jì)
- dsPIC及其在交流變頻調(diào)速中的應(yīng)用研究