目前分類:Linux Device Drivers (11)

瀏覽方式: 標題列表 簡短摘要

Linux Device Drivers

使用/proc檔案系統

 

        /proc是核心模擬出來的軟體檔案系統,它是核心對於外界的資訊窗口。在/proc下的每一個檔案,各自連繫到核心裡的專屬函式,當user-process讀取/proc下的檔案時,對應的函式便會即時(real-time)產生檔案的“內容”。以/proc/modules為例,它總是會告訴你核心當已載入哪些模組。

 

flykof 發表在 痞客邦 留言(0) 人氣()

Linux Device Drivers

節制printk訊息產生速率

 

        一般而言,正常運作狀態下不應該產生任何訊息,只有在發生了須要注意的異常狀態時,才可使用printk()

        但是printk()也是有被包含在無窮回圈裡的可能而導致嚴重的後果。對於需要偶爾輸出提醒訊息的情況,最好的解法是設立一個有調節作用的工具函式。

flykof 發表在 痞客邦 留言(0) 人氣()

Linux Device Drivers

Debug 訊息開關

 

在研發驅動程式的初期,printk()是輔助測試、偵錯新程式碼的好工具。到了正式釋出驅動程式的階段,就該拿掉這些無謂的printk()敘述或至少讓它們失效。

以下的範例提供一個簡便的方式,讓你可以一口氣拿掉所有偵測用途的printk()

flykof 發表在 痞客邦 留言(0) 人氣()

Linux Device Drivers

Register Character Device

 

要讓核心能提調你的驅動程式提供的作業方法,你必須配置並註冊一或多個struct cdev。用於配置struct cdev的函式是cdev_alloc(),你可再執行其配置一個獨立的cdev結構,然後將其ops欄位指向你的file_operations結構:

Struct cdev *my_cdev = cdev_alloc();

flykof 發表在 痞客邦 留言(0) 人氣()

Linux Device Drivers

Device Number

 

裝置的存取,是透過它們在檔案系統裡的名稱;這些名稱可成為特殊檔(special file)、裝置檔(device file)或檔案系統是的節點(node),但不管哪些說法意義都一樣。裝置檔一般來說都集中在/dev/目錄下。字元裝置會出現c字樣而區塊裝置則被標示為b

在日期欄位之前兩個以逗號隔開的數值,由左而右,依序是裝置檔的(major number)(minor number)

文章標籤

flykof 發表在 痞客邦 留言(0) 人氣()

Linux Device Drivers

新增模組到Kernel中並客製化組態選單加入選項

 

Hello World為範例

文章標籤

flykof 發表在 痞客邦 留言(0) 人氣()

What is tty 

        終端是一種字元裝置(Char Device),它有多種類型,通常使用tty(Teletype)來簡稱各種類型的終端設備。Teletype是最早出現的一種終端設備,很象電傳打字機(或者說就是),是由Teletype公司生產的。設備名放在特殊檔案目錄/dev/下,終端特殊設備檔案一般有以下幾種︰

 

1.串行端口終端(/dev/ttySn)

        串行端口終端(Serial Port Terminal)是使用計算機串行端口連接的終端設備。計算機把每個串行端口都看作是一個字符設備。有段時間這些串行端口設備通常被稱為終端設備,因為 那時它的最大用途就是用來連接終端。這些串行端口所對應的設備名稱是/dev/tts/0(或/dev/ttyS0)、/dev/tts/1(或/dev /ttyS1)等,設備號分別是(4,0)、(4,1)等,分別對應於DOS系統下的COM1、COM2等。若要向一個端口發送數據,可以在命令行上把標 準輸出重定向到這些特殊檔案名上即可。例如,在命令行提示符下鍵入︰echo test > /dev/ttyS1會把單字”test”發送到連接在ttyS1(COM2)端口的設備上。

flykof 發表在 痞客邦 留言(1) 人氣()

 

 

字元設備驅動程式

 


flykof 發表在 痞客邦 留言(1) 人氣()

由於最近要在ARM板上掛載SD卡,有用到mdev,對他不是了解有何作用,所以找了些資料來讀。順便PO上來。


mdev是busybox自帶的一個簡化版的udev,適合於嵌入式的應用埸合。其具有使用簡單的特點。它的作用,就是在系統啟動和熱插拔或動態加載驅動程式時,自動產生驅動程式所需的節點檔案。在以busybox為基礎構建嵌入式linux的根檔案系統時,使用它是最優的選擇。

flykof 發表在 痞客邦 留言(0) 人氣()

Linux Device Drivers Hello World 模組範例

 

Hello World 範例模組

flykof 發表在 痞客邦 留言(4) 人氣()

  • Mar 14 Sat 2009 15:44
  • Printk

 

在kernel 中模組如果要列印出訊息,由於不能連結一般函式庫,只能與核心的函式庫連結。

因此printf() 就不能使用了,只能使用printk()。

EX:

 

flykof 發表在 痞客邦 留言(0) 人氣()