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

正文內(nèi)容

linux字符設(shè)備驅(qū)動(dòng)程序培訓(xùn)教材(已改無(wú)錯(cuò)字)

2023-04-01 16:57:46 本頁(yè)面
  

【正文】 xx_write(struct file *fil p, const char __user *buf , size_t count ,loff_t *f_pos) { ... copy_from_user(..., buf, ... )。 ... } 字符設(shè)備驅(qū)動(dòng)程序基本結(jié)構(gòu) ioctl函數(shù) 為設(shè)備驅(qū)動(dòng)程序執(zhí)行“命令”提供了一個(gè)特有的入口點(diǎn) 用來(lái)設(shè)置或者讀取設(shè)備的屬性信息。 int ioctl (struct inode *inode, struct file *filp, unsigned int cmd, unsigned long arg)。 事先定義的 IO控制命令 代碼 arg為對(duì)應(yīng)于 cmd命令的參數(shù) 字符設(shè)備驅(qū)動(dòng)程序基本結(jié)構(gòu) cmd 參數(shù)的定義 不推薦用 0x1, 0x2, 0x3之類的值 Linux對(duì) ioctl()的 cmd參數(shù)有特殊的定義 構(gòu)造命令編號(hào)的宏: _IO(type, nr)用于構(gòu)造無(wú)參數(shù)的命令編號(hào); _IOR(type, nr, datatype)用于構(gòu)造從驅(qū)動(dòng)程序中讀取數(shù)據(jù)的命令編號(hào); _IOW(type, nr, datatype)用于寫入數(shù)據(jù)的命令; _IOWR(type, nr, datatype)用于雙向傳輸。 type和 number位字段通過(guò)參數(shù)傳入,而 size位字段通過(guò)對(duì) datatype參數(shù)取 sizeof獲得。 設(shè)備類型( type) 序列號(hào)( number) 方向( direction) 數(shù)據(jù)尺寸( size) 8bit 8bit 2bit 13/14bit 字符設(shè)備驅(qū)動(dòng)程序基本結(jié)構(gòu) ? Ioctl函數(shù)模板 int xxx_ioctl( struct inode *inode, struct f ile *filp, unsigned int cmd, unsigned long arg) { ... switch (cmd) { case XXX_CMD1: ... break。 case XXX_CMD2: ... break。 default: ///*不能支持的命令 */ return ENOTTY。 } return 0。 } 階段總結(jié) 階段總結(jié) 添加驅(qū)動(dòng)程序到內(nèi)核 配置內(nèi)核 編譯內(nèi)核 添加驅(qū)動(dòng)程序到內(nèi)核中 添加驅(qū)動(dòng)程序到內(nèi)核 配置內(nèi)核 ? 配置命令包括 : make config make menuconfig make xconfig make gconfig 可通過(guò)“上”、“下”、“左”、“右”鍵移動(dòng)菜單,選擇某項(xiàng)按“ Y” ,取消 選擇按“ N” ,如果選擇某項(xiàng)編譯為模塊按“ M”, 進(jìn)入子菜單按“ Enter”, 返回 上一級(jí)菜單按 “ Esc” 使用 make config、 make menuconfig等命令后,會(huì)生成一個(gè) .config配置文件 (是 隱身文件,通過(guò) ls – a才能看到 ) 添加驅(qū)動(dòng)程序到內(nèi)核 編譯內(nèi)核 可用如下命令編譯內(nèi)核 : make ARC=arm CROSS_COMPILE=armlinux zImage 源代碼根目錄的 Makefile中將 ARCH和 CROSS_COMPILE直接指定為 arm和 armlinux,如: 這樣就沒(méi)有必要每次編譯的時(shí)候都指定體系結(jié)構(gòu)和交叉編譯器了 ,只須使用下面命令就可以了: make zImage ARCH ?= arm CROSS_COMPILE ?= armlinux 添加驅(qū)動(dòng)程序到內(nèi)核 添加驅(qū)動(dòng)程序到內(nèi)核 Linux 3個(gè)部分組成。 Makefile: 分布在 Linux內(nèi)核源代碼中的 Makefite 定義 Linux內(nèi)核的編譯規(guī)則 配置文件 (Kconfig):給用戶提供配置選擇的功能。 配置工具: 包括配置命令解釋器 (對(duì)配置腳本中使用的配置命令進(jìn)行解釋 ) 配置用戶界面 (提供字符界面和圖形界面 )。 這些配置工具都是使用腳本語(yǔ)言編寫的,如 Tcl/TK、 Perl等。 在 Linux內(nèi)核中增加程序需要完成以下 3項(xiàng)工作。 將編寫的源代碼復(fù)制到 Linux內(nèi)核源代碼的相應(yīng)目錄。 在目錄的 Kconfig文件中增加新源代碼對(duì)應(yīng)項(xiàng)目的編譯配置選項(xiàng)。 在目錄的 Makefile文件中增加對(duì)新源代碼的編譯條目。 添加驅(qū)動(dòng)程序到內(nèi)核 實(shí)例: 在內(nèi)核源代碼 drivers目錄下為 ARM體系結(jié)構(gòu)新增 test driver test driver的樹形目錄: 步驟: 拷貝 test到 drivers路徑下 為新增目錄創(chuàng)建 Kconfig和 Makefile 修改新增目錄父目錄的 Kconfig和 Makefile,以便新增的 Kconfig和 Makefile能夠被引用 在 arch
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1