Study 55

Makefile

Makefile 작성법 Macro 구문 규칙 # - > 주석처리 \ -> 여러행 사용시 ${ } 매크로 사용시 : 정의되지 않은 매크로 사용시 null 문자열로 치환 중복된 정의는 최후에 정의된 매크로를 사용한다. NAME = stringA NAME = stringB ${NAME} #string B로 치환 재귀적 확장 매크로 A = $(B) BB B = $(C) CC C = D @echo ${A} #D CC BB 를 출력 단순 확장 매크로 a := $(b) bb b := $(c) cc c := d @echo ${a} #bb를 출력 주의 사항 문자열에 " "를 포함하면 문자열의 일부로 인식 NAME = "string" ${NAME} #string이 아니라 "string"을 의미한다. 매크로 이름 앞에 ta..

Study 2008.11.24

Autotools

Software souce code를 다양한 unix 시스템에 적용시키기 위해 자동으로 설정을 해주는 shell script(configure)를 만들어 내는 일련의 package - autoconf, automake, autoheader... autoconf hello.c 작성 #include int main(){ printf("hello world!\n"); return 0; } Makefile.in 작성 all : hello clean : -rm -rf hello configure.ac 작성 AC_PREREQ(2.57) AC_INIT(hello, 0.0.1, dsct1472@hanmail.net) AC_PROG_CC AC_PROG_CPP .... AC_CONFIG_FILES([Makefile]) A..

Study 2008.11.24

Linux Device Driver

/dev -> 제어. linux/Documentaion/devices.txt (/root/work/bsp/wenders/linux/Documentation/devices.txt) -> 예약된 디바이스 주번호등 확인. $ mknod /dev/bit_test c 240 1 -> char형으로 주번호 부번호 | 주번호자리에 0넣으면 자동으로 넣어줌(배포, 다른컴에 넣을때) $ dmesg -> insmod나 rmmod시 등록됫나 확인. printk -> 꼭 "\n"을 넣어줄것. gcc 2.95.3 -> 안정화 버전 --방화벽 off-- $ vim /etc/selinux/config -> disable로 변경 $ iptables -F ->packet filtering (회사내것만 설정하고 시작) $ service..

Study 2008.11.24

device driver

디바이스 파일 만들기 $ mknod /dev/(장치파일이름) devicetype 주번호 부번호 삭제시, rm -rf /dev/(장치파일이름) 모듈용 Makefile (linux version 2.6) $ vi Makefile obj-m := basicmem.o KDIR := /lib/modules/$(shell uname -r)/build all: make -C $(KDIR) SUBDIRS=$(PWD) modules clean: rm -rf *.o *.ko *.mod *.mod.* I/O 메모리 영역 확인 $ cat /proc/iomem 디바이스 파일 만들기 $ mknod /dev/(장치파일이름) devicetype 주번호 부번호 삭제시, rm -rf /dev/(장치파일이름) 모듈용 Makefile (l..

Study 2008.11.24