2016-12-13 14 views
0

私はカーネル開発のドライバで新たなんだと私は、このモジュール情報使用して、Linuxカーネルモジュールを開発しようとしている:使用してパルス幅変調(PWM)インタフェース

http://lxr.free-electrons.com/source/drivers/pwm/pwm-tiehrpwm.c

をしかし、私はそれを使用する方法を理解していませんでした。どのようにしてこのモジュールを適合させることができるか、ehrpwm_pwm_config、ehrpwm_pwm_enableのようなこのファイルに含まれる関数を使って新しいモジュールを作成する方法?

PS:私はsysfsを使いたくないので、プログラムでpwm信号を設定します。私はDebianディストリビューションを実行するBeaglebone Blackボードとcape-universalnを使用しています。あなたがお使いのLinuxカーネルのご.configファイルにCONFIG_PWM_TIEHRPWMを有効にする必要があり

おかげ

答えて

0

。デフォルトではCONFIG_PWM_TIEHRPWM is not setで、CONFIG_PWM_TIEHRPWM=y、カーネルイメージの一部として構築する場合はCONFIG_PWM_TIEHRPWM=y、またはLKMとしてビルドする場合は、CONFIG_PWM_TIEHRPWM=mとして有効にする必要があります。その後

、としてあなたのモジュールをmake -j12としてカーネルを構築し、insmod:あなたはLKMとしてそれを構築した場合

#insmod /lib/modules/$uname -r/drivers/pwm/pwm_tiehrpwm.kopwmの設定方法については、Linux kernel documentationをチェックしてください!

+0

@ sachinmokashi.Iはすでにこのステップを行っていました。このモジュールは、カーネルに成功してロードされます。私の声はどうすれば使えるのですか?私はLinuxのドキュメントをチェックしていますが、明確に説明されていません。私は別のモジュールでそれをインスタンス化する方法とそこで定義された関数を使用する方法を知らない。あなたはいくつかのヒントを持っていますか? – dczanella

+0

別のモジュールの関数を使用するには、EXPORT_SYMBOL_GPL()マクロを使用する必要があります。 Linuxカーネルプログラミングの理解を深めるために[link](http://free-electrons.com/doc/books/ldd3.pdf)を読むことをお勧めします –

+0

このモジュールを再コンパイルして、それぞれにEXPORT_SYMBOLを含める必要があります私が使用したい機能です。この構造は何を意味しますか? static const struct pwm_ops ehrpwm_pwm_ops = {...}ファイルの417行目 この構造体はどのように機能しますか?私はそれがこの機能を呼び出すことが可能であると考えていました。 – dczanella

関連する問題