[Armadillo:03000] Re: Armadillo-500 leds-armadillo5x0をmodprobeできません。
Yasushi SHOJI
email@hidden
2008年 6月 16日 (月) 19:26:45 JST
At Mon, 16 Jun 2008 18:52:59 +0900,
g-kihara wrote:
>
> > a500 startup guideの「9.1 LED」は参考になりますか?
>
> これはすでに動作確認を行いました。
> しかし、これだけではとても開発に着手できません。
> 私は、Armadillo-500のボード上のデバイスへの
> アクセスの仕方、制御の仕方をしりたいのです。
ごめんなさい。gpioの制御方法のマニュアルは、後述するi.MX31のデータシー
トしかありません。leds-armadillo5x0.c::armadillo5x0_led_set()にある
mxc_set_gpio_direction()や、
mxc_set_gpio_dataout()
が、GPIOにアクセスするための関数です。本体は
arch/arm/plat-mxc/gpio.c
にあります。参考にしてください。
> > atmark-dist/vendors/AtmarkTechno/Armadillo-500/usr/bin/ledctrl
> >
> > がこのドライバを使用するスクリプトになっています。
>
> 以前に紹介していただいて、このスクリプトを読んでみました。
>
> 私が今、行いたいのは、
> developers guideのP43-44のデバイスドライバのサンプルソフトmesseage.c
> をベースにして、Armadillo-500上のLEDランプを制御させてみたいのです。
> たとえば、
> echo 0xff > /dev/デバイスファイル名
> などとすれば、すべてのランプが点灯する。
> また、スイッチを扱うのであれば、
> スイッチがONされている状態で、
> cat < /dev/デイバスファイル名
> を行えば、コンソールに
> Switch ON
> と表示させる、といったことを行ってみたいのです。
leds-armadillo5x0.cでは、LEDへのアクセスを特殊なものにしないために、
Linuxのフレームワーク「led class」を使っています。そのため、device
fileではなく sysfsがエントリーポイントになっています。このsysfsからの
アクセスは、ドライバ内の関数
armadillo5x0_led_set()
に入ってきます。つまり、この関数がボード上にあるLEDへ実際にアクセス
しているところになります。
もし、device fileをエントリーポイントにするのであれば、message.cの
message_read()にarmadillo5x0_led_set()の中身を書いてみたらどうでしょう
か?
> LEDランプと接続されているポートがあるとおもうのですが、
> そのポートのアドレスへのアクセスの仕方などが知りたいのです。
> どうやって入出力を決定するのか?など。
> なにか簡単なLEDランプ制御プログラムの紹介があると助かるのですが。
i.MX31のデータシートにすべて記載されているので、a500のマニュアルで
説明をくりかえしていません。ごめんなさい。
i.MX31のリファレンスマニュアル[1]のチャプター5が GPIOになっています。
[1] http://download.atmark-techno.com/armadillo-500/document/datasheet/MCIMX31RM_v2.3.pdf
i.MX31は多くの要求に少ないピンで対応するために、IOがマルチプレクスされ
ています。チャプター4でその説明がありますので、GPIOの説明の前に一読す
ることをお勧めします。
最近リリースしたのですが、フォーリンクシステムズさんで a500を使った
セミナー[2]をやっています。
[2]: http://www.atmark-techno.com/news/events/20080627_4linkseminor
セミナーは a500でLEDとスイッチのボードを制御する内容がありますので、目
的の内容になっているのではないかと思います。ご検討ください。
--
yashi
armadillo メーリングリストの案内