[s5pc100] 모듈 만들기 기초. (hello 출력하기)
[s5pc100] 모듈 만들기 기초. (hello 출력하기)
[s5pc100] 모듈 만들기 기초. (hello 출력하기)
vi hello_module.c
c 프로그래밍에서 메인이 있어야 하는 형식이 있듯이, 모듈에서도 기본적이 형식이 있다.
init_module() / cleanup_module() 함수가 있다. 이름에서 알 수 있듯이 시작하는 함수와 끝나는 함수이다.
main 처럼 반드시 있어야 하는 함수이다. 헌데.. 이런 함수의 이름을 다르게 쓰고 싶은 경우.
module_init() / moduel_exit() 라는 메크로 함수가 있다. 이 함수는 인자로 받은 함수를 init_module로 연결해 주는 셈.
그래서 내 마음대로 함수를 생성하고 그 함수를 module_init(내 함수) 로 작성해 주면 init_module 처럼 작동 한다.
단, init_module() 은 리턴형이 int 이고, cleanup_module() 은 리턴형이 void 라는 점을 주의해야 한다.
따라서 내가 임의로 만들어준 함수도 같은 형식으로 만들어 주어야 한다. int 형으로 제대로 해주지 않으면
정상적으로 수행 후 이상한 문자가 출력 되는 등 문제를 일으킨다.
보드에서 모듈 추가하고 실행 결과 보기.
모듈 파일을 보드에 옮기고 보드에서 보라색 밑줄 처럼 insmod 명령으로 추가해 주면 화면이 출력.
insmod 모듈명.ko
빨간색을 보면 내 모듈이 추가되고 삭제 되는 것을 확인 할 수 있다.
lsmod
삭제는 rmmod 모듈명 이다 삭제는 .ko 없이 모듈명만 적어준다.
여기서 2가지 방식으로 나뉜다.
심볼을 공유 하느냐, 공유하지 않느냐. 아래 링크를 참조하자.
[s5pc100] 모듈 만들기 기초 (심볼 미공개, 전역 심볼 공개)
'프로그래밍. > ARM(임베디드)' 카테고리의 다른 글
[s5pc100] proc filesystem 만들어보기. 그림설명. (0) | 2011.11.04 |
---|---|
[s5pc100] 모듈 만들기 기초 (심볼 미공개, 전역 심볼 공개). 그림설명. (0) | 2011.10.31 |
[s5pc100] nfs로 보드 부팅하기. 그림 설명. (0) | 2011.10.26 |
[s5pc100] tftp로 zImage 부팅 및 적재(올리기). 그림 설명. (0) | 2011.10.26 |
[s5pc100] minicom 설치 및 설정하기. 그림설명 (0) | 2011.10.26 |