[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 メーリングリストの案内