[Armadillo:00434] Armadillo-J での RTS, DTR 制御
Kenji Hirano
email@hidden
2005年 8月 4日 (木) 13:32:15 JST
お世話になっております,平野と申します.
Armadillo-J で RS-232C の RTS,DTR 制御・CTS,DSR 読取を
したいのですが,ioctl 関数がエラーを返すようです.
下記のテストプログラムを開発環境で実行すると問題なく動
作するのですが,Armadillo-J では ioctl 関数がエラーを
返します.
Armadillo-J では何か異なった処理が必要なのでしょうか?
開発環境:Fedora CORE 3
arm-elf-tools-20030314.sh
uClinux-dist-aj20050421.tar.gz
Armadillo-J:
JP1,2,3 ショート
テストプログラム(test.c)
//////////////
#include <stdio.h>
#include <termios.h>
#include <fcntl.h>
#include <sys/ioctl.h>
main()
{
int fd, serial;
int old_serial=0;
int diff;
int i;
fd = open("/dev/ttyS0", O_RDONLY | O_NOCTTY);
if (fd==-1){
printf("open error...\n");
return;
}
printf("TIOCM_LE :0x%08X\n",TIOCM_LE); // DSR (data set ready/line enable)
printf("TIOCM_DTR :0x%08X\n",TIOCM_DTR); // DTR (data terminal ready)
printf("TIOCM_RTS :0x%08X\n",TIOCM_RTS); // RTS (request to send)
printf("TIOCM_ST :0x%08X\n",TIOCM_ST); // Secondary TXD (transmit)
printf("TIOCM_SR :0x%08X\n",TIOCM_SR); // Secondary RXD (receive)
printf("TIOCM_CTS :0x%08X\n",TIOCM_CTS); // CTS (clear to send)
printf("TIOCM_CAR :0x%08X\n",TIOCM_CAR); // DCD (data carrier detect)
printf("TIOCM_CD :0x%08X\n",TIOCM_CD); // TIOCM_CAR を参照。
printf("TIOCM_RNG :0x%08X\n",TIOCM_RNG); // RNG (ring)
printf("TIOCM_RI :0x%08X\n",TIOCM_RI); // TIOCM_RNG を参照。
printf("TIOCM_DSR :0x%08X\n",TIOCM_DSR); // DSR (data set ready)
for (i=0;i<1000;i++){
if (ioctl(fd, TIOCMGET, &serial)==-1){
printf("ioctl error...\n");
close(fd);
return;
}
if (serial!=old_serial){
diff=serial^old_serial;
printf("%04d:0x%08X => 0x%08X : 0x%08X\n",i,old_serial,serial,diff);
}
usleep(200000);
old_serial=serial;
}
if (close(fd)==-1){
printf("ioctl error...\n");
return;
}
}
/////////////////
結果
////////////////
# ./test
TIOCM_LE :0x00000001
TIOCM_DTR :0x00000002
TIOCM_RTS :0x00000004
TIOCM_ST :0x00000008
TIOCM_SR :0x00000010
TIOCM_CTS :0x00000020
TIOCM_CAR :0x00000040
TIOCM_CD :0x00000040
TIOCM_RNG :0x00000080
TIOCM_RI :0x00000080
TIOCM_DSR :0x00000100
ioctl error...
////////////////
P.S.
AJ020 についてですが,開発環境は AJ010 と同様で
問題ありますか?
armadillo メーリングリストの案内