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

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

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

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

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

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

3テストを実行します

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

depmod
modprobe ap3216c_iic

ドライバーモジュールがロードされると、ap3216cドライバーがデフォルトでLinuxカーネルにコンパイルされる可能性があるため、デバイスがビジーであることを示すエラーが表示される場合があります。最初にカーネル構成でap3216c構成をコメントアウトし、一時的にモジュールを使用してテストできます。
ドライバモジュールが正常にロードされました。ap3216c_testアプリケーションテストプログラムを使用してテストします。コマンドは次のとおりです。
./ap3216c_test /dev/ap3216c &
テストプログラムはAP3216Cからデータを継続的に読み取り、端末に出力します。結果は次のとおりです。
ここに画像の説明を挿入

図3.1

次のコマンドを使用してモジュールをアンインストールします。
rmmod ap3216c_iic

ここに画像の説明を挿入

おすすめ

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