字元裝置驅動 LED型

2021-09-11 20:50:42 字數 837 閱讀 4888

字元驅動程式—對於led型別的字元裝置驅動函式編寫

1)建立乙個file_operation結構體,裡面會有點燈操作的各個硬體操作函式

2)編寫乙個drv_init 函式

3)要對drv_init函式進行修飾為入口函式,告訴核心,載入驅動時進行掛接

4)有init函式,那麼也會有出口函式exit

module_exit修飾出口函式

4)硬體操作

看原理圖確定引腳

微控制器操作硬體位址

驅動程式操作核心位址

可以用次裝置號來控制開啟哪乙個燈

載入 insmod

解除安裝 remmod

手動加裝置號

mknod /dev/*** c 111 0

=>裝置名 c:字元裝置 111:主裝置號 0:次裝置號

cat /proc/device 可以看空缺

「自動加裝置號」

(使用者空間-》核心空間)使用者程式傳進來驅動的值 用copy_from_user

(核心空間->使用者空間) 用copy

kerndir = (核心目錄)

all:

make -c (kern_dir) m=『pwd』 modules

==> make -c (kern_dir) ⇒ 會轉移到kerndir 目錄下執行makefiel

==》m= pwd 當前目錄是什麼? modules:目標

clean

make -c (kern_dir) m=『pwd』 modlues clean

rm -rf modules.order

obj -m +=first_drv.o

LED字元裝置驅動

一 實驗環境 開發機環境 作業系統 ubuntu 10.10 交叉編譯環境 arm linux gcc 4.4.1,安裝位置 usr local arm 4.4.1 6410板子核心原始碼路徑 work linux 2.6.36.2 v1.05 目標板環境 ok6410 a linux2.6.36 ...

字元裝置驅動 Led

驅動檔案 使用linux3.2.81核心 include include include include include include include include include include include static struct class ledsdrv class 類結構體 st...

字元裝置驅動 LED驅動程式

int main open sys.open led.open write sys.write led.write 第一步 驅動功能實現 static int first drv open struct inode inode,struct file file static ssize t firs...