freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

第11課字符設(shè)備驅(qū)動-wenkub

2022-10-09 16:41:07 本頁面
 

【正文】 讀取目錄,對于設(shè)備文件,該成員應(yīng)當(dāng)為 NULL ? int (*readdir) (struct file *, void *, filldir_t)。 ? //用來從設(shè)備中讀取數(shù)據(jù) ? ssize_t (*read) (struct file *, char __user *, size_t, loff_t *)。 ? 字符設(shè)備在 Linux內(nèi)核中使用 struct cdev結(jié)構(gòu)來表示,這個結(jié)構(gòu)體在整個字符驅(qū)動程序設(shè)計中起著關(guān)鍵的作用 。 ? 在 struct cdev結(jié)構(gòu)中包含著字符設(shè)備需要的全部信息,其中最主要的是設(shè)備號( dev_t)和文件操作( file_operations)。 ? //用來向設(shè)備寫入數(shù)據(jù) ? ssize_t (*write) (struct file *, const char __user *, size_t, loff_t *)。 ? //輪詢函數(shù),查詢對一個或多個文件描述符的讀或?qū)懯欠駮枞? ? unsigned int (*poll) (struct file *, struct poll_table_struct *)。 ? //用來將設(shè)備內(nèi)存映射到進(jìn)程的地址空間 ? int (*mmap) (struct file *, struct vm_area_struct *)。 ? //用來刷新待處理的數(shù)據(jù) ? int (*fsync) (struct file *, struct dentry *, int datasync)。 ? } file ? file結(jié)構(gòu)體在 linux/中 定義 – fmode_t f_mode對文件的讀寫模式,對應(yīng)系統(tǒng)調(diào)用 open的 mod_t mode參數(shù) 。 inode ? Inode是 一 個內(nèi)核文件系統(tǒng)索引節(jié)點(diǎn)對象,它包含了內(nèi)核在操作文件或目錄時所需要的全部 信息 。 字符設(shè)備的注冊和注銷 ? 定義 – struct cdev { – struct kobject kobj。 – dev_t dev。 – struct cdev *cdev_alloc(void)。 ? 每個 GPIO端口一般包含 8個引腳,例如 PA端口為PA0~ PA7。數(shù)據(jù)寄存器的各位都直接引到芯片外部,而針對該寄存器的每一位的功能,則可以通過控制寄存器中相應(yīng)的位來設(shè)置。數(shù)據(jù)傳輸速度總體上來說比 I2C總線要快,速度可以達(dá)到幾 Mbit/s。 ? I2C總線是由串行數(shù)據(jù)信號線 SDA和串行時鐘信號線SCL構(gòu)成的串行總線,可發(fā)送和接收數(shù)據(jù) 。 SMBus總線 ? 系統(tǒng)管理總線( System Management Bus, SMBus)最初由 Intel提出,應(yīng)用于移動 PC和桌面 PC系統(tǒng)中的低速通訊 。 ? SMBus總線大部分基于 I2C總線規(guī)范,許多 I2C設(shè)備也能夠在 SMBus上正常工作 。 – busses:包含了一些 I2C總線的驅(qū)動,例如 AT91的 i2c。 – :這是一個通用的驅(qū)動,基本上大多數(shù) I2C驅(qū)動都可以通過調(diào)用它操作。 /*用來允許探測的類 */ ? const struct i2c_algorithm *algo。 ? int timeout。 ? struct list_head clients。 i2c_algorithm ? struct i2c_algorithm { ? //I2C傳輸函數(shù)指針 ? int (*master_xfer)(struct i2c_adapter *adap, struct i2c_msg *msgs, int num)。 ? struct i2c_msg { ? __u16 addr。 /*消息內(nèi)容 */ ? }。 /*設(shè)備名字 */ ? struct i2c_adapter *adapter。 ? struct list_head list。 i2c_driver ? struct i2c_driver { ? int id。 /*適配器刪除函數(shù)(舊式) */ ? int (*detach_client)(struct i2c_client *) __deprecated。 /*設(shè)備關(guān)閉函數(shù) */ ? int (*suspend)(struct i2c_client *, pm_message_t mesg)。
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1