5.1 介紹
註冊裝置使用結構體platform_device,該結構體在標頭檔案「vim include/linux/platform_device.h」中(kernel3.0路徑中)
5.2 新增裝置到平台匯流排(模仿led驅動)
vim arch/arm/mach-exynos/mach-itop4412.c進入平台檔案。
在裡面查詢巨集定義「leds_ctl」,仿照著leds**在它前面新增乙個裝置「hello_ctl」
在kconfig 中新增「hello_ctl」巨集
到 menuconfig 中將其配置上。
接著再次開啟「arch/arm/mach-exynos/mach-itop4412.c」平台檔案,再搜尋
「leds_ctl」, 查詢到裝置初始化的**,仿照著寫。
編譯核心,燒寫到開發板。開發板啟動之後,使用命令「ls /sys/devices/platform/」可以檢視到新註冊的 hello 裝置。
詳細步驟:
1)cd /home/topeet/android4.0/itop4412_kernel_3.0
vim arch/arm/mach-exynos/mach-itop4412.c
輸入 /leds,查詢定位。仿照led寫hello的。—定義乙個結構體變數
2) 下滑,再搜尋leds,
新增config hello_ctl
tristate 「enable hello config」
default y
help
enable hello config
4) make menuconfig 的drivers,char 核實該裝置是否選上
5) make zimage編譯好後將arch/arm/boot 的zimage拷貝到platform-tools資料夾
6) 開啟開發板,fastboot;
7) 開啟cmd 1.fastboot.exe flash kernel zimage
2. fastboot.exe reboot
8) 在開發板中使用命令「ls /sys/devices/platform/」可以檢視到新註冊的 hello 裝置。
四 註冊裝置
註冊裝置的結構體platform device位於linux目錄中的include linux,使用命令 vim include linux platform device.h 開啟 platform device 所在檔案。struct platform device name代表裝置名稱,通過l...
裝置註冊 驅動註冊以及雜項裝置註冊之間的關係
1.裝置宣告是在平台檔案 home leizi android itop4412 kernel 3.0 arch arm mach exynos mach itop4412.c中,如下圖,並且裝置名稱是led two.核心編譯之後,s3c device leds ctl被註冊到核心中,並不名稱是le...
字元裝置的註冊
核心中每個字元裝置都對應乙個 cdev 結構的變數,下面是它的定義 struct cdev 乙個 cdev 一般它有兩種定義初始化方式 靜態的和動態的。靜態記憶體定義初始化 struct cdev my cdev cdev init my cdev,fops my cdev.owner this m...