[北京Xunwei] i.MX6ULLターミネーターLinuxMISCドライバー実行テスト

1ドライバーをコンパイルします

前章のドライバテストプログラムと同様にMakefileファイルが必要ですが、obj-mの値がbeep_misc.oに変更されています。Makefileファイルの内容は次のとおりです。

KERNELDIR := /home/topeet/kernel/linux-imx-rel_imx_4.1.15_2.1.0_ga
CURRENT_PATH := $(shell pwd)
obj-m := beep_misc.o

build: kernel_modules
kernel_modules: 
        $(MAKE) -C $(KERNELDIR) M=$(CURRENT_PATH) modules
clean:
        $(MAKE) -C $(KERNELDIR) M=$(CURRENT_PATH) clean

まず、ターミナルに2つのコマンドを入力します(2つの環境変数を設定します)。

export ARCH=arm
export CROSS_COMPILE=arm-linux-gnueabihf-

次に、「make」コマンドを実行してモジュールをコンパイルすると、コンパイルが完了してbeep_misc.koモジュールファイルが生成されます。

2アプリケーションテストプログラムをコンパイルします

次のコマンドを入力して、アプリケーションテストプログラムをコンパイルします。
arm-linux-gnueabihf-gcc -o beep_misc_test beep_misc_test.c
コンパイルが完了すると、beep_misc_test実行可能ファイルが生成されます。

3テストを実行します

開発ボードを起動し、コンパイルされたbeep_misc.koモジュールファイルとbeep_misc_testアプリケーションを/lib/modules/4.1.15ディレクトリにコピーします(開発のルートファイルシステムに「/lib/modules/4.1.15」があるかどうかを確認します)。ボードディレクトリがない場合は、自分で作成する必要があります。開発ボードは、CDデータで提供されるbusyboxファイルシステムとCDデータ「i.MX6ULターミネータCDデータ\ 08_開発ボードシステムイメージ\ 03_file」を使用します。システムイメージ\ 01_Busyboxファイルシステム」ディレクトリ)。次のコマンドを入力して、モジュールをロードします。

depmod
modprobe beep_misc

ドライバが正常にロードされると、図3.1に示すように、/ sys / class / miscディレクトリに「miscbeep」という名前のサブディレクトリが表示されます。
ここに画像の説明を挿入

図3.1

すべてのその他のデバイスは同じカテゴリに属します。/sys/class/miscディレクトリにはその他のカテゴリのすべてのデバイスが含まれ、各デバイスはサブディレクトリに対応します。
ドライバーとデバイスが正常に一致すると、デバイスドライバーファイル/ dev / miscbeepが生成されます。次のコマンドを入力して、このファイルのメジャーデバイス番号とマイナーデバイス番号を表示します。
ls /dev/miscbeep -l
結果を図3.2に示します。
ここに画像の説明を挿入

図3.2

/ dev / miscbeepデバイスのメジャーデバイス番号が10で、マイナーデバイス番号が144であることがわかります。これは、ドライバーの設定と一致しています。
次に、beep_misc_testアプリケーションを使用して、ドライバーファイルをテストします。次のコマンドを入力して、ビープ音を開きます。ビープ音を
./beep_misc_test /dev/miscbeep 1
閉じます。次のコマンドを使用します。
./beep_misc_test /dev/miscbeep 0
ブザーを正常にオン/オフできる場合は、ドライブファイルが正しいことを意味します。
ドライバモジュールをアンインストールするには、次のコマンドを使用します。
rmmod beep_misc

ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/BeiJingXunWei/article/details/112171056