[北京Xunwei] i.MX6ULLターミネーターデバイスツリーでテストを実行しているプラットフォームドライバー

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

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

KERNELDIR := /home/topeet/kernel
CURRENT_PATH := $(shell pwd)
obj-m := led_driver.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」コマンドを実行してモジュールをコンパイルすると、コンパイル後にled_driver.koモジュールファイルが生成されます。

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

アプリケーションテストプログラムは、前章の44.3.2でコンパイルされたled_testアプリケーションプログラムを直接使用できます。

3テストを実行します

開発ボードを起動し、コンパイルされたled_driver.koモジュールファイルとled_testアプリケーションを/lib/modules/4.1.15ディレクトリにコピーします(開発のルートファイルシステムに「/lib/modules/4.1.15」があるかどうかを確認します)。ボードディレクトリがない場合は、自分で作成する必要があります。開発ボードは、CDデータで提供されるbusyboxファイルシステムとCDデータ「i.MX6ULターミネータCDデータ\ 08_開発ボードシステムイメージ\ 03_file」を使用します。システムイメージ\ 01_Busyboxファイルシステム」ディレクトリ)。モジュールをロードするには、次のコマンドを入力します後
でdepmod
のmodprobe led_driverの
ドライバが正常にロードされ、ドライバーが/ SYS /バス/プラットフォーム/ドライバ/ディレクトリに存在するかどうかをチェック我々はled_driverにled_driver(platform_driverタイプ)の名前フィールドを設定します。 .cを「imx6ul-led」に変更すると、/ sys / bus / platform / drivers /ディレクトリに「imx6ul-led」という名前のファイルが作成されます。結果を図3.1に示します。
ここに画像の説明を挿入

図3.1

同様に、図3.2に示すように、/ sys / bus / platform / devices /ディレクトリにもledデバイスファイルがあります。これは、デバイスツリーのgpioledノードです。
ここに画像の説明を挿入

図3.2

デバイスとドライバーが正常に一致すると、図3.3に示すように情報が入力されます。
ここに画像の説明を挿入

図3.3

デバイスとドライバーが正常に一致したら、led_testアプリケーションを使用してテストします。コマンドは次のとおりです。

./led_test /dev/dtsplatled 1		//打开LED灯
./led_test /dev/dtsplatled 0		//关闭LED灯

これらの2つのコマンドを使用して、LEDプラットフォームの下のデバイスとドライバーが正しいかどうかを確認します。
モジュールのアンインストールコマンド:
rmmod led_driver //卸载驱动模块

ここに画像の説明を挿入

おすすめ

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