乙個完整的測試模組驅動程式

2021-04-02 17:45:46 字數 1847 閱讀 6777

乙個完整的test字元裝置驅動程式,以下給出模組載入解除安裝方法以及簡單的測試程式。

首先編寫乙個test.h,定義各個介面函式以及包含的標頭檔案:

#define __no_version__

#include

#include

#include

#include

#include

#include

#include

#include

#include

static ssize_t read_test(struct file *file,char *buf,size_t count,loff_t *ppos);

static ssize_t write_test(struct file *file,const char *buf,size_t count,loff_t *ppos);

static int open_test(struct inode *inode,struct file *file);

static int release_test(struct inode *inode,struct file *file);

struct file_operations test_fops=;

char kernel_version=uts_release;

源**test.c如下:

#include "test.h"

unsigned int test_major = 0;

module_license("gpl");

static ssize_t read_test(struct file *file,char *buf,size_t count,loff_t *ppos)

return count;

}static ssize_t write_test(struct file *file,const char *buf,size_t count,loff_t *ppos)

static int open_test(struct inode *inode,struct file *file)

static int release_test(struct inode *inode,struct file *file)

int init_module(void)

if(test_major==0)

test_major=result;

return 0;

}void cleanup_module(void)

源**編譯載入方法如下:首先還是要確保linux核心源**放在/usr/src裡面,編譯源**:gcc -o2 -dmodule -d__kernel__ -i/usr/src/linux/include -c test.c

編譯結果為test.o,載入模組:in**od test.o,載入成功可以在/proc/drivers下面看到test模組,其中主裝置號動態分配為253,接下來建立節點:mknod /dev/test c 253 0,在/dev下建立test節點,c表示test模組為字元裝置,253為主裝置號,在/proc/driver裡面可以找到,0為從裝置號。建立節點成功後可以查詢一下test模組,在/dev 下面 find -name test。

編寫乙個簡單的測試程式:

#include

#include

#include

#include

main()

read(testdev,buf,10);

for(i=0;i<9;i++)

printf("%d/n",buf[9]);

close(testdev);

}解除安裝test模組:rmmod test,打完收工 :-)

Linux的裝置驅動程式應是乙個核心模組

為了增跟核心的靈活性和為了方便,設各驅動程式應被設計為乙個可動態安裝的核心模組。於是,乙個典型的linux設各驅動程式應包含如下幾部分 驅動程式模組的註冊與登出函式 設各的開啟 關閉 讀 寫及需要的其他操作函式 裝置的中斷服務程式。下面用偽 給出乙個從鍵盤上輸入乙個字元的例子,以使讀者對裝置驅動程式...

乙個簡單的字元裝置驅動程式的測試

uboot用於啟動核心 核心用於啟動應用程式 tar xjf linux 2.6.22.6.tar cd linux 2.6.22.6 patch p1 cp config.ok config make menuconfig make uimage 生成映象燒寫到開發板然後開始編寫驅動程式 incl...

第乙個驅動程式

原始出處 驅動程式的開發,向來是令人感到有所畏懼的,可能很多人像我一樣,看了很久卻還是一頭霧水,不得其門而入。我們今天就通過乙個簡單的程式來使讀者學會初步的驅動程式開發。在開發windows驅動程式之前,我們需要首先安裝ddk,win98及其以前的vxd我們就不要再考慮了 windows 2000 ...