(1)如果主裝置號事先知道,要用:
int register_chrdev_region( dev_t first, unsigned int count, char *name );
(2)如果主裝置號為0,則要用動態分配:
int alloc_chrdev_region( dev_t *dev, unsigned int firstminor,
unsigned int count, char *name );
void unregister_chrdev_region( dev_t first, unsigned int count );
struct cdev *my_cdev = cdev_alloc();
my_cdev->ops = &chr_fops;
void cdev_init( struct cdev *cdev, struct file_operations *fops);
int cdev_add( struct cdev *dev, dev_t num, unsigned int count);
void cdev_del( struct cdev *dev );
devfs_mk_cdev( mkdev(led_major, led_minor),
s_ifchr | s_irusr | s_iwusr | s_irgrp, device_name);
devfs_remove(device_name);
mknod /dev/裝置檔名 字元裝置(c是字元裝置,b是塊裝置) 主裝置號 次裝置號
例如:mknod /dev/testchar c 100 0
刪除裝置入口:
rm /dev/testchar
linux2 6 裝置驅動編寫
從2.6版本開始引入了platform這個概念,在開發底層驅動程式時,首先要確認的就是裝置的資源資訊,例如裝置的位址,在2.6核心中將每個裝置的資源用結構platform device來描述,該結構體定義在kernel include linux platform device.h中,struct ...
linux2 6字元裝置驅動開發模板
cpp view plain copy include include include include include 字元裝置驅動模板開始 define char dev device name char dev 是應當連線到這個編號範圍的裝置的名字,出現在 proc devices和sysfs中...
Linux2 6塊裝置驅動程式
一 塊裝置的操作的處理體系結構 1.vfs 虛擬檔案系統 vfs位於塊裝置的處理體系結構的上層,提供乙個通用的檔案模型。vfs和塊裝置的關係見linux2.6裝置管理 系統呼叫的服務例程呼叫乙個合適的vfs函式,將檔案描述符和檔案內的偏移量傳遞給它。2.磁碟快取記憶體 vfs函式確定所請求的資料是否...