原创 如何編寫鍵盤驅動程序

2011-09-30 15:39 683人閱讀 評論(0) 收藏 舉報 inputinterfacebuffermoduledescriptortable   1.  指定USB鍵盤驅動所需的頭文件: #include<lin

原创 庫函數調用和系統調用的區別(轉)

  2011-06-09 17:57 2369人閱讀 評論(0) 收藏 舉報 unixsystem存儲user語言算法  http://blog.csdn.net/clearriver/archive/2009/05/05/4152

原创 谷歌google搜索打不開、谷歌gmail郵箱及相關服務無法登錄的解決辦法

http://www.youjinongfu.com/luntan/thread-699-1-1.html 谷歌打不開 google打不開,與中國大陸封殺有關,但是主要是因爲最近google服務器在全球範圍內重新進行了佈局調整

原创 7.最熟悉的陌生人--probe

7.最熟悉的陌生人--probe 話說因爲Hub驅動無所事事,所以hub_thread()進入了睡眠,直到某一天,hub_probe被調用。所以我們來看hub_probe(),這個函數來自drivers/usb/hub.c,其作用就如

原创 2.跟我走吧,現在就出發

2.跟我走吧,現在就出發 這裏說的是USB中的Hub。在USB的世界裏,Hub永遠都只是綠葉,它不可能是紅花,它的存在只是爲了支持更多設備連接到USB總線上來,誰也不會爲了使用Hub而購買Hub,買Hub的原因是爲了要使用別的設備。

原创 高通平臺USB2.0和3.0接口充電器識別原理

高通平臺USB2.0和3.0接口充電器識別原理 分類: USB Charger2014-06-09 16:45 64人閱讀 評論(0) 收藏 舉報 BCS v1.2的充電器探測原理如下: 當OTG驅動捕獲到VBUS中斷的時候,

原创 6.等待,只因曾經承諾

6.等待,只因曾經承諾 hub_thread()中還有一個函數沒有講,它就是try_to_freeze(),這是與電源管理相關的函數。對大多數人來說,關於這個函數,瞭解就可以了。 隨着Linux開始支持suspended之後,有人提

原创 標準IO和不帶緩存的IO

分類: Unix編程2014-09-17 00:47 42人閱讀 評論(1) 收藏 舉報 IO緩存c 最近在看《Unix環境高級編程》,這是自己的一些心得體會。 不帶緩存的IO是什麼,比如read()函數和write()

原创 4.一樣的精靈,不一樣的API(2)

4.一樣的精靈,不一樣的API(2) 關於內核空間,我只想說,所有的驅動程序都是運行在內核空間的,內核空間雖然很大,但總是有限的。而在這有限的空間中,其最後一個page是專門保留的,也就是說,一般人不可能用到內核空間最後一個page的

原创 5.那些隊列,那些隊列操作函數(1)

5.那些隊列,那些隊列操作函數(1) 這一節我們講隊列。 隨着子進程進入了我們的視野,我們來看其入口函數hub_thread(),這是一個令你大跌隱形眼鏡的函數。 2817 static int hub_thread(void *_

原创 4.一樣的精靈,不一樣的API(1)

4.一樣的精靈,不一樣的API(1) usb_register()這個函數是用來向USB核心層,即USB Core,註冊一個USB設備驅動的,而這裏我們註冊的是Hub的驅動程序所對應的struct usb_driver結構體變量。定義

原创 5.那些隊列,那些隊列操作函數(2)

5.那些隊列,那些隊列操作函數(2) 從隊列裏刪除一個元素,並且將該元素做初始化,首先看__list_del(): 155 static inline void __list_del(struct list_head * prev, 

原创 3.特別的愛給特別的Root Hub

3.特別的愛給特別的Root Hub 不懂Hub是怎麼工作的就等於不知道USB設備驅動是怎麼工作的。這句話一點沒錯,因爲USB設備的初始化都是Hub這邊發起的,通常我們寫USB設備驅動程序都是在已經得到了一個struct usb_in

原创 Makefile

http://scc.qibebt.cas.cn/docs/linux/base/%B8%FA%CE%D2%D2%BB%C6%F0%D0%B4Makefile-%B3%C2%F0%A9.pdf