[Armadillo:00571] Re: RTC レジスタアクセス方法
email@hidden
2005年 10月 25日 (火) 22:28:53 JST
安野です。お世話になります。
レスありがとうございます。さっそくやってみましたが、
ioctl failed
と表示されてしまいます。rtctest の下記のところです。
(最初のioctlの呼び出しのところです。デバッグコードを入れて確認しました。)
if (ioctl(fd, RTC_GETDEVTYPE, &devtype)) {
fprintf(stderr, "ioctl failed\n");
return -1;
}
・linux-2.4.31-a9-2
・atmark-dist-20051017
を使用しています。hwclock コマンドも動作しますので、
i2cも正常に動作しているようです。なにか環境設定が
悪いのでしょうか。よろしくお願いします。
> 花田です
>
> email@hidden wrote:
>
> > RTCのINT出力を使用したいと考えているのですが、
> > RTCのINTレジスタやステータスレジスタにアクセス
> > するにはどのようにすれば良いのでしょうか?
>
> 標準ではINTステータスを直接使用するためのインターフェースは用意されていません。
> なんらかの手を入れてドライバを拡張する必要があります。
>
> とりあえずINTステータスをユーザランドから操作するだけなら、
> 簡単なパッチで実現できますので、作ってみました。
> 添付のi2c-armadillo9.c.patchはlinux-2.4.31-a9-2用のパッチです。
> カーネルソースのdrivers/i2cディレクトリで
> pc# patch -p0 <i2c-armadillo9.c.patch
> という風にして、i2c-armadillo9.cにパッチをあて、
> カーネルを作り直してみてArmadillo-9のカーネルを置き換えてください。
>
> また、rtctest.cが簡単なサンプルアプリケーションです。
> このアプリケーションで、STATUSレジスタを表示できます。
> pc# arm-linux-gcc -I[カーネルソースパス]/drivers/i2c rtctest.c -o rtctest
> とすれば、rtctestという実行ファイルができます。
> これをArmadillo-9に転送して、実行してみてください。
>
> 注意点をいくつか書きます。
> ・ioctlコマンドについては、カーネルソースのdrivers/i2c/i2c-s3531a.hを
> 参照してください。
> S-3531AではRTC_GETSTATUS/RTC_SETSTATUSを、
> S-35380A/35390AではRTC_GETSTATUS1/RTC_GETSTATUS2/RTC_SETSTATUS1/RTC_GETSTATUS2
> でINTステータスの参照・操作ができます。
> ・コードを書く際は、Armadillo-9に実際に搭載されている
> RTCのデバイスタイプを意識するようにしてください。
> サンプルコードにあるように、RTC_GETDEVTYPEでS-3531か35380/35390かを
> 判断することができます。
> (35380と35390はレジスタ構造は一緒ですので、区別しません)
> ・S-3531の際はGET/SETSTATUS(1/2はつかない)を使用してください。
> S-353X0の場合、STATUS1またはSTATUS2を使用してください。
> 詳しくは書くデバイスのデータシートを参照してください。
>
>
> ____________________________________________________
>
> 花田 政弘 (はなだ まさひろ)
>
> (株)アットマークテクノ IT開発部
> TEL: 011-207-6550 FAX: 011-207-6570
> URL: http://www.atmark-techno.com/
>
> E-mail: email@hidden
> ____________________________________________________
>
armadillo メーリングリストの案内