[Armadillo:00435] Re: Armadillo-J での RTS, DTR 制御

nakai email@hidden
2005年 8月 4日 (木) 17:41:19 JST


中井です。

> Armadillo-J で RS-232C の RTS,DTR 制御・CTS,DSR 読取を
> したいのですが,ioctl 関数がエラーを返すようです.
> 
> 下記のテストプログラムを開発環境で実行すると問題なく動
> 作するのですが,Armadillo-J では ioctl 関数がエラーを
> 返します.
> 
> Armadillo-J では何か異なった処理が必要なのでしょうか?
> if (ioctl(fd, TIOCMGET, &serial)==-1){
> printf("ioctl error...\n");
> close(fd);
> return;
> }

Armadillo-Jのシリアルドライバでは、TIOCMGETには対応していないようです。
ドライバのソースは linux2.4.x/drivers/char/serial_netarm.c の1469行目。

制御線を個別に制御・読取りしたい場合は、直接PORTAレジスタを
たたいてみてはどうでしょう?uClinuxなのでアプリケーションからも
読込むことは可能です。
PORTAレジスタに関する情報は、「HardwareManual 6.1」を参照してください。

または、ドライバにTIOCMGETを実装するというのも考えられます。
こちらは、get_modem_info()、set_modem_info()関数を作成すれば実現できます。

フロー制御をONにしたいだけの場合は、termiosで設定することができます。
 
> P.S.
> AJ020 についてですが,開発環境は AJ010 と同様で
> 問題ありますか?

開発環境は同じです。
userlandが新しくなった程度です(ソフトウェア側では)。

以上。



armadillo メーリングリストの案内