原创 linux設備驅動學習(11) linux設備模型1

引自http://blog.chinaunix.net/space.php?uid=20543672&do=blog&id=94312    以《LDD3》的說法:Linux設備模型這部分內容可以認爲是高級教材,對於多數程序作者來說是不必

原创 VirtualBox虛擬機安裝Windows XP

  Ubuntu:VirtualBox虛擬機安裝Windows XP2011-03-15 14:58:45 標籤:ubuntuvbox Windo

原创 linux設備驅動程序學習(8) 分配內存

 kmalloc函數 #include<linux/slab.h> void *kmalloc(size_t size,int flags); 1.不會對所申請的內存清零,保留原有數據 2.參數:size:分配大小          

原创 linux設備驅動學習(11) linux設備模型2

------------------------------引------------------------------    Linux 2.6內核的一個重要特色是提供了統一的內核設備模型。隨着技術的不斷進步,系統的拓撲結構越來越複雜

原创 linux設備驅動程序學習(7) 時間、延遲及延緩操作

度量時間差 概念: 時鐘中斷:由系統定時硬件以週期性的間隔產生 hz:上述間隔由hz的值設定,hz是一個與體系結構相關的常數 計數器:發生中斷一次,計數器加一,這個計數器的值(只有)在系統引導時被初始化爲0 jiffies變量:unsig

原创 linux設備驅動程序學習(10) 中斷處理

儘管有些設備僅僅通過控制其寄存器就可以得到控制,但現實中的大部分設備卻要比這複雜一些。因爲大部分設備的處理時間與處理器不在同一個週期,且一定會比處理器慢的多,這就造成了一種讓處理器等待設備的現象,顯然這是不行的,而有一種解決方法就是中斷操

原创 多維數組

1.數組名 不同於一維數組的數組名錶示第一個元素的地址,是一個“指向元素類型的指針”, 多維數組第一維的元素實際上是另一個數組。 2.下標 int matrix[3][10]; 1) matrix[1][5]: 第一列第五行元素 2) m

原创 linux常用知識

@http://hi.baidu.com/csdeny/blog/item/119aaefd73bf551708244d7f.html   寫得蠻好的linux學習筆記 2007-05-05 00:18  linux目錄架構 /   

原创 softirq,tasklet,workqueue

-------------------------------------------------------------------------引---------------------------------------------

原创 關於對驅動的一些理解

什麼是驅動程序? 聽到這個問題,腦中的第一反映就是:驅動就是讓硬件跑起來的軟件。但是不知到這麼理解是否到位。 所以找到LDD3中對驅動程序的解釋:驅動程序就是一個個的黑盒子,使某個特定硬件響應一個定義良好的內部編程接口,這些接口完全隱藏了

原创 C學習隨筆

1.數據類型的長度是由誰決定的? 首先與CPU有關,其次與編譯系統和適用平臺也有關。最直接的使用,長度有編譯系統決定。而不是有操作系統決定。 2. 32位機 32位機類型 最小範圍 char 0~127 signed char -127

原创 linux設備驅動程序學習(9) 與硬件通信

I/O端口 VS I/O內存 知識點: 1.每種外設都是通過讀寫寄存器進行控制。 2.在硬件層,內存區域和I/O區域沒有概念上的區別:他們都通過像地址總線和控制總線發送電平信號進行訪問,在通過數據總線讀寫數據。 3.           

原创 linux設備驅動學習(6) 高級字符驅動學習--阻塞型I/0

提出問題:若驅動程序無法立即滿足請求,該如何響應? 比如:當數據不可用時調用read,或是在緩衝區已滿時,調用write 解決問題:驅動程序應該(默認)該阻塞進程,將其置入休眠狀態直到請求可繼續。   休眠: 當一個進程被置入休眠時,它會

原创 linux設備驅動學習(11) linux設備模型3

 3. 內核對象機制主要相關函數 針對內核對象不同層次的數據結構,linux 2.6內核定義了一系列操作函數,定義於lib/kobject.c文件中

原创 鏈接屬性 存儲類型

鏈接屬性 當組成一個程序的各個源文件分別被編譯後,所有的目標文件以及那些從一個或多個函數庫中引用的函數鏈接在一起,形成可執行程序。 external extern 可在源文件之外訪問 internal static 只可在代碼塊內部或是函