linux驅動程式基礎

2021-07-06 09:09:08 字數 723 閱讀 8288

1. 分配和釋放裝置號

靜態分配裝置號:int register_chrdev_region(dev_t first,unsigned int count,char *name)

動態分配裝置號: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)

2.字元裝置的註冊函式

應該包含的標頭檔案是 

核心使用 struct cdev 

表示字元裝置

字元裝置的結構如下:

struct cdev ;

分配cdev 

記憶體的方法:

靜態分配:struct cdev  my_cdev

動態分配:struct cdev   *my_cdev = cdev_alloc();

cdev 結構的初始化函式

void cdev_init(struct cdev *cdev, const struct file_operations *fops)

新增字元裝置的函式:int cdev_add(struct cdev *cdev,dev_t  num,unsigned int count );              注:

成功返回 0

linux 驅動程式 高階字元驅動程式

ioctl方法 驅動程式的原型實現 int ioctl struct inode inode,struct file filp,unsigned int cmd,unsigned long arg ioctl 命令選擇 位段結構 number direction ioc read ioc write...

Linux裝置驅動程式 基礎簡介

裝置和模組的分類 安全問題 裝置驅動的作用在於提供機制,而不是提供策略。1 機制和策略分離的好處是啥?可以使軟體包更易開發,也更容易根據不同的需求來調整以實現不同的策略。2 機制是啥?機制是類似於提供什麼樣的功能。3 策略是啥?策略類似於如何使用上面的功能 4 驅動程式的機制和策略的分離有啥例子?以...

linux裝置驅動程式 字元裝置驅動程式

先留個 有一起學習驅動程式的加qq295699450 字元裝置驅動 這篇比較惱火。載入成功,但是讀不出來資料,有知道怎麼回事的,留個言,一起討論下 資料結構 struct scull mem struct scull dev dev 整個驅動程式 如下 include include include...