도와주세요!!
글 수 15,339
2002.12.02 14:08:33 (*.186.48.184)
6668
안녕하세요....
어플리케이션에서 보면
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로 뿌려주는거
: 아닌가요?
어플리케이션에서 보면
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로 뿌려주는거
: 아닌가요?