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