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

正文內(nèi)容

第10課設(shè)備驅(qū)動(dòng)開發(fā)-wenkub

2022-10-09 16:43:18 本頁面
 

【正文】 設(shè)備分類 ? Linux支持三 類 主要 硬件設(shè)備 – 字符 設(shè)備 (character device):每次讀寫一個(gè)字符;無需 緩沖直接讀寫的 設(shè)備 。 1 嵌入式 系統(tǒng) An Introduction to Embedded System 浙江大學(xué)計(jì)算機(jī)學(xué)院 2020年 4月 第 10課 設(shè)備驅(qū)動(dòng)開發(fā) 提綱 ? Linux設(shè)備驅(qū)動(dòng)簡介 ? 設(shè)備 驅(qū)動(dòng)結(jié)構(gòu) ? 內(nèi)核設(shè)備模型 ? 同步機(jī)制 ? 工作隊(duì)列 ? 異步 I/O Linux設(shè)備驅(qū)動(dòng)簡介 ? 驅(qū)動(dòng) 的功能 ? 設(shè)備分類 ? 設(shè)備文件和設(shè)備號(hào) ? 代碼分布 驅(qū)動(dòng)的功能 ? 設(shè)備驅(qū)動(dòng)程序 的主要功能 – 對設(shè)備的初始化和釋放 。 – 塊 設(shè)備 (block device):每次讀寫一個(gè)塊 。 Linux設(shè)備驅(qū)動(dòng)代碼的分布 ? 在 drivers目錄下: – block – char – cdrom – pci – scsi – – sound 驅(qū)動(dòng)程序 的注冊與注銷 ? 注冊 – fs/ register_chrdev()函數(shù) – fs/ register_blkdev()函數(shù) ? 注銷 – unregister_chrdev()函數(shù) – unregister_blkdev()函數(shù) 設(shè)備的 操作 ? 設(shè)備的打開與 釋放 ? 設(shè)備的讀寫 操作 ? 設(shè)備 的控制操作 struct file_operations { struct module *owner。 ssize_t (*aio_read) (struct kiocb *, const struct iovec *, unsigned long, loff_t)。 int (*ioctl) (struct inode *, struct file *, unsigned int, unsigned long)。 int (*open) (struct inode *, struct file *)。 int (*aio_fsync) (struct kiocb *, int datasync)。 unsigned long (*get_unmapped_area)(struct file *, unsigned long, unsigned long, unsigned long, unsigned long)。 ssize_t (*splice_read)(struct file *, loff_t *, struct pipe_inode_info *, size_t, unsigned int)。 – 將設(shè)備按類型分類 – 將設(shè)備和對應(yīng)驅(qū)動(dòng)聯(lián)系起來 – 最小化 代碼重復(fù) – 列舉 系統(tǒng) 中所有設(shè)備,觀察其狀態(tài),查看其連接 總線 – 用樹的形式將全部設(shè)備結(jié)構(gòu)完整、有效地展現(xiàn),包括所有總線和內(nèi)部 連接 – 從 樹的葉子向根的方向依次遍歷,確保以正確順序關(guān)閉各個(gè)設(shè)備的電源。 各個(gè) Platform device 和 Platform driver掛載在虛擬總線 platform_bus上 ? 接口 定義在 linux/中。 自旋鎖( 2) ? 自旋鎖的類型是 spinlock_t ? 初始化 – spinlock_t my_spinlock = SPIN_LOCK_UNLOCKED。 ? 非 阻塞版本: – int spin_trylock(spinlock_t *lock)。 ? 讀寫鎖類型是 rwlock_t, 位于linux/ 讀寫鎖( 2) ? 初始化: – rwlock_t my_rwlock=RW_LOCK_UNLOCKED。 – void read_unlock(rwlock_t *lock)。 RCU鎖( 1) ? RCU( ReadCopy Update,讀 拷貝修改 ) 鎖機(jī)制是 。 RCU鎖( 2) ? 加鎖 : rcu_read_lock() ? 釋放鎖 : rcu_read_unlock() ? 同步 RCU鎖: synchronize_rcu()。 seqlock的定義如下: typedef struct { unsigned sequence。 如果讀者獲取了鎖,寫者依然可
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1