검색어 입력폼

임베디드 소프트웨어 - 시스템콜

저작시기 2009.09 |등록일 2010.02.20 한글파일한글 (hwp) | 16페이지 | 가격 2,000원

소개글

본 레포트는 임베디드 리눅스 소프트웨어에서 시스템콜을 만드는 방법을
소스코드와 캡춰화면을 포함하여 작성하였습니다.
시스템콜의 공통적인 기초 부분을 서술하였습니다.
타겟보드는 EMPOS-2이며, 리눅스 커널 2.6.4를 이용하였습니다.

목차

1. LED버튼 디바이스 드라이버 응용
2. SYSTEM CALL 함수의 등록
3. LED 시스템 콜 함수
4. 7 Segment 시스템 콜 함수
5. Text LCD 시스템 콜 함수

본문내용

버튼 디바이스 드라이버에서 일정한 간격으로 버튼이 눌렸는지 알기 위해 타이머를 사용하여
버튼이 눌렸을 때 어플리케이션 프로그램으로 시그널을 보낸다.
어플리케이션의 main()함수에서 시그널을 받기 위해 signal()함수를 사용하여 준비상태로 만들어
놓고 write() 함수를 이용하여 어플리케이션의 프로세스 ID를 넘겨주어, 디바이스 드라이버에서
이 아이디를 사용하여 시그널을 보내게 된다. 프로그램에서는 반복 루프를 돌다가 시그널이 들어
오면 usrsignal() 함수가 호출되며 그곳에서 read하여 버튼의 값을 알고, 그 값에 대한 동작을
수행한다.
라. minicom에서의 실행 과정
버튼에 따라 LED가 동작하는 프로그램으로써, 버튼과 LED의 드라이버가 모두 등록이 되어 있어야
한다. insmod와 mknod를 이용하여 모두 등록이 완료되면 위의 소스코드의 응용 프로그램에서
버튼에 따라 LED가 점등되는 것을 확인할 수 있다.
2. System Call 함수의 등록
레포트 문항 2, 3, 4번의 system call 함수 등록과정이 모두 동일하여 하나로 묶어 진행하였습니다.
가. 시스템 호출 함수에 번호 할당
include/asm-arm/unistd.h 파일에 새로운 시스템 호출 함수를 등록한다. 타겟보드의 커널은 최대
255개 번호로 정의 되어 있으며 새로운 시스템호출 함수는 226번 이후로 지정한다.
나. 시스템 호출 테이블에 등록
arch/arm/kernel/calls.S 파일의 시스템 호출 테이블에 함수를 등록한다. 시스템 호출 번호와 테이블
내의 동일한 위치에 있어야 하며 호출 함수에는 sys_의 접두어를 붙여 표현한다.
다. 커널 위치에 실제 함수 작성
arch/arm/kernel/ 안에 실제 호출 함수를 구현한다.
라. 커널 소스 위치에 Makefile 수정
마. 수정된 커널을 컴파일하고 타겟보드에 퓨징한다.
수정된 커널을 make 과정을 통하여 컴파일을 수행하여 zImage 파일을 생성하고 tftp를 이용하여
전송 후 퓨징 한다.
3. LED 시스템 콜 함수 응용 작성
가 - 1. 시스템 콜 함수
eomled.c
#include
#include
다운로드 맨위로