01.01.2015 Views

device_driver-08.pdf(1.9MB)

device_driver-08.pdf(1.9MB)

device_driver-08.pdf(1.9MB)

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

초기화와 종료 처리<br />

255<br />

I/O 메모리 영역의 경쟁 처리 함수<br />

<br />

<br />

<br />

PCI나 기타 내부적으로 I/O 제어를 위해 메모리 영역을 사용하는<br />

경우<br />

I/O 메모리 영역의 경쟁 문제를 해결할 수 있도록 함수 제공<br />

#include 필요<br />

• check_mem_region() : 등록된 자원인가를 확인<br />

• int check_mem_region(unsigned long from, unsigned long extent);<br />

• request_mem_region() : 자원을 등록<br />

• void request_mem_region(unsigned long from, unsigned long extent,<br />

const char *name);<br />

• release_mem_region() : 등록된 자원을 제거<br />

• void release_mem_region(unsigned long from, unsigned long extent);<br />

http://eoslab.ssu.ac.kr<br />

Linux Device Driver<br />

초기화와 종료 처리<br />

256<br />

읽기와 쓰기의 구현<br />

<br />

디지털 입출력을 처리하는 디바이스 파일 “/dev/dio”에 데이터를<br />

써넣거나 읽을때의 처리<br />

int fd;<br />

char buff[128];<br />

fd = open(“/dev/dio”, O_ RDWR | O_ NDELAY);<br />

…<br />

read(fd, buff, 16);<br />

…<br />

write(fd, buff, 32);<br />

…<br />

close(fd);<br />

http://eoslab.ssu.ac.kr<br />

Linux Device Driver

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!