練習字元裝置驅動的兩種模板之後,編寫乙個字元驅動程式
chartest虛擬裝置:由驅動程式4管理,所指向的裝置是64號裝置,類似於串列埠終端或者字元裝置終端
#include
#include
#include
#include
#include
#include
#define chrdevbase_major 200
/* 主裝置號 */
#define chrdevbase_name "chartest"
/* 裝置名 */
static
char readbuf[
100]
;/* 讀緩衝區 */
static
char writebuf[
100]
;/* 寫緩衝區 */
static
char kerneldata=
;
static
intchartest_open
(struct inode *inode,
struct file *filp)
static ssize_t chartest_read
(struct file *filp,
char __user *buf,
size_t cnt, loff_t *offt)
else
//printk("chartest read!\r\n");
return0;
}
這一塊主要是從裝置裡面讀取資料到使用者空間去
copy_to_user
(void __user *to,
const
void
*from,
unsigned
long n)
export_symbol
(copy_to_user)
;
static ssize_t chartest_write
(struct file *filp,
const
char __user *buf,
size_t cnt, loff_t *offt)
else
//printk("chartest write!\r\n");
return0;
}
static
intchartest_release
(struct inode *inode,
struct file *filp)
static
struct file_operations chartest_fops =
;
static
int __init chartest_init
(void
)printk
("chartest_init()\r\n");
return0;
}/** @description : 驅動出口函式
* @param : 無
* @return : 無
*/static
void __exit chartest_exit
(void)/*
* 將上面兩個函式指定為驅動的入口和出口函式
*/module_init
(chartest_init)
;module_exit
(chartest_exit)
;
這個就是驅動檔案的大致內容
到對應的資料夾下面
可以到指定資料夾下面,然後使用命令$ pwd
去檢視
到驅動資料夾下面
就會生成對應的檔案了
Linux裝置驅動程式學習(1) 字元裝置驅動程式
linux裝置驅動程式學習 1 字元裝置驅動程式 一 分配裝置號 1 對字元裝置的訪問是通過檔案系統內的裝置名稱進行的 dev ttys0 在核心中,include dev t 用來儲存裝置編號 包括主裝置號和次裝置號。由dev t獲得主次裝置號 major dev t dev minor dev ...
2 6字元裝置驅動
chardev.c include include for file f op include include for copy to user include for cdev cdev init,cdev add module license gpl module author helight ...
字元裝置驅動3 字元類裝置驅動框架分析
前面的博文循規蹈矩按照無驅動框架的步驟分析了乙個簡單的字元裝置驅動,但是現如今更多是使用核心開發者提供的驅動框架來完成驅動的註冊,這樣的做法即可減少 的錯誤率,也能避免錯誤例如記憶體申請忘記釋放的問題,更能簡化驅動的開發難度,這裡就以乙個簡答的led類裝置驅動架構為例,分析字元裝置驅動框架 驅動框架...