字元裝置之globalmem

2021-07-10 16:58:27 字數 537 閱讀 1883

首先推薦一篇博文:

然後寫寫我遇到的困難與收穫吧。

1. make冒出來的第乙個錯誤就是找不到asm/system.h檔案,

因為在3.3.0之後的核心版本中asm/system.h檔案被asm/switch_to.h檔案代替啦~\(≧▽≦)/~啦啦啦。

2. ioctl(),unlocked_ioctl(),compat_ioctl()之間的區別,

具體就不細講啦,只是在2.6.11版本的核心中取消了ioctl(),因此file_operations中再對ioctl()賦值就會報錯嘍。

3. kmalloc()與kfree()函式如果報錯顯示不能用,那需要包含linux/slab.h檔案。

4. 在模組載入或者向裝置中寫入時,需要注意裝置的許可權(⊙o⊙)哦。

命令sudo可以幫上很多忙。

5. 或者利用  chmod 777 檔名   命令直接將檔案許可權修改到全部可讀可寫可執行。

6. 檔案file、裝置cdev、還有檔案操作fops之間的關係很重要,不過我還沒有理太清(*^__^*) 嘻嘻,繼續努力!

字元裝置驅動 globalmem 宋寶華第6章

1.在模組的載入中要實現裝置號的申請與cdev的註冊。先用int register chrdev region dev t from,unsigned count,const char name 或者int alloc chrdev region dev t dev,unsigned basemin...

globalmem虛擬裝置例項描述 二

globalmem意味著 全域性記憶體 在globalmem字元驅動中會分配乙個大小為globalmem size 4kb 的記憶體空間,並在驅動中提供對該片記憶體的讀寫 控制 和定位函式,以供使用者空間的程序通過呼叫linux系統函式訪問這片記憶體。本驅動程式使用檔案私有資料,filp priva...

Linux裝置驅動之《字元裝置驅動》

linux裝置中最大的特點就是裝置操作猶如檔案操作一般,在應用層看來,硬體裝置只是乙個裝置檔案。應用程式可以像操作檔案一樣對硬體裝置進行操作,如open close read write 等。下面是乙個字元裝置驅動程式的簡單實現test.c 模組分析 1.初始化裝置驅動的結構體 struct fil...