안녕하세요....

어플리케이션에서 보면

if ( argc >= 2 )
{
switch ( argv[1][0] )
{
case 'r' :
rtn = read( dev, buf, 1 );
if ( rtn < 0 ) printf( "Read Error
" );
else printf( "Read %x
", buf[0] );
break;
case 'w' :
if ( argc == 3 )
{
buf[0] = atoi( argv[2] );
write( dev, buf, 1 );
printf( "Write %x
", buf[0] );
}
break;
}
}


: 이런식으로 뜨고
: ./test_app w을 하면
:
: DEVICE OPEN
: DEVICE CLOSE

===>> ./test_app w 120 <<=== ./test_app w 숫자

이렇게 하면.. LED 출력이 되게 프로그램이 되어 있습니다...

: 근데 ./test_app r을하면
:
: DEVICE OPEN
: READ 숫자
: DEVICE CLOSE

====>> ./test_app r 은 스위치 입력에 대한 값입니다..

제가 TEST 한 것을 그렙한 것입니다..참고하세요..

[root@ezboard nfs]$ mknod /dev/SAMPLE_IO c 190 0 <<==== 장치 드라이버 등록
[root@ezboard nfs]$ insmod io.o <<==== 모듈 적재
register device Sample IO V01 OK

[root@ezboard nfs]$ ./test_app w 120 <<==== LED 출력
SAMPLE_IO OPEN
Write 78
SAMPLE_IO CLOSE

[root@ezboard nfs]$ ./test_app w 255 <<==== LED 출력
SAMPLE_IO OPEN
Write ff
SAMPLE_IO CLOSE

[root@ezboard nfs]$ ./test_app w 0 <<==== LED 출력
SAMPLE_IO OPEN
Write 0
SAMPLE_IO CLOSE

[root@ezboard nfs]$
[root@ezboard nfs]$ ./test_app r <<==== 임의의 스위치를 누른상태에서 실행
SAMPLE_IO OPEN
Read f6
SAMPLE_IO CLOSE
[root@ezboard nfs]$ ./test_app r <<==== 임의의 스위치를 안누른상태에서 실행
SAMPLE_IO OPEN
Read fe
SAMPLE_IO CLOSE
[root@ezboard nfs]$ ./test_app r <<==== 임의의 스위치를 누른상태에서 실행
SAMPLE_IO OPEN
Read de
SAMPLE_IO CLOSE
[root@ezboard nfs]$ ./test_app r <<==== 임의의 스위치를 안누른상태에서 실행
SAMPLE_IO OPEN
Read fe
SAMPLE_IO CLOSE
[root@ezboard nfs]$ Sample IO Interrupt 1 <<==== 인터러트 관련 스위치를 눌렀을 때
Sample IO Interrupt 1
Sample IO Interrupt 1
Sample IO Interrupt 1
[root@ezboard nfs]$


그럼 ... 이만....


최영철 wrote..
: io메모리 영역 등록다 했어여..
: 근데 ./test_app r을하면
:
: DEVICE OPEN
: READ 숫자
: DEVICE CLOSE
:
: 이런식으로 뜨고
: ./test_app w을 하면
:
: DEVICE OPEN
: DEVICE CLOSE
:
: 이렇게만 뜨고 LED가 켜지거나 꺼지는게 없거든요
: 실행을 시키면 어떻게 동작이 되어야 정상인건지..
: 스위치(특정스위치)를 누르면 인터럽트 1이 출력되고요
: LED가 켜지도록 스위치를 눌러서 값을 입력받고 그 값을 LED로 뿌려주는거
: 아닌가요?