목차
#1 3
1. 과제 개요 3
2. 소스코드 설명 3
3. 결과 화면 4
#2 5
1. 과제 개요 5
2. 소스코드 설명 5
3. 결과 화면 6
#3 7
1. 과제 개요 7
2. 소스코드 설명 7
3. 결과 화면 8
1. 과제 개요 3
2. 소스코드 설명 3
3. 결과 화면 4
#2 5
1. 과제 개요 5
2. 소스코드 설명 5
3. 결과 화면 6
#3 7
1. 과제 개요 7
2. 소스코드 설명 7
3. 결과 화면 8
본문내용
1. 과제 개요
커널의 가상버퍼에 데이터를 쓰고 읽는 문자 디바이스 드라이버를 작성한다.
char_read() 함수를 작성 – copy_to_user() 함수 사용
char_write() 함수를 작성 – copy_form_user() 함수 이용
2. 구현 사항
linux/fs.h를 참조하여 file_operations구조체 구현 및 register_chrdev(), unregister_chrdev() 함수를 이용한 장치 드라이버 등록/해제 구현.
open, release, read, write함수 구현 read에서는 copy_to_user()함수를 이용하여 데이터전달, write에서는 copy_from_user()함수를 이용하여 데이터전달.
3. 소스코드 설명
소스1. open 및 release 함수
virtual_device_open() 함수는 처음으로 장치를 연 경우 장치를 초기화 하고 Minor번호를 확인 후 필요한 경우 file포인터를 수정한다. 그리고 참조 횟수(usage count)를 증가시킨다.
virtual_device_release() 함수는 참조 횟수를 감소시키고 만약 close하는 경우 장치를 종료한다.
소스2. write 및 read 함수
char_write()함수는 buffer를 초기화하고 copy_from_user()함수를 이용해 유저 메모리 영역에서 커널로 데이터를 복사한다(buf의 내용 -> buffer). 그리고 요구한 만큼 기록한 경우 count 값을 리턴 한다.
char_read()함수는 copy_from_user()함수를 이용해 커널에서 유저 메모리 영역으로 데이터를 복사한다 (buffer의 내용 -> buf). 그리고 요구한 만큼 읽은 경우 count값을 리턴 한다.
커널의 가상버퍼에 데이터를 쓰고 읽는 문자 디바이스 드라이버를 작성한다.
char_read() 함수를 작성 – copy_to_user() 함수 사용
char_write() 함수를 작성 – copy_form_user() 함수 이용
2. 구현 사항
linux/fs.h를 참조하여 file_operations구조체 구현 및 register_chrdev(), unregister_chrdev() 함수를 이용한 장치 드라이버 등록/해제 구현.
open, release, read, write함수 구현 read에서는 copy_to_user()함수를 이용하여 데이터전달, write에서는 copy_from_user()함수를 이용하여 데이터전달.
3. 소스코드 설명
소스1. open 및 release 함수
virtual_device_open() 함수는 처음으로 장치를 연 경우 장치를 초기화 하고 Minor번호를 확인 후 필요한 경우 file포인터를 수정한다. 그리고 참조 횟수(usage count)를 증가시킨다.
virtual_device_release() 함수는 참조 횟수를 감소시키고 만약 close하는 경우 장치를 종료한다.
소스2. write 및 read 함수
char_write()함수는 buffer를 초기화하고 copy_from_user()함수를 이용해 유저 메모리 영역에서 커널로 데이터를 복사한다(buf의 내용 -> buffer). 그리고 요구한 만큼 기록한 경우 count 값을 리턴 한다.
char_read()함수는 copy_from_user()함수를 이용해 커널에서 유저 메모리 영역으로 데이터를 복사한다 (buffer의 내용 -> buf). 그리고 요구한 만큼 읽은 경우 count값을 리턴 한다.
추천자료
[생명공학][생명공학 특허][생명공학사업]생명공학의 정의, 생명공학의 기술, 생명공학 관련 ...
[생명공학][생명공학기술]생명공학의 정의, 생명공학의 발전양상, 생명공학의 시장규모, 선진...
[생명공학][생명공학기술][생명공학산업][바이오][생물산업]생명공학의 정의, 특징, 중요성, ...
[기술자][자원공학기술자][자동차기술자][전기공학기술자][정보처리기술자][조경기술자][자원...
BT(생명공학, 바이오기술)의 배경과 융합기술, BT(생명공학, 바이오기술) 발명특허, BT(생명...
[소프트웨어공학][소프트웨어공학 개발공정][테스트]소프트웨어공학의 개념, 소프트웨어공학...
[공학][전자공학][통신공학][기계공학][조직공학][인체공학][소프트웨어공학][환경공학][전자...
[전자공학][교과과정][반도체][집적회로(IC)][증폭기][제어시스템]전자공학의 발전, 전자공학...
[공학][제조공학][재료공학][섬유공학][조직공학][전자공학][통신공학][소프트웨어공학][제조...
[섬유공학][대한섬유공업연구회][섬유공학회지][텐셀섬유]섬유공학의 역사, 섬유공학의 교육...
[미래기술, 미래기술과 사회변화, 미래기술과 생물공학, 열공학, 신소재공업, 건설기술]미래...
[BIT, BT 생명공학기술 IT 정보통신기술 융합]BIT(BT 생명공학기술 IT 정보통신기술 융합)의 ...
[방통대 교육공학] 교육공학에 대한 교육공학자들의 정의를 참고하여 자기 자신 나름대로의 ...
소개글