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

2021-09-12 17:45:58 字數 2198 閱讀 2295

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

生成映象燒寫到開發板然後開始編寫驅動程式

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

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

static ssize_t first_drv_write(struct file *file, const char __user *buf, size_t count, loff_t * ppos)

static struct file_operations first_drv_fops = ;

static int first_drv_init(void)

void first_drv_exit(void)

module_init(first_drv_init);

module_exit(first_drv_exit);

kern_dir = /work/system/linux-2.6.22.6

all:

make -c $(kern_dir) m=`pwd` modules

clean:

make -c $(kern_dir) m=`pwd` modules clean

rm -rf modules.order

obj-m    += first_dv.o

使用make編寫 生成 first_dv.ko

然後將其複製到剛寫好的/work/nfs_root/first_fs裡面

firstdvtest.c

#include

#include

#include

#include

/* firstdrvtest on

* firstdrvtest off

*/int main(int argc, char **ar**)

write(fd, &val, 4);

return 0;

}編譯arm-linux-gcc   -o      firstdvtest      firstdvtest.c

將  firstdvtest  複製到剛寫好的/work/nfs_root/first_fs裡面

退出一步到/work/nfs_root

mkyaffs2image   first_fs     first_dv.yaffs2(這個名字可以任意起,名字.yaffs2)

然後燒寫到開發板上

insmod    first_dv.ok

如果出現

若出現上面的情況 你可以找韋東山老師編寫好的驅動為模板進行增減

在按上述的步驟進行執行就可以安裝成功

cat   /proc/devices 檢視執行的程序

安裝成功進行驅動測試

./firstdvtest

提示不可以開啟

因為你沒建立此裝置

mknod/dev/xyzc      221     0

在進行測試就ok了

最簡單的字元裝置驅動程式

首先,先理清一下簡單字元裝置驅動程式的思路 1 申請裝置號 動態申請 int alloc chrdev region dev t dev,unsignedbaseminor,unsignedcount,const char name 靜態申請 int register chrdev region d...

第乙個Linux字元裝置驅動程式和應用測試

1 首先寫乙個字元裝置原始檔 c 字元裝置驅動程式的框架結構 檔案開啟函式 int scull open struct inode inode,struct file filp 檔案釋放函式 int scull release struct inode inode,struct file filp ...

乙個驅動程式對應多個裝置

目錄 1.對於驅動程式中有兩個關鍵的結構體 struct file filp 有乙個關鍵的成員 void private data,用於存放用於私人的資料 inode 有乙個關鍵的成員 unsigned int i flags 乙個驅動多個裝置的程式思路 1個驅動程式,1個struct file o...