嵌入式之Linux驅(qū)動(四)

姓名:鄭煜爍? 學(xué)號:19029100010? 學(xué)院:電子工程學(xué)院

轉(zhuǎn)自:https://blog.csdn.net/u012142460/article/details/78951664

【嵌牛導(dǎo)讀】簡單介紹相關(guān)的控制操作和命令

【嵌牛鼻子】ioctl設(shè)備基本操作

【嵌牛提問】何為ioctl設(shè)備

【嵌牛正文】

對驅(qū)動設(shè)備除了讀寫操作,還應(yīng)該有一個控制操作溜歪,內(nèi)核將對設(shè)備的控制操作委派給了ioct接口,ioctl也是一個系統(tǒng)調(diào)用,函數(shù)原型如下:

? int ioctl(int d, int request,......)

d表示文件描述符

request我們理解為命令

后面可以跟命令的參數(shù)

在文件操作集合中與ioctl對應(yīng)的函數(shù)是:

? ? ? ? ? ? ? ? ? ? ? ? ? ? long (*unlocked_ioctl) (struct file *, unsigned int, unsigned long);

第一個參數(shù)表示打開的文件結(jié)構(gòu)指針

第二個參數(shù)與request對應(yīng)

第三個參數(shù)與系統(tǒng)調(diào)用的第三個參數(shù)對應(yīng)揍移。

對于第二個參數(shù)request,需要遵從一定的規(guī)則

bit31-30? ? ? ? ? 00 命令不帶參數(shù)

? ? ? ? ? ? ? ? ? ? ? 10? 命令需要從驅(qū)動中獲取數(shù)據(jù),讀方向

? ? ? ? ? ? ? ? ? ? ? ? 01 命令需要把數(shù)據(jù)寫入驅(qū)動黍图,寫方向

? ? ? ? ? ? ? ? ? ? ? ? 11 命令既要寫數(shù)據(jù)也要讀數(shù)據(jù) 讀寫

bit 29-16? ? ? ? ? 如果命令帶參數(shù),則指定參數(shù)所占用的內(nèi)存空間大小

bit15-8? ? ? ? ? ? 每個驅(qū)動全局唯一的幻數(shù)

bit7-0? ? ? ? ? ? ? ? 命令碼

內(nèi)核有命令碼來生成相關(guān)命令

命令碼如何生成:

? ? ? ? #define _IO(type,nr)? ? _IOC(_IOC_NONE,(type),(nr),0)? ? // 生成一個命令碼

#define _IOR(type,nr,size)? ? ? _IOC(_IOC_READ,(type),(nr),sizeof(size))? // 生成一個讀命令碼

#define _IOW(type,nr,size)? ? ? _IOC(_IOC_WRITE,(type),(nr),sizeof(size))? // 生成一個寫命令碼

#define _IOWR(type,nr,size)? ? _IOC(_IOC_READ|_IOC_WRITE,(type),(nr),sizeof(size))? // 生成一個讀寫命令碼


? ? type :8位一個幻數(shù)奴烙,任意的一個字符

? ? nr? :自然數(shù)? 8位

? ? size :數(shù)據(jù)的類型 占 14位

? ? dir? :方向占用 2位

例:

#define SET_BAUD? _IOW('c',0,unsigned int )

————————————————

版權(quán)聲明:本文為CSDN博主「念念有余」的原創(chuàng)文章助被,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接及本聲明切诀。

原文鏈接:https://blog.csdn.net/u012142460/article/details/78951664

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末揩环,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子趾牧,更是在濱河造成了極大的恐慌检盼,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,743評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件翘单,死亡現(xiàn)場離奇詭異吨枉,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)哄芜,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,296評論 3 385
  • 文/潘曉璐 我一進(jìn)店門貌亭,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人认臊,你說我怎么就攤上這事圃庭。” “怎么了失晴?”我有些...
    開封第一講書人閱讀 157,285評論 0 348
  • 文/不壞的土叔 我叫張陵剧腻,是天一觀的道長。 經(jīng)常有香客問我涂屁,道長书在,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,485評論 1 283
  • 正文 為了忘掉前任拆又,我火速辦了婚禮儒旬,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘帖族。我一直安慰自己栈源,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,581評論 6 386
  • 文/花漫 我一把揭開白布竖般。 她就那樣靜靜地躺著甚垦,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上制轰,一...
    開封第一講書人閱讀 49,821評論 1 290
  • 那天前计,我揣著相機(jī)與錄音,去河邊找鬼垃杖。 笑死男杈,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的调俘。 我是一名探鬼主播伶棒,決...
    沈念sama閱讀 38,960評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼彩库!你這毒婦竟也來了肤无?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,719評論 0 266
  • 序言:老撾萬榮一對情侶失蹤骇钦,失蹤者是張志新(化名)和其女友劉穎宛渐,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體眯搭,經(jīng)...
    沈念sama閱讀 44,186評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡窥翩,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,516評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了鳞仙。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片寇蚊。...
    茶點(diǎn)故事閱讀 38,650評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖棍好,靈堂內(nèi)的尸體忽然破棺而出仗岸,到底是詐尸還是另有隱情,我是刑警寧澤借笙,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布扒怖,位于F島的核電站,受9級特大地震影響业稼,放射性物質(zhì)發(fā)生泄漏姚垃。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,936評論 3 313
  • 文/蒙蒙 一盼忌、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧掂墓,春花似錦谦纱、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,757評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至吃嘿,卻和暖如春祠乃,著一層夾襖步出監(jiān)牢的瞬間梦重,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,991評論 1 266
  • 我被黑心中介騙來泰國打工亮瓷, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留琴拧,地道東北人。 一個月前我還...
    沈念sama閱讀 46,370評論 2 360
  • 正文 我出身青樓嘱支,卻偏偏與公主長得像蚓胸,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子除师,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,527評論 2 349

推薦閱讀更多精彩內(nèi)容