제목과 같은데요 디바이스 드라이버에서 일반 응용 프로그램과 내부 값을 주고 받으려면 어떤 방법을 써야 할까요? 예를 들어서.. c로 디바이스 드라이버의 설정값을 계속적으로 바꿔주는 프로그램을 만들고 싶다면 어떤 방법을 써야할지..
매개변수로 모듈을 등록할 때마다 설정하는 방법도 있겠지만, 프로그램을 통해서 동적으로 제어하고 싶어서요.. 대략 개념적인 설명이라도 부탁드립니다
ioctl 함수를 만들어서 사용하시죠... 아니면 디바이스 드라이버를 직접 작성하셨다면, read/write 함수를 원하시는 대로 동작하도록 수정하셔도 되구요. (물론 read/write의 일반적인 동작과는 벗어나겠지만요...)
윗 붙이 말씀하시는 방법으로 구현하시는 것도 좋은 방법입니다..
proc 파일 시스템을 사용하여 구현하는 방법도 있습니다.
유영창님이 쓰신 리눅스 디바이스 드라이버라는 책이 있는데요..
거기의 17장을 보시면 비교적 쉽게 설명이 되었습니다.
책의 예제에서는 간단하게 이런게 가능합니다.
#insmod proc_dev.o proc_dev.o는 proc에 sumpror의 하부 디렉토리를 만들고 이를 활용하는 디바이스 드라이버 입니다. test는 대략 아래와 같구요.. #echo "100" > /proc/sumproc/vall1 #echo "23" > /proc/sumproc/vall2 #cat /proc/sumproc/result result[100+23=123]
역시 자세한 설명은 책을 보시는게 좋겠습니다. ^ ^;
많은 도움이 됬습니다 감사합니다
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
ioctl 함수를 만들어서
ioctl 함수를 만들어서 사용하시죠...
아니면 디바이스 드라이버를 직접 작성하셨다면,
read/write 함수를 원하시는 대로 동작하도록 수정하셔도 되구요.
(물론 read/write의 일반적인 동작과는 벗어나겠지만요...)
proc파일 시스템을 이용하시면 구현이 됩니다.
윗 붙이 말씀하시는 방법으로 구현하시는 것도 좋은 방법입니다..
proc 파일 시스템을 사용하여 구현하는 방법도 있습니다.
유영창님이 쓰신 리눅스 디바이스 드라이버라는 책이 있는데요..
거기의 17장을 보시면 비교적 쉽게 설명이 되었습니다.
책의 예제에서는 간단하게 이런게 가능합니다.
#insmod proc_dev.o
proc_dev.o는 proc에 sumpror의 하부 디렉토리를 만들고
이를 활용하는 디바이스 드라이버 입니다.
test는 대략 아래와 같구요..
#echo "100" > /proc/sumproc/vall1
#echo "23" > /proc/sumproc/vall2
#cat /proc/sumproc/result
result[100+23=123]
역시 자세한 설명은 책을 보시는게 좋겠습니다. ^ ^;
^^
많은 도움이 됬습니다
감사합니다
댓글 달기