字元裝置驅動程式學習筆記一

2021-09-01 16:44:11 字數 2572 閱讀 3460

linux 驅動程式

字元裝置驅動程式

網路介面驅動程式

塊裝置驅動

字元裝置 按位元組來訪問的裝置

字元裝置驅動用來驅動字元裝置 通常實現open close read write

塊裝置unix系統一次傳輸乙個或多個512位元組

linux允許塊裝置傳送任意數目的位元組

字元裝置驅動和塊裝置驅動哪個可以隨機訪問

網路介面

通常是乙個硬體裝置(etho),也可以是乙個;軟體裝置如回環介面(lo)

驅動程式的安裝

1 模組方式

2 直接編譯進核心

1 將程式複製到核心當中drivers/char

[root@localhost char]# cp /opt/linux/examples/hello/hello.c ./

2 修改kconfig,即配置makemenuconfig選項

檢視配置選單:

[root@localhost linux-2.6.38]# make menuconfig arch=arm

[root@localhost char]# vi kconfig

新增如下**:

config hello

bool "hello"

重新檢視配置選單:

[root@localhost linux-2.6.38]# make menuconfig arch=arm

進入device drivers-->character devices

部分內容如下:

#此處可以檢視到剛才配置的選項

[ ] hello (new) │ │

│ │ -*- virtual terminal

│ │

│ │ [ ] support for binding and unbinding console drivers

│ │

│ │ [ ] /dev/kmem virtual device support

│ │

│ │ <*> led support for mini6410 gpio leds

│ │

│ │ mini6410 module sample

│ │

│ │ <*> buttons driver for friendlyarm mini6410 development

boards │ │

│ │ <*> buzzer driver for friendlyarm mini6410 development

boards │ │

│ │ [*] adc driver for friendlyarm mini6410 development boards

vg3檢視配置結果:

[root@localhost linux-2.6.38]# vi .config

部分**如下:

## character devices

#config_hello=y

config_vt=y

3 修改makefile

[root@localhost linux-2.6.38]# vi drivers/char/makefile

新增如下內容:

obj-$(config_hello) += hello.o

4 重新編譯核心

5 將zimage燒寫到開發板測試

部分啟動資訊如下:

size=0003fc00

fb3: s3cfb frame buffer device

backlight initialized

s3c6400-uart.0: ttysac0 at mmio 0x7f005000 (irq = 16) is a s3c6400/10

s3c6400-uart.1: ttysac1 at mmio 0x7f005400 (irq = 20) is a s3c6400/10

s3c6400-uart.2: ttysac2 at mmio 0x7f005800 (irq = 24) is a s3c6400/10

s3c6400-uart.3: ttysac3 at mmio 0x7f005c00 (irq = 28) is a s3c6400/10

leds initialized

buttons initialized

pwm initialized

adc initialized

hello world!

應用程式使用驅動程式

應用程式

----------------------------------------------

字元裝置 檔案系統 套接字

塊裝置檔案

----------------------------------------------

字元裝置驅動 塊裝置驅動 協議棧

網路裝置驅動

----------------------------------------------

字元裝置 塊裝置 網路介面裝置

linux 使用者程式通過裝置檔案(裝置節點)來使用驅動程式操作字元裝置和塊裝置

裝置位於/dev目錄下

linux裝置驅動程式 字元裝置驅動程式

先留個 有一起學習驅動程式的加qq295699450 字元裝置驅動 這篇比較惱火。載入成功,但是讀不出來資料,有知道怎麼回事的,留個言,一起討論下 資料結構 struct scull mem struct scull dev dev 整個驅動程式 如下 include include include...

Linux裝置驅動程式 字元裝置驅動程式

1.檢視主裝置號,次裝置號 進入 dev目錄執行ls l,第四,五列分別為主次裝置號,10,180,1,5,這些是主裝置號,而60,63這些就是次裝置號 130 shell android dev ls l crw rw r system radio 10,60 1969 12 31 21 00 a...

字元裝置驅動程式學習筆記四

竟爭與互斥 程式除錯 1 列印除錯資訊 printk 定義全域性列印 示例 如下 ifdef pdebug define plog fmt,args.printk kern debug scull fmt,args else do nothing define plog fmt,args.endif...