Microsoft PowerPoint - 06_(Linux)_(Fundamental)_C_Programming
|
|
- 태평 진
- 5 years ago
- Views:
Transcription
1 GNU/Linux 리눅스 C 프로그래밍 (Linux C programming) Seo, Doo-Ok Clickseo.com clickseo@gmail.com
2 목 차 GNU 프로젝트 LLVM 프로젝트 2
3 GNU 프로젝트 GNU 프로젝트 GCC GDB GNU make LLVM 프로젝트 3
4 GNU 프로젝트 GCC (GNU Compiler Collection) 4
5 GCC GCC(GNU Compiler Collection) : gcc.gnu.org GNU C Compiler 1987년 5월, 리처드스톨만 (Richard Stallman) GNU 프로젝트의컴파일러로작성» 1987년 3월, GCC 0.9 (first beta release)» 1987년 5월, GCC 1.0» 1987년 12월, C++ 컴파일러확장 GCC (g++) GNU Compiler Collection 대부분의유닉스계열운영체제의표준컴파일러로채택 GNU 운영체제의공식컴파일러그리고 GNU/Linux 및 BSD 계열운영체제 공식지원언어» C(gcc), C++(g++), Objective-C, Fortran(gfortran), Ada(GNAT), Go(gccgo)» Java(gcj) : GCC 7.1 버전부터지원중단 2018년 1월, GCC 7.3 GNU General Public License(GNU GPL) 2007년 10월, GCC 부터 GPLv3 5
6 gcc : 컴파일과정 gcc : 컴파일과정 (1/3) 프로그램을차례로실행시키는툴 일반적으로 gcc 를컴파일러라고한다. 소스파일을이용해실행파일을만들때까지필요한프로그램을차례로실행시키는툴이다. xxx.c 전처리 ccp xxx.i 컴파일 xxx.s 어셈블 xxx.o cc1 as 링크 ld a.out 원시파일 (Source File) 전처리된파일어셈블리어파일오브젝트파일실행파일 [clickseo@localhost ~]$ gcc hello.c [clickseo@localhost ~]$./a.out Hello World!!! 6
7 gcc : 파일확장자 gcc : 컴파일과정 (2/3) gcc 는파일확장자에따라처리방법이다르다. 대표적인확장자 :.c gcc 로전처리기, 컴파일, 어셈블, 링크과정을거쳐야실행파일이완성 확장자 종류 처리방법.c C, 원시파일 (Source File) gcc 로전처리, 컴파일, 어셈블, 링크.cc.cpp C++, 원시파일 (Source File) g++ 로전처리, 컴파일, 어셈블, 링크.i 전처리된 c 소스코드 gcc 로컴파일과어셈블, 링크.ii 전처리된 c++ 소스코드 g++ 로컴파일과어셈블, 링크.s 어셈블리어로된파일 어셈블과링크.S 어셈블리어로된파일 전처리와어셈블, 링크.o 목적파일 (Object File) 링크.a.so 컴파일된라이브러리파일 링크 7
8 gcc : 컴파일과정 (3/3) 예제 6-1 : gcc 컴파일과프로그램실행 #include <stdio.h> int main(void) { printf ( Hello Linux\n ); } return 0; [clickseo@localhost ~]$ gcc hello.c [clickseo@localhost ~]$./a.out Hello Linux [clickseo@localhost ~]$ 8
9 gcc : 옵션 (1/6) gcc : 옵션 옵션 의미 -o 지정된파일명으로실행파일생성 : 이진파일 (Binary File) -c 목적파일생성 ( 단, 링킹과정은수행하지않는다 ) -E 원시소스파일을전처리과정까지만실행하고컴파일을중단한다. -I 표준디렉터리가아닌위치에있는헤더파일의디렉터리지정 ( 디렉터리목록추가 ) -L 라이브러리파일을검색하는디렉터리목록을추가 -l 라이브러리파일을컴파일시링크 -g -ggdb 이진파일에표준디버깅정보를포함하여컴파일 gdb 를이용하여디버깅하기위해서는 g 옵션을이용하여컴파일해야한다. 이진파일에 gdb 만이이해할수있는많은디버깅정보를포함 -O 컴파일코드최적화 -O level 컴파일최적화 level 단계지정 -D FOO=BAR 명령라인에서 BAR 값을가지는 FOO 라는선행처리기매크로를정의한다. -static 정적라이브러리에링크한다. 9
10 gcc : 옵션 (2/6) gcc : 옵션 옵션 -ansi -traditional -MM 의미 ANSI/ISO C 표준을지원 : 표준과충돌하는 GNU 확장안을취소 ANSI 호환코드를보장안함과거스타일의함수정의형식과같이전통적인 K&R C 언어형식을지원 make 호환의의존성목록을출력 -V 컴파일의각단계에서사용되는명령출력 10
11 gcc : 옵션 (3/6) gcc : -o 옵션 실행파일생성시이름지정 : 이진파일 (Binary File) 지정하지않을시 a.out 의기본실행파일생성 일반형식 gcc -o [ outputfilename ] [ sourcefilename ] gcc [ sourcefilename ] -o [ outputfilename ] 출력파일과소스파일의순서는바뀌어도상관없다. [clickseo@localhost ~]$ gcc o hello hello.c 11
12 gcc : 옵션 (4/6) gcc : -E 옵션 원시파일을전처리과정만을실행하고, 컴파일중단 [clickseo@localhost ~]$ gcc E hello.c [clickseo@localhost ~]$ gcc E hello.c > prehello 12
13 gcc : 옵션 (5/6) gcc : -c 옵션 목적파일 (Object File) 생성 : 확장자.o 파일 원시파일 (Source File) 을목적파일로만컴파일하고, 링크과정생략 [clickseo@localhost ~]$ gcc c hello.c [clickseo@localhost ~]$ gcc o hello hello.o [clickseo@localhost ~]$ gcc hello.o # hello 실행파일생성 # a.out 실행파일생성 13
14 gcc : 옵션 (6/6) gcc : -I 옵션 표준디렉터리가아닌위치에있는헤더파일의디렉터리를지정한다. 소스파일과헤더파일이다른경로에존재할때사용한다. [clickseo@localhost ~]$ gcc main.c I < 헤더파일이있는디렉터리경로및이름 > // myheader.h #define AGE 20 // main.c #include <stdio.h> #include "myheader.h" int main(void) { printf("%d \n", AGE); return 0; } 14
15 분할컴파일 gcc : 분할컴파일 (1/2) 분할컴파일 : 여러파일로분리작성된하나의프로그램을컴파일 // main.c // hi.c extern void hi(void); #include <stdio.h> int main(void) void hi(void) { { hi(); printf ( Linux World \n ); return 0; return; } } 링킹 main.o + hi.o test 15
16 gcc 옵션 : 분할컴파일 (2/2) 분할컴파일 : -c 옵션 분할컴파일 : 목적파일과실행파일생성후실행결과 [clickseo@localhost ~]$ gcc c main.c [clickseo@localhost ~]$ gcc c hi.c [clickseo@localhost ~]$ gcc main.o hi.o o test [clickseo@localhost ~]$ gcc main.c hi.c -o linux 16
17 라이브러리 라이브러리지정옵션 (1/4) 자주사용되는유용한함수에대해오브젝트파일을모아둔것 시스템에서제공하는라이브러리디렉터리 : /usr/lib lib 로시작하고 ar 명령어에의해생성, 확장자.a 17
18 라이브러리지정옵션 (2/4) 라이브러리생성절차 오브젝트파일생성 /]$ gcc -c plus.c minus.c 라이브러리파일생성 /]$ ar r libmy.a plus.o minus.o 라이브러리에자체에정보추가 [clickseo@comlab /]$ ranlib libmy.a [clickseo@comlab /]$ ar rs libmy.a 헤더파일생성 라이브러리옵션지정을포함한 gcc 컴파일 18
19 라이브러리지정옵션 (3/4) 라이브러리지정옵션 -I 옵션 표준라이브러리가헤더파일을찾는헤더경로를추가한다. -L 옵션 표준라이브러리가디렉터리를추가한다. -l 옵션 표준라이브러리이외의라이브러리를링크하려고할때사용 예 ) 수학라이브러리 (math.h) 를사용하려고한다면... gcc 명령행끝에 -lm을추가하여 libm 라이브러리를링크시켜야한다. 19
20 plus.c 라이브러리지정옵션 (4/4) 라이브러리생성예제 int plus (int x, int y) { return x+y; } minus.c int minus (int x, int y) { return x-y ; }./lib/libmy.h extern int plus(int, int); extern int minus (int, int); 20
21 GNU 프로젝트 GDB (GNU Debugger) 21
22 GDB (1/2) GDB(GNU Project debugger) 1988년, 리처드스톨만 (Richard Stallman) GNU 소프트웨어시스템을위한기본디버거 컴퓨터프로그램의실행을추적하고수정할수있는많은기능을제공 GDB 릴리즈 2018 년 1 월, GDB 8.1 라이선스 : GNU General Public License(GNU GPL) 22
23 GDB (2/2) GDB : 주요특징 다양한프로그래밍언어지원 C, C++, Objective-C, Fortran, Ada 그리고 Go, Rust 등의프로그래밍언어지원 주요특징 프로그램의내부변수들의값을모니터링하거나변경가능 프로그램의일반적인실행과정과독립적으로함수호출이가능 명령어를통해서메모리, 스택, 시그널, 레지스터등의정보를보는것이가능 제한적으로멀티프로세스멀티스레드디버깅가능 원격디버깅 임베디드시스템을디버깅할때사용되는원격모드지원 GDB가한머신상에동작하고, 디버그할프로그램은다른머신상에서동작 23
24 gdb : 실행과종료 (1/2) gdb : 프로그램실행과종료 gcc 컴파일시 g 옵션을이용하여컴파일 -g 옵션을붙이면디버깅정보가실행파일에삽입된다. -g 옵션을붙이지않으면어셈블리코드만보면서디버깅해야한다. gdb 실행 [clickseo@localhost ~]$ gdb [ programname ] # 일반적인방법 # 치명적예외상황 [clickseo@localhost ~]$ gdb [ programname ] [ corefilename ] # 수행중인프로세스 [clickseo@localhost ~]$ gdb [ programname ] [ processid ] gdb 종료 (gdb) d (gdb) Ctrl + d 24
25 gdb : 프로그램실행 gdb : 실행과종료 (2/2) [clickseo@localhost ~]$ gcc -g -o hellodebug hello.c [clickseo@localhost ~]$ gdb hellodebug gdb 실행 25
26 gdb : 명령어 (1/6) gdb : List l : (List) gdb 를이용한프로그램소스출력 다시소문자 l 을누르거나 Enter 를입력하면나머지소스부분이출력된다. Enter 는이전명령의반복을의미한다. 명령내용 l l - l n l functionname l file.c:n l file.c:functionname main 함수를기점으로프로그램소스출력출력된행의이전행출력 n 번째행을기점으로프로그램소스출력지정된함수의소스출력 file.c 파일의 n 번째행을기준으로출력 file.c 파일의 functionname 함수부분출력 (gdb) l 10 # 10 행의소스를보려고할때... (gdb) l main # main 함수부분을보려고할때... 26
27 GDB : Break Point b : (Break Point) 중단점설정 gdb : 명령어 (2/6) 프로그램의수행을어느곳에서멈출것인지를결정 명령 내용 b n b functionname b n if var = 0 b file.c:n b file.c:functionname b +n b -n n 번째행에서중단점설정 functionname 함수의시작부분에중단점설정 n 번째행에중단점를설정하는데, 변수 var 값이 0 일때작동 file.c 파일의 n 번째행에중단점설정 file.c 파일의 functionname 함수에중단점설정현재행에서 n 개행이후지점에중단점설정현재행에서 n 개행이전지점에중단점설정 b *0x 메모리주소 0x 에중단점설정 ( 어셈블러디버깅시사용 ) (gdb) b 10 # 10 행에서중단점을설정할때 (gdb) b main # main 함수에서중단점을설정할할때... 27
28 GDB : Break Point gdb : 명령어 (3/6) d : (Break Point) 중단점설정해제 명령 내용 d d n d functionname d file.c:10 d file.c:functionname 모든중단점설정삭제 n 번째행의중단점설정삭제 functionname 함수의시작부분에중단점설정삭제 file.c 파일의 10행의중단점설정삭제 file.c 파일의 functionname 함수의중단점설정삭제 전체출력 : 설정된중단점정보 (gdb) info b (gdb) info breakpoints 28
29 GDB : 프로그램실행및종료 r : (run) 프로그램실행 gdb : 명령어 (4/6) 명령 내용 r r argc1 argc2 k 프로그램실행 argc1 과 argc2 를인자로프로그램실행 프로그램수행종료 r 명령을수행하면이전에설정한중단점부분에서멈춘다. 29
30 GDB : 프로그램진행 프로그램진행 gdb : 명령어 (5/6) 명령 내용 s n c u finish return (step) 현재행수행후정지 ( 함수호출시, 함수내부로디버깅모드진입 ) (gdb) s 5 : s 를 5 번입력한것과동일 (next) 현재행수행후정지 ( 함수호출시, 함수수행후다음행으로이동 ) (gdb) n 5 : n 을 5 번입력한것과동일 (continue) 중단점을만날때까지계속진행 (until) 현재루프를종료현재함수를수행하고종료현재함수를수행하지않고종료 return 100 현재함수를수행하지않고종료 ( 반환값은 100) si 현재의명령을수행 ( 함수호출시, 함수내부로디버깅모드진입 ) ni 현재의명령을수행 ( 함수호출시, 함수수행후다음행으로이동 ) 30
31 GDB : Watch Point gdb : 명령어 (6/6) 어떤변수값이바뀔때마다브레이크를걸고싶을때사용 변수값이어떻게바뀌는지그리고어떤코드가바꾸는지에대해서확인할때편리 (gdb) watch variablename 31
32 gdb : 명령어실습 (1/6) 예제프로그램 [ 실습예제 ] bugprg.c #include <stdio.h> struct time { int hour; int min; int sec; } gtime = {1,2,3}, gtimes[4]; [ 실습예제 ] bugprg.c int gethour(short sw) { if(sw) return 2; else return hello(); } int main() { int lval = 2331, i; char *lstr = I like you. ; struct time *pt = >ime; char *array[4] = { one, two, three }; int hello() { int i = 10; while(i--); return 4; } } for(i = 0; i < 100; i++) { printf( array[i] = %s\n, array[i]); gtime.hour += gethour(i % 2); } return 0; 32
33 소스보기 (cont d) gdb : 명령어실습 (2/6) 33
34 Break Point (cont d) gdb : 명령어실습 (3/6) main 함수에브레이크포인트설정 34
35 Break Point (cont d) gdb : 명령어실습 (4/6) 브레이크포인트리스트확인 35
36 프로그램실행 (cont d) gdb : 명령어실습 (5/6) r (run) 을이용해프로그램수행 브레이크포인트를걸어준 main 함수에서멈춘다. 36
37 프로그램실행 (cont d) gdb : 명령어실습 (6/6) s 와 n 명령어의차이점 37
38 gdb : 변수와레지스터 (1/10) 변수와레지스터값검사 디버거를사용하는목적은특정한시점에서메모리값과레지스터값을알기위함이다. 전체변수의출력 어떤상태에서어떤지역변수들이있으며각각의값들은무엇인지보인다. (gdb) info locals 개별변수의출력 (gdb) p [ 변수명 ] (gdb) p [ 함수명 ] # 해당변수값출력 # 해당함수의주소값출력 포인터변수의출력 (gdb) p [ 포인터변수명 ] # 해당포인터변수값출력 38
39 gdb : 변수와레지스터 (2/10) 변수와레지스터값검사 (cont d) 레지스터값출력 (gdb) p $[ 레지스트명 ] 전체레지스터값출력 (gdb) info registers 39
40 gdb : 변수와레지스터 (3/10) 변수와레지스터값검사 (cont d) 출력형식의지정 (gdb) p/[ 출력형식 ] [ 변수 ] ex) p lval : lval 변수값이 10진수형태로출력 p/x lval : lval 변수값이 16진수형태로출력 출력형식의종류 t o d u x c f a 형식 내용 2진수로출력 8진수로출력부호가있는 10진수로출력 (int) 부호가없는 10진수로출력 (unsigned int) 16진수로출력최초 1바이트값을문자형으로출력부동소수점값형식으로출력가장가까운심볼의오프셋을출력 40
41 gdb : 변수와레지스터 (4/10) 변수와레지스터값검사 (cont d) 화면에변하는변수값을자동으로디스플레이하기 (gdb) display [ 변수명 ] display 명령은지역변수를디스플레이하는데함수가바뀌어서변수의스코프범위를벗어나면해당변수를디스플레이하지않는다. display 관련명령어 명령어 내용 display [ 변수명 ] 변수값을매번화면에디스플레이한다. display/[ 출력형식 ] [ 변수명 ] 변수값을출력형식으로디스플레이한다. undisplay [ 디스플레이번호 ] 디스플레이설정을없앤다. disable display [ 디스플레이번호 ] 디스플레이를일시중단한다. enable display [ 디스플레이번호 ] 디스플레이를다시활성화한다. 41
42 gdb : 변수와레지스터 (5/10) 변수와레지스터값검사 (cont d) 전체변수의출력 (for 문으로이동후실행 ) 42
43 gdb : 변수와레지스터 (6/10) 변수와레지스터값검사 (cont d) 전역변수리스트출력 43
44 gdb : 변수와레지스터 (7/10) 변수와레지스터값검사 (cont d) 개별변수의출력 44
45 gdb : 변수와레지스터 (8/10) 변수와레지스터값검사 (cont d) 포인터변수의출력 45
46 gdb : 변수와레지스터 (9/10) 변수와레지스터값검사 (cont d) 출력형식의지정 46
47 gdb : 변수와레지스터 (10/10) 변수와레지스터값검사 (cont d) display 명령 47
48 GNU 프로젝트 GNU make 48
49 make 파일 (1/5) make 파일 test a.o b.o c.o x.o y.o z.o a.c b.c c.c x.c y.c z.c 49
50 make 파일 (2/5) make 파일 make 파일은애플리케이션의구성방법을 make에알려주는텍스트파일 대상 (target) : 대상에의존되는파일 1 [ 파일 2 ] [tab 간격 ] 명령 (command) 예제 ) 대상 test : test.c 의존부분 (dependents) 또는선결조건 (prerequisites) gcc test.c -o test 명령 : 대부분컴파일호출, 명령을사용시에는반드시텝문자로시작해야함. 50
51 make 파일 (3/5) make 파일생성시주의사항 각요소를구분하는데있어콤마 (,) 같은건사용하지않고공백으로한다. 명령을시작하기전에는항상 <TAB> 을넣는다. 절대스페이스키나다른키는사용해선안된다. 그밖의다른곳에서는 TAB 을사용하지말라. make 파일내에서항목의순서는중요하지않다. make 는어떤파일이어느곳에의존적인지알아내어올바른순서로명령을 수행한다. 51
52 make 파일예제 make 파일 (4/5) [ 예제 1] test1.c #include <stdio.h> #include a.h void func1(); void func2(); main() { printf( test1\n ); func1 (); func2 (); } [ 예제 2] test2.c #include <stdio.h> #include a.h #include b.h extern void func1() { printf( test2 \n ); } [ 예제 3] test3.c #include <stdio.h> #include b.h #include c.h extern void func2() { printf( test3 \n ); } 52
53 make 파일예제 (cont d) make 파일 (5/5) 1 헤더파일생성 [clickseo@comlab /]$ touch a.h [clickseo@comlab /]$ touch b.h [clickseo@comlab /]$ touch c.h 2 make 파일생성 [makefile] test: test1.o test2.o test3.o gcc -o test test1.o test2.o test3.o test1.o: test1.c a.h gcc -c test1.c test2.o: test2.c a.h b.h gcc -c test2.c test3.o: test3.c b.h c.h gcc -c test3.c 3 make 실행 53
54 매크로 (Macro) make 파일 : 문법규칙 (1/8) make 파일을작성하다보면같은파일이름을여러번써야하는경우가있다. 이런경우에매크로를사용하면편리하고명령을단순화시킬수있다. M_NAME = value 매크로사용시대소문자모두가능 보통대문자로쓰는것이관례이다. make 파일상단에정의 54
55 make 파일 : 문법규칙 (2/8) 매크로사용예제 [makefile] OBJF = test1.o test2.o test3.o test: $(OBJF) gcc -o test $(OBJF) test1.o: test1.c a.h gcc -c test1.c test2.o: test2.c a.h b.h gcc -c test2.c test3.o: test3.c b.h c.h gcc -c test3.c clean: rm $(OBJF) 매크로정의 $(OBJF) = test1.o test2.o test3.o 55
56 내부매크로 make 파일 : 문법규칙 (3/8) 내부매크로의미 $@ 현재목표파일의이름 $* 확장자를제외한현재목표파일의이름 $< 현재필수조건파일중첫번째파일이름 $? 현재대상보다최근에변경된필수조건파일이름 $^ 현재모든필수조건파일들 56
57 make 파일 : 문법규칙 (4/8) 내부매크로사용예제 [makefile] OBJF = test1.o test2.o test3.o test: $(OBJF) gcc -o $@ $^ test1.o: test1.c a.h gcc -c $< test2.o: test2.c a.h b.h gcc -c $*.c test3.o: test3.c b.h c.h gcc -c $*.c clean: rm $(OBJF) 현재대상파일의이름을의미하므로 test 를나타냄 OBJF 로정의된매크로값 현재대상파일 test1.o 가의존하는필수조건파일중첫번째파일이름을의미 test1.c 확장자.c 를제외한현재대상파일의이름을의미각각 test2, test3 을의미 57
58 매크로치환 make 파일 : 문법규칙 (5/8) 이미정의된매크로의내용을치환으로변경 $(M_NAME:old=new) 예제 ) OBJF = test1.o test2.o test3.o SRCS = $(OBJF:.o=.c) OBJF의확장자부분이.o에서.c로바뀌게되어 SRCS에저장된다. 결국 SRCS 는 `test1.c test2.c test3.c 를의미한다. 58
59 명시적규칙 make 파일 : 문법규칙 (6/8) make 가해야할일을명확히지정 암시적규칙 make 내에미리정의된규칙을이용해 make파일을단순화시키는규칙 [makefile] OBJF = test1.o test2.o test3.o test: $(OBJF) gcc -o $@ $(OBJF) clean: rm $(OBJF) make 실행시오브젝트파일을암시적규칙에따라 의존하는파일을찾고컴파일러호출까지수행한다. ( 단, 내장된규칙에의해 gcc 가아니라 cc 를호출 ) 59
60 접미사규칙 make 파일 : 문법규칙 (7/8) 예제 ).c.o:...1 gcc -c $< $(CFLAGS) c.o.c 라는확장자를가진파일을사용해.o 라는확장자를가진파일을만들것임을 make에알리는역할을한다. 2 $< 확장가가.c인파일명을의미한다. $(CFLAGS) C 컴파일러를위한플래그를위해미리정의된변수 60
61 패턴규칙 make 파일 : 문법규칙 (8/8) 암시적규칙에의존했을경우일어나는오류방지 접미사규칙과비슷하나더뛰어난기능을가짐 [makefile] OBJF = test1_d.o test2_d.o test3_d.o test: $(OBJF) gcc -o $@ $(OBJF) 확장자.c 인모든파일에대해 _d 를붙인오브젝트파일을생성하겠다는의미 %_d.o: %.c gcc -c -g $< -o $@ -g 옵션을주어컴파일시디버깅정보를삽입 clean: rm $(OBJF) 61
62 LLVM 프로젝트 GNU 프로젝트 LLVM 프로젝트 clang 62
63 LLVM 프로젝트 LLVM 프로젝트 : llvm.org The LLVM Compiler Infrastructure LLVM 하위프로젝트 LLVM Core 라이브러리 Clang 컴파일러 LLDB 디버거 libc++ 과 libc++ ABI 프로젝트 LLVM 릴리즈 2003 년 09 월, LLVM 년 05 월, LLVM 라이선스 : University of Illinois/NCSA Open Source License MIT/X11 라이선스와 BSD 3.0 라이선스를기반으로하는라이선스 프로그래밍언어 : C++ 63
64 LLVM 프로젝트 : Clang Clang 컴파일러 : clang.llvm.org 2007 년 09 월, LLVM native C/C++/Objective-C Compiler 목표 : GCC 를대체하는것 GCC와 MSVC 호환컴파일러드라이버모두를제공한다. Clang 릴리즈 2017 년 03 월, Clang 라이선스 : University of Illinois/NCSA Open Source License 프로그래밍언어 : C++ 64
65 참고문헌 [1] 이종원, IT CookBook, 우분투리눅스 ( 개정판 ) : 시스템 & 네트워크, 한빛아카데미, [2] 백창우, 유닉스리눅스프로그래밍필수유틸리티, 한빛미디어 이강의자료는저작권법에따라보호받는저작물이므로무단전제와무단복제를금지하며, 내용의전부또는일부를이용하려면반드시저작권자의서면동의를받아야합니다. Copyright Clickseo.com. All rights reserved. 65
PowerPoint 프레젠테이션
DEVELOPMENT ENVIRONMENT 2 MAKE Jo, Heeseung MAKE Definition make is utility to maintain groups of programs Object If some file is modified, make detects it and update files related with modified one 2
More informationPowerPoint 프레젠테이션
Development Environment 2 Jo, Heeseung make make Definition make is utility to maintain groups of programs Object If some file is modified, make detects it and update files related with modified one It
More information임베디드리눅스기초
Linux Basic Ø File and directories Ø Access Permissions Ø Links Ø Linux s Ø VI editor 147 File and directories Ø Linux File Name 명명규칙 Ø 256 characters 까지허용 Ø 공백사용허용 Ø 파일확장자와관련된규칙은없음. Ø 숨김파일 Ø 기본적으로 directory
More informationMicrosoft PowerPoint - chap01-C언어개요.pptx
#include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 프로그래밍의 기본 개념을
More informationC++ Programming
C++ Programming 연산자다중정의 Seo, Doo-okok clickseo@gmail.com http://www.clickseo.com 목 차 연산자다중정의 C++ 스타일의문자열 2 연산자다중정의 연산자다중정의 단항연산자다중정의 이항연산자다중정의 cin, cout 그리고 endl C++ 스타일의문자열 3 연산자다중정의 연산자다중정의 (Operator
More informationvi 사용법
유닉스프로그래밍및실습 gdb 사용법 fprintf 이용 단순디버깅 확인하고자하는코드부분에 fprintf(stderr, ) 를이용하여그지점까지도달했는지여부와관심있는변수의값을확인 여러유형의단순한문제를확인할수있음 그러나자세히살펴보기위해서는디버깅툴필요 int main(void) { int count; long large_no; double real_no; init_vars();
More informationC++ Programming
C++ Programming 예외처리 Seo, Doo-okok clickseo@gmail.com http://www.clickseo.com 목 차 예외처리 2 예외처리 예외처리 C++ 의예외처리 예외클래스와객체 3 예외처리 예외를처리하지않는프로그램 int main() int a, b; cout > a >> b; cout
More informationuntitled
시스템소프트웨어 : 운영체제, 컴파일러, 어셈블러, 링커, 로더, 프로그래밍도구등 소프트웨어 응용소프트웨어 : 워드프로세서, 스프레드쉬트, 그래픽프로그램, 미디어재생기등 1 n ( x + x +... + ) 1 2 x n 00001111 10111111 01000101 11111000 00001111 10111111 01001101 11111000
More informationMicrosoft PowerPoint - chap02-C프로그램시작하기.pptx
#include int main(void) { int num; printf( Please enter an integer "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 을 작성하면서 C 프로그램의
More information슬라이드 1
-Part3- 제 4 장동적메모리할당과가변인 자 학습목차 4.1 동적메모리할당 4.1 동적메모리할당 4.1 동적메모리할당 배울내용 1 프로세스의메모리공간 2 동적메모리할당의필요성 4.1 동적메모리할당 (1/6) 프로세스의메모리구조 코드영역 : 프로그램실행코드, 함수들이저장되는영역 스택영역 : 매개변수, 지역변수, 중괄호 ( 블록 ) 내부에정의된변수들이저장되는영역
More informationMicrosoft PowerPoint - System Programming Lab Week1.ppt [호환 모드]
System Programming Lab Week 1: Basic Skills for Practice Contents vi Editor 사용법 GCC 컴파일러사용법 Makefile 사용법 GDB 사용법 VI Editor Usage vi 모드 입력모드 : 실제문서를편집하는모드. 명령모드 : 키입력이바로명령이되는모드로서쓴내용을삭제하거나, 복사할때사용. ex 명령모드
More information<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>
리눅스 오류처리하기 2007. 11. 28 안효창 라이브러리함수의오류번호얻기 errno 변수기능오류번호를저장한다. 기본형 extern int errno; 헤더파일 라이브러리함수호출에실패했을때함수예 정수값을반환하는함수 -1 반환 open 함수 포인터를반환하는함수 NULL 반환 fopen 함수 2 유닉스 / 리눅스 라이브러리함수의오류번호얻기 19-1
More informationPowerPoint 프레젠테이션
Chapter 15 고급프로그램을 만들기위한 C... 1. main( ) 함수의숨겨진이야기 2. 헤더파일 3. 전처리문과예약어 1. main( ) 함수의숨겨진이야기 main( ) 함수의매개변수 [ 기본 14-1] main( ) 함수에매개변수를사용한예 1 01 #include 02 03 int main(int argc, char* argv[])
More information<4D F736F F F696E74202D20C1A632C0E520C7C1B7CEB1D7B7A5B0B3B9DFB0FAC1A4>
쉽게풀어쓴 C 언어 Express 제 2 장프로그램개발과정 통합개발환경 통합개발환경 (IDE: integrated development environment) 에디터 + 컴파일러 + 디버거 Visual C++: 이클립스 (eclipse): Dev-C++: 마이크로소프트제작 오픈소스프로젝트 오픈소스프로젝트 통합개발환경의종류 비주얼 C++(Visual C++)
More information강의10
Computer Programming gdb and awk 12 th Lecture 김현철컴퓨터공학부서울대학교 순서 C Compiler and Linker 보충 Static vs Shared Libraries ( 계속 ) gdb awk Q&A Shared vs Static Libraries ( 계속 ) Advantage of Using Libraries Reduced
More informationMicrosoft PowerPoint - 08-C-App-19-Quick-Preprocessor
19. 전처리와분할컴파일 순천향대학교컴퓨터학부이상정 1 학습내용 전처리명령어 #include #define 기호상수 const 분할컴파일 순천향대학교컴퓨터학부이상정 2 전처리과정 전처리 (preprocessor) 전처리명령어는 # 기호로시작 #incldue #define 순천향대학교컴퓨터학부이상정 3 #include (1) 지정된파일을프로그램에삽입 꺽쇠괄호는포함할파일을컴파일러에설정되어있는특정디렉토리에서검색
More information버퍼오버플로우-왕기초편 10. 메모리를 Hex dump 뜨기 앞서우리는버퍼오버플로우로인해리턴어드레스 (return address) 가변조될수있음을알았습니다. 이제곧리턴어드레스를원하는값으로변경하는실습을해볼것인데요, 그전에앞서, 메모리에저장된값들을살펴보는방법에대해배워보겠습
앞서우리는버퍼오버플로우로인해리턴어드레스 (return address) 가변조될수있음을알았습니다. 이제곧리턴어드레스를원하는값으로변경하는실습을해볼것인데요, 그전에앞서, 메모리에저장된값들을살펴보는방법에대해배워보겠습니다. 여러분모두 Windows 에서 hex editor(hex dump, hex viewer) 라는것을사용해보셨을겁니다. 바로바이너리파일을 16 진수
More informationMicrosoft PowerPoint - chap-02.pptx
쉽게풀어쓴 C 언어 Express 제 2 장프로그램개발과정 컴퓨터프로그래밍기초 프로그램작성과정 에디터 (editer) 컴파일러 (compiler) 링커 (linker) 로더 (loader) 소스파일 test.c 오브젝트파일 test.obj 실행파일 test.exe 통합개발환경 (IDE) 컴퓨터프로그래밍기초 2 프로그램작성단계 편집 (edit) 에디터를이용하여원하는작업의내용을기술하여소스코드작성
More informationMicrosoft PowerPoint - chap06-2pointer.ppt
2010-1 학기프로그래밍입문 (1) chapter 06-2 참고자료 포인터 박종혁 Tel: 970-6702 Email: jhpark1@snut.ac.kr 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- 포인터의정의와사용 변수를선언하는것은메모리에기억공간을할당하는것이며할당된이후에는변수명으로그기억공간을사용한다. 할당된기억공간을사용하는방법에는변수명외에메모리의실제주소값을사용하는것이다.
More informationMicrosoft PowerPoint - chap12-고급기능.pptx
#include int main(void) int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; 1 학습목표 가 제공하는 매크로 상수와 매크로
More informationC 프로그래밍 언어 입문 C 프로그래밍 언어 입문 김명호저 숭실대학교 출판국 머리말..... C, C++, Java, Fortran, Python, Ruby,.. C. C 1972. 40 C.. C. 1999 C99. C99. C. C. C., kmh ssu.ac.kr.. ,. 2013 12 Contents 1장 프로그래밍 시작 1.1 C 10 1.2 12
More informationPowerPoint 프레젠테이션
KeyPad Device Control - Device driver Jo, Heeseung HBE-SM5-S4210 에는 16 개의 Tack Switch 를사용하여 4 행 4 열의 Keypad 가장착 4x4 Keypad 2 KeyPad 를제어하기위하여 FPGA 내부에 KeyPad controller 가구현 KeyPad controller 16bit 로구성된
More informationMicrosoft PowerPoint - 03_(C_Programming)_(Korean)_Pointers
C Programming 포인터 (Pointers) Seo, Doo-Ok Clickseo.com clickseo@gmail.com 목 차 포인터의이해 다양한포인터 2 포인터의이해 포인터의이해 포인터변수선언및초기화 포인터연산 다양한포인터 3 주소연산자 ( & ) 포인터의이해 (1/4) 변수와배열원소에만적용한다. 산술식이나상수에는주소연산자를사용할수없다. 레지스터변수또한주소연산자를사용할수없다.
More information본 강의에 들어가기 전
C 기초특강 종합과제 과제내용 구조체를이용하여교과목이름과코드를파일로부터입력받아관리 구조체를이용하여학생들의이름, 학번과이수한교과목의코드와점수를파일로부터입력 학생개인별총점, 평균계산 교과목별이수학생수, 총점및평균을계산 결과를파일에저장하는프로그램을작성 2 Makefile OBJS = score_main.o score_input.o score_calc.o score_print.o
More informationMicrosoft PowerPoint - additional01.ppt [호환 모드]
1.C 기반의 C++ part 1 함수 오버로딩 (overloading) 디폴트매개변수 (default parameter) 인-라인함수 (in-line function) 이름공간 (namespace) Jong Hyuk Park 함수 Jong Hyuk Park 함수오버로딩 (overloading) 함수오버로딩 (function overloading) C++ 언어에서는같은이름을가진여러개의함수를정의가능
More information< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>
Chap #2 펌웨어작성을위한 C 언어 I http://www.smartdisplay.co.kr 강의계획 Chap1. 강의계획및디지털논리이론 Chap2. 펌웨어작성을위한 C 언어 I Chap3. 펌웨어작성을위한 C 언어 II Chap4. AT89S52 메모리구조 Chap5. SD-52 보드구성과코드메모리프로그래밍방법 Chap6. 어드레스디코딩 ( 매핑 ) 과어셈블리어코딩방법
More information슬라이드 1
CCS v4 사용자안내서 CCSv4 사용자용예제따라하기안내 0. CCS v4.x 사용자 - 준비사항 예제에사용된 CCS 버전은 V4..3 버전이며, CCS 버전에따라메뉴화면이조금다를수있습니다. 예제실습전준비하기 처음시작하기예제모음집 CD 를 PC 의 CD-ROM 드라이브에삽입합니다. 아래안내에따라, 예제소스와헤더파일들을 PC 에설치합니다. CD 드라이브 \SW\TIDCS\TIDCS_DSP80x.exe
More information임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과
임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과 System call table and linkage v Ref. http://www.ibm.com/developerworks/linux/library/l-system-calls/ - 2 - Young-Jin Kim SYSCALL_DEFINE 함수
More informationPowerPoint 프레젠테이션
Chapter 08 함수 01 함수의개요 02 함수사용하기 03 함수와배열 04 재귀함수 함수의필요성을인식한다. 함수를정의, 선언, 호출하는방법을알아본다. 배열을함수의인자로전달하는방법과사용시장점을알아본다. 재귀호출로해결할수있는문제의특징과해결방법을알아본다. 1.1 함수의정의와기능 함수 (function) 특별한기능을수행하는것 여러가지함수의예 Page 4 1.2
More informationC언어 및 실습 C Language and Practice
C언어 및 실습 C Language and Practice Chap. 2 : 변수의 영역 동국대학교 멀티미디어공학과 Young-Sik Jeong C 언어메모리구조 지역변수들이저장되는곳. 정확히는지역변수와그에따른환경이같이저장된다. 복귀주소와호출함수의환경이저장된다. 동적기억장소를위한공간. 프로그램이실행되는중간에필요에의해서할당받는메모리영역을통칭한다. 크기가정해져있지않고유동적이다.
More informationuntitled
if( ) ; if( sales > 2000 ) bonus = 200; if( score >= 60 ) printf(".\n"); if( height >= 130 && age >= 10 ) printf(".\n"); if ( temperature < 0 ) printf(".\n"); // printf(" %.\n \n", temperature); // if(
More information[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi
2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Function) 1. 함수의개념 입력에대해적절한출력을발생시켜주는것 내가 ( 프로그래머 ) 작성한명령문을연산, 처리, 실행해주는부분 ( 모듈 ) 자체적으로실행되지않으며,
More informationSena Technologies, Inc. HelloDevice Super 1.1.0
HelloDevice Super 110 Copyright 1998-2005, All rights reserved HelloDevice 210 ()137-130 Tel: (02) 573-5422 Fax: (02) 573-7710 E-Mail: support@senacom Website: http://wwwsenacom Revision history Revision
More informationPowerPoint 프레젠테이션
Network Programming Jo, Heeseung Network 실습 네트워크프로그래밍 멀리떨어져있는호스트들이서로데이터를주고받을수있도록프로그램을구현하는것 파일과는달리데이터를주고받을대상이멀리떨어져있기때문에소프트웨어차원에서호스트들간에연결을해주는장치가필요 이러한기능을해주는장치로소켓이라는인터페이스를많이사용 소켓프로그래밍이란용어와네트워크프로그래밍이랑용어가같은의미로사용
More informationMicrosoft PowerPoint - 08_(C_Programming)_(Korean)_Preprocessing
C Programming 전처리 (Preprocessing) Seo, Doo-Ok Clickseo.com clickseo@gmail.com 목 차 C 전처리기 조건및분할컴파일 2 C 전처리기 C 전처리기 매크로상수 매크로함수 조건및분할컴파일 3 전처리 (Preprocessing) C 전처리기 (1/3) 원시소스파일을컴파일하기전에행해야할일련의작업 외부파일포함기능
More informationPowerPoint 프레젠테이션
Web server porting 2 Jo, Heeseung Web 을이용한 LED 제어 Web 을이용한 LED 제어프로그램 web 에서데이터를전송받아타겟보드의 LED 를조작하는프로그램을작성하기위해다음과같은소스파일을생성 2 Web 을이용한 LED 제어 LED 제어프로그램작성 8bitled.html 파일을작성 root@ubuntu:/working/web# vi
More informationgdb 사용법 Debugging Debug라는말은 bug를없앤다는말이다. Bug란, 컴퓨터프로그램상의논리적오류를말하며, 이것을찾아해결하는과정이바로, debugging이다. 초기컴퓨터들은실제벌레가컴퓨터에들어가서오작동을일으키는경우가있었다고하며, 여기서 debug 이라는말이
gdb 사용법 Debugging Debug라는말은 bug를없앤다는말이다. Bug란, 컴퓨터프로그램상의논리적오류를말하며, 이것을찾아해결하는과정이바로, debugging이다. 초기컴퓨터들은실제벌레가컴퓨터에들어가서오작동을일으키는경우가있었다고하며, 여기서 debug 이라는말이나왔다한다. Debugging을하는가장원초적방법은프로그램소스를눈으로따라가며, 머리로실행시켜논리적오류를찾아내는것이다.
More informationMicrosoft PowerPoint - chap03-변수와데이터형.pptx
#include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num %d\n", num); return 0; } 1 학습목표 의 개념에 대해 알아본다.
More informationMicrosoft PowerPoint - 1장 C 프로그래밍 시작하기 pptx
C 프로그래밍및실습 1. C 프로그래밍시작하기 세종대학교 목차 1) 프로그래밍개요 3) 첫프로그램분석 4) 출력기초 5) 입력기초 2 1) 프로그래밍개요 프로그램과프로그래밍 프로그램 운동회의순서나음악회의연주곡목순서등미리짜놓은것 예 ) TV 프로그램 컴퓨터프로그램 (program) 컴퓨터에게해야할일의순서와방법을지시하는명령어의집합 프로그래밍 프로그래밍언어를이용하여프로그램을만드는행위
More informationOCW_C언어 기초
초보프로그래머를위한 C 언어기초 4 장 : 연산자 2012 년 이은주 학습목표 수식의개념과연산자및피연산자에대한학습 C 의알아보기 연산자의우선순위와결합방향에대하여알아보기 2 목차 연산자의기본개념 수식 연산자와피연산자 산술연산자 / 증감연산자 관계연산자 / 논리연산자 비트연산자 / 대입연산자연산자의우선순위와결합방향 조건연산자 / 형변환연산자 연산자의우선순위 연산자의결합방향
More informationPowerPoint 프레젠테이션
7-Segment Device Control - Device driver Jo, Heeseung HBE-SM5-S4210 의 M3 Module 에는 6 자리를가지는 7-Segment 모듈이아래그림처럼실장 6 Digit 7-Segment 2 6-Digit 7-Segment LED controller 16비트로구성된 2개의레지스터에의해제어 SEG_Sel_Reg(Segment
More informationPowerPoint 프레젠테이션
7-Segment Device Control - Device driver Jo, Heeseung HBE-SM5-S4210 의 M3 Module 에는 6 자리를가지는 7-Segment 모듈이아래그림처럼실장 6 Digit 7-Segment 2 6-Digit 7-Segment LED Controller 16비트로구성된 2개의레지스터에의해제어 SEG_Sel_Reg(Segment
More information쉽게 풀어쓴 C 프로그래밍
누구나즐기는 C 언어콘서트 제 1 장프로그래밍소개 이번장에서학습할내용 프로그램의이해 프로그래밍언어 알고리즘 프로그램개발과정 프로그램을작성하기에앞서서중요한개념들을살펴봅니다.. 컴퓨터란? Q) 컴퓨터 (computer) 는무엇인가? A) 컴퓨터는기본적으로계산 (compute) 하는기계 Q) 컴퓨터를이용하여데이터를처리하려면반드시데이터가숫자형태이어야한다. 왜? A)
More informationMicrosoft PowerPoint - [2009] 02.pptx
원시데이터유형과연산 원시데이터유형과연산 원시데이터유형과연산 숫자데이터유형 - 숫자데이터유형 원시데이터유형과연산 표준입출력함수 - printf 문 가장기본적인출력함수. (stdio.h) 문법 ) printf( Test printf. a = %d \n, a); printf( %d, %f, %c \n, a, b, c); #include #include
More information목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2
제 8 장. 포인터 목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2 포인터의개요 포인터란? 주소를변수로다루기위한주소변수 메모리의기억공간을변수로써사용하는것 포인터변수란데이터변수가저장되는주소의값을 변수로취급하기위한변수 C 3 포인터의개요 포인터변수및초기화 * 변수데이터의데이터형과같은데이터형을포인터 변수의데이터형으로선언 일반변수와포인터변수를구별하기위해
More informationuntitled
while do-while for break continue while( ) ; #include 0 i int main(void) int meter; int i = 0; while(i < 3) meter = i * 1609; printf("%d %d \n", i, meter); i++; return 0; i i< 3 () 0 (1)
More information금오공대 컴퓨터공학전공 강의자료
C 프로그래밍프로젝트 Chap 14. 포인터와함수에대한이해 2013.10.09. 오병우 컴퓨터공학과 14-1 함수의인자로배열전달 기본적인인자의전달방식 값의복사에의한전달 val 10 a 10 11 Department of Computer Engineering 2 14-1 함수의인자로배열전달 배열의함수인자전달방식 배열이름 ( 배열주소, 포인터 ) 에의한전달 #include
More informationuntitled
int i = 10; char c = 69; float f = 12.3; int i = 10; char c = 69; float f = 12.3; printf("i : %u\n", &i); // i printf("c : %u\n", &c); // c printf("f : %u\n", &f); // f return 0; i : 1245024 c : 1245015
More informationPowerPoint 프레젠테이션
Text-LCD Device Control - Device driver Jo, Heeseung M3 모듈에장착되어있는 Tedxt LCD 장치를제어하는 App 을개발 TextLCD 는영문자와숫자일본어, 특수문자를표현하는데사용되는디바이스 HBE-SM5-S4210 의 TextLCD 는 16 문자 *2 라인을 Display 할수있으며, 이 TextLCD 를제어하기위하여
More information슬라이드 1
Delino EVM 용처음시작하기 - 프로젝트만들기 (85) Delfino EVM 처음시작하기앞서 이예제는타겟보드와개발홖경이반드시갖추어져있어야실습이가능합니다. 타겟보드 : Delfino EVM + TMS0F85 초소형모듈 개발소프트웨어 : Code Composer Studio 4 ( 이자료에서사용된버전은 v4..입니다. ) 하드웨어장비 : TI 정식 JTAG
More informationPowerPoint 프레젠테이션
Sensor Device Jo, Heeseung Sensor 실습 HBE-SM5-S4210 에는근접 / 가속도 / 컴파스센서가장착 각센서들을사용하기위한디바이스드라이버와어플리케이션을작성 2 근접 (Proximity) 센서 HBE-SM5-S4210 Camera Module 근접센서디바이스 근접센서는사물이다른사물에접촉되기이전에가까이접근하였는지를검출할목적으로사용 일반적으로생활에서자동문이나엘리베이터,
More information슬라이드 1
마이크로컨트롤러 2 (MicroController2) 2 강 ATmega128 의 external interrupt 이귀형교수님 학습목표 interrupt 란무엇인가? 기본개념을알아본다. interrupt 중에서가장사용하기쉬운 external interrupt 의사용방법을학습한다. 1. Interrupt 는왜필요할까? 함수동작을추가하여실행시키려면? //***
More informationMicrosoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100
2015-1 프로그래밍언어 9. 연결형리스트, Stack, Queue 2015 년 5 월 4 일 교수김영탁 영남대학교공과대학정보통신공학과 (Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr) 연결리스트 (Linked List) 연결리스트연산 Stack
More informationOCW_C언어 기초
초보프로그래머를위한 C 언어기초 2 장 : C 프로그램시작하기 2012 년 이은주 학습목표 을작성하면서 C 프로그램의구성요소 주석 (comment) 이란무엇인지알아보고, 주석을만드는방법 함수란무엇인지알아보고, C 프로그램에반드시필요한 main 함수 C 프로그램에서출력에사용되는 printf 함수 변수의개념과변수의값을입력받는데사용되는 scanf 함수 2 목차 프로그램코드
More informationKEY 디바이스 드라이버
KEY 디바이스드라이버 임베디드시스템소프트웨어 I (http://et.smu.ac.kr et.smu.ac.kr) 차례 GPIO 및 Control Registers KEY 하드웨어구성 KEY Driver 프로그램 key-driver.c 시험응용프로그램 key-app.c KEY 디바이스드라이버 11-2 GPIO(General-Purpose Purpose I/O)
More information쉽게 풀어쓴 C 프로그래밍
제 3 장함수와문자열 1. 함수의기본적인개념을이해한다. 2. 인수와매개변수의개념을이해한다. 3. 함수의인수전달방법 2가지를이해한다 4. 중복함수를이해한다. 5. 디폴트매개변수를이해한다. 6. 문자열의구성을이해한다. 7. string 클래스의사용법을익힌다. 이번장에서만들어볼프로그램 함수란? 함수선언 함수호출 예제 #include using
More informationPowerPoint 프레젠테이션
7-SEGMENT DEVICE CONTROL - DEVICE DRIVER Jo, Heeseung 디바이스드라이버구현 : 7-SEGMENT HBE-SM5-S4210 의 M3 Module 에는 6 자리를가지는 7-Segment 모듈이아래그림처럼실장 6 Digit 7-Segment 2 디바이스드라이버구현 : 7-SEGMENT 6-Digit 7-Segment LED
More informationMicrosoft PowerPoint - chap-02.pptx
쉽게풀어쓴 C 언어 Express 제 2 장프로그램개발과정 컴퓨터프로그래밍기초 프로그램작성과정 에디터 (editer) 컴파일러 (compiler) 링커 (linker) 로더 (loader) 소스파일 test.c 오브젝트파일 test.obj 실행파일 test.exe 통합개발환경 (IDE) 컴퓨터프로그래밍기초 2 프로그램작성단계 편집 (edit) 에디터를이용하여원하는작업의내용을기술하여소스코드작성
More informationC 프로그래밊 개요
함수 (2) 2009 년 9 월 24 일 김경중 공지사항 10 월 1 일목요일수업휴강 숙제 #1 마감 : 10 월 6 일화요일 기초 함수를만들어라! 입력 함수 ( 기능수행 ) 반환 사용자정의함수 정의 : 사용자가자신의목적에따라직접작성한함수 함수의원형 (Function Prototype) + 함수의본체 (Function Body) : 함수의원형은함수에대한기본적정보만을포함
More information윤성우의 열혈 TCP/IP 소켓 프로그래밍
C 프로그래밍프로젝트 Chap 22. 구조체와사용자정의자료형 1 2013.10.10. 오병우 컴퓨터공학과 구조체의정의 (Structure) 구조체 하나이상의기본자료형을기반으로사용자정의자료형 (User Defined Data Type) 을만들수있는문법요소 배열 vs. 구조체 배열 : 한가지자료형의집합 구조체 : 여러가지자료형의집합 사용자정의자료형 struct
More informationMicrosoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt
변수와상수 1 변수란무엇인가? 변수 : 정보 (data) 를저장하는컴퓨터내의특정위치 ( 임시저장공간 ) 메모리, register 메모리주소 101 번지 102 번지 변수의크기에따라 주로 byte 단위 메모리 2 기본적인변수형및변수의크기 변수의크기 해당컴퓨터에서는항상일정 컴퓨터마다다를수있음 short
More information비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2
비트연산자 1 1 비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2 진수법! 2, 10, 16, 8! 2 : 0~1 ( )! 10 : 0~9 ( )! 16 : 0~9, 9 a, b,
More informationPowerPoint Presentation
#include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 을작성하면서 C 프로그램의구성요소에대하여알아본다.
More informationK&R2 Reference Manual 번역본
typewriter structunion struct union if-else if if else if if else if if if if else else ; auto register static extern typedef void char short int long float double signed unsigned const volatile { } struct
More informationC 언어 프로그래밊 과제 풀이
과제풀이 (1) 홀수 / 짝수판정 (1) /* 20094123 홍길동 20100324 */ /* even_or_odd.c */ /* 정수를입력받아홀수인지짝수인지판정하는프로그램 */ int number; printf(" 정수를입력하시오 => "); scanf("%d", &number); 확인 주석문 가필요한이유 printf 와 scanf 쌍
More information<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>
연습문제해답 5 4 3 2 1 0 함수의반환값 =15 5 4 3 2 1 0 함수의반환값 =95 10 7 4 1-2 함수의반환값 =3 1 2 3 4 5 연습문제해답 1. C 언어에서의배열에대하여다음중맞는것은? (1) 3차원이상의배열은불가능하다. (2) 배열의이름은포인터와같은역할을한다. (3) 배열의인덱스는 1에서부터시작한다. (4) 선언한다음, 실행도중에배열의크기를변경하는것이가능하다.
More informationMicrosoft PowerPoint - ch07 - 포인터 pm0415
2015-1 프로그래밍언어 7. 포인터 (Pointer), 동적메모리할당 2015 년 4 월 4 일 교수김영탁 영남대학교공과대학정보통신공학과 (Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr) Outline 포인터 (pointer) 란? 간접참조연산자
More informationMicrosoft PowerPoint - chap10-함수의활용.pptx
#include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 중 값에 의한 전달 방법과
More informationC++-¿Ïº®Çؼ³10Àå
C C++. (preprocessor directives), C C++ C/C++... C++, C. C++ C. C C++. C,, C++, C++., C++.,.. #define #elif #else #error #if #itdef #ifndef #include #line #pragma #undef #.,.,. #include #include
More information중간고사
중간고사 예제 1 사용자로부터받은두개의숫자 x, y 중에서큰수를찾는알고리즘을의사코드로작성하시오. Step 1: Input x, y Step 2: if (x > y) then MAX
More information1 장 C 언어복습 표준입출력배열포인터배열과포인터함수 const와포인터구조체컴파일러사용방법 C++ 프로그래밍입문
1 장 C 언어복습 표준입출력배열포인터배열과포인터함수 const와포인터구조체컴파일러사용방법 C++ 프로그래밍입문 1. 표준입출력 표준입출력 입력 : 키보드, scanf 함수 출력 : 모니터, printf 함수문제 : 정수값 2개를입력받고두값사이의값들을더하여출력하라. #include int main(void) int Num1, Num2; int
More information제 14 장포인터활용 유준범 (JUNBEOM YOO) Ver 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다.
제 14 장포인터활용 유준범 (JUNBEOM YOO) Ver. 2.0 jbyoo@konkuk.ac.kr http://dslab.konkuk.ac.kr 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다. 이번장에서학습할내용 이중포인터란무엇인가? 포인터배열 함수포인터 다차원배열과포인터 void 포인터 포인터는다양한용도로유용하게활용될수있습니다. 2 이중포인터
More informationPowerPoint 프레젠테이션
WEB SERVER PORTING 1 Jo, Heeseung 웹서버포팅 HBE-SM5-S4210 를임베디드웹서버로사용할수있도록웹서버를올리는작업 임베디드서버에널리쓰이는웹서버들중 GoAhead 라는웹서버를포팅 CGI 프로그램을이용하여웹에서 HBE-SM5-S4210 의 LED, 7- Segment, TextLCD 를제어실습 2 Goahead webserver 소스를다운받거나제공된
More informationMicrosoft PowerPoint - ch 전처리기, 다중 소스파일 pm1015
2015-1 11-1. 전처리기, 다중소스파일 2015 년 5 월 11 일 교수김영탁 영남대학교공과대학정보통신공학과 (Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr) Outline 전처리기 (preprocessor) 다중소스파일 헤더파일 함수소스파일
More information<B1E2BCFAB9AEBCAD5FB9DABAB4B1D45F F F64746F72732E687770>
기술문서 09. 11. 3. 작성 Format String Bug 에서 dtors 우회 작성자 : 영남대학교 @Xpert 박병규 preex@ynu.ac.kr 1. 요약... 2 2. d to r 이란... 3 3. 포맷스트링... 4 4. ro o t 권한획득... 7 5. 참고자료... 1 0-1 - 1. 요약 포맷스트링버그 (Format String bug)
More information컴파일러
YACC 응용예 Desktop Calculator 7/23 Lex 입력 수식문법을위한 lex 입력 : calc.l %{ #include calc.tab.h" %} %% [0-9]+ return(number) [ \t] \n return(0) \+ return('+') \* return('*'). { printf("'%c': illegal character\n",
More informationMicrosoft PowerPoint - Chapter8.pptx
Computer Engineering g Programming g 2 제 8 장함수 Lecturer: JUNBEOM YOO jbyoo@konkuk.ac.kr 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다. 이번장에서학습할내용 모듈화 함수의개념, 역할 함수작성방법 반환값 인수전달 규모가큰프로그램은전체문제를보다단순하고이해하기쉬운함수로나누어서프로그램을작성하여야합니다.
More informationMicrosoft PowerPoint - chap08-1 [호환 모드]
2011-1 학기프로그래밍입문 (1) 참고자료 : chapter 8-1. 전처리 박종혁 Tel: 970-6702 Email: jhpark1@seoultech.ac.kr h k 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- ehanbit.net 전처리명령어 컴파일과정에는전처리 (preprocessing) 단계가있다. - 컴파일러는목적파일을만들기전에전처리라고하는특별한작업을
More informationC# Programming Guide - Types
C# Programming Guide - Types 최도경 lifeisforu@wemade.com 이문서는 MSDN 의 Types 를요약하고보충한것입니다. http://msdn.microsoft.com/enus/library/ms173104(v=vs.100).aspx Types, Variables, and Values C# 은 type 에민감한언어이다. 모든
More informationMicrosoft PowerPoint - lab14.pptx
Mobile & Embedded System Lab. Dept. of Computer Engineering Kyung Hee Univ. Keypad Device Control in Embedded Linux HBE-SM5-S4210 에는 16 개의 Tack Switch 를사용하여 4 행 4 열의 Keypad 가장착되어있다. 2 Keypad Device Driver
More informationMicrosoft PowerPoint - Chapter_04.pptx
프로그래밍 1 1 Chapter 4. Constant and Basic Data Types April, 2016 Dept. of software Dankook University http://embedded.dankook.ac.kr/~baeksj 이장의강의목표 2 기본자료형문자표현방식과문자자료형상수자료형변환 기본자료형 (1/8) 3 변수 (Variables)
More information<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F >
10주차 문자 LCD 의인터페이스회로및구동함수 Next-Generation Networks Lab. 5. 16x2 CLCD 모듈 (HY-1602H-803) 그림 11-18 19 핀설명표 11-11 번호 분류 핀이름 레벨 (V) 기능 1 V SS or GND 0 GND 전원 2 V Power DD or V CC +5 CLCD 구동전원 3 V 0 - CLCD 명암조절
More informationuntitled
Step Motor Device Driver Embedded System Lab. II Step Motor Step Motor Step Motor source Embedded System Lab. II 2 open loop, : : Pulse, 1 Pulse,, -, 1 +5%, step Step Motor (2),, Embedded System Lab. II
More information개발도구
리눅스개발도구 II - 디버깅 - 1 Contents C 프로그래밍오류의사례 gdb 디버거 메모리디버깅 기타디버깅 시스템콜, 라이브러리호출디버깅 매크로, assert() 2 System Security Lab@Myongji Univ. 프로그래밍오류 (error) 오류의유형 구문오류 (syntax error) 의미오류 (semantic error) 정적의미오류
More information기술문서 LD_PRELOAD 와공유라이브러리를사용한 libc 함수후킹 정지훈
기술문서 LD_PRELOAD 와공유라이브러리를사용한 libc 함수후킹 정지훈 binoopang@is119.jnu.ac.kr Abstract libc에서제공하는 API를후킹해본다. 물론이방법을사용하면다른라이브러리에서제공하는 API들도후킹할수있다. 여기서제시하는방법은리눅스후킹에서가장기본적인방법이될것이기때문에후킹의워밍업이라고생각하고읽어보자 :D Content 1.
More information금오공대 컴퓨터공학전공 강의자료
C 프로그래밍프로젝트 Chap 27. 파일의분할과헤더파일의디자인 2013.09.11. 오병우 컴퓨터공학과 설계 (design) 중요 27-1 프로그램의모듈화 변경, 확장등의유지보수가용이하도록설계 C 언어에서는 module 구성중요 C++, Java 등의객체지향언어에서는 class, abstraction 중요 Design Patterns 에대해 2 학년여름방학이나겨울방학에공부해보시기바랍니다.
More information프로그래밍개론및실습 2015 년 2 학기프로그래밍개론및실습과목으로본내용은강의교재인생능출판사, 두근두근 C 언어수업, 천인국지음을발췌수정하였음
프로그래밍개론및실습 2015 년 2 학기프로그래밍개론및실습과목으로본내용은강의교재인생능출판사, 두근두근 C 언어수업, 천인국지음을발췌수정하였음 CHAPTER 9 둘중하나선택하기 관계연산자 두개의피연산자를비교하는연산자 결과값은참 (1) 아니면거짓 (0) x == y x 와 y 의값이같은지비교한다. 관계연산자 연산자 의미 x == y x와 y가같은가? x!= y
More informationEA0015: 컴파일러
4 Flex 무엇을공부하나? " 어휘분석기 (lexical analyzer 혹은 scanner)" 는다음과같은과정을거쳐서프로그램된다. 1 토큰정의, 2 정규식으로표현, 3 NFA로변환, 4 DFA로변환, 5 프로그램작성 위과정은앞장에서배운바와같이기계적으로이루어질수있다. "Flex(Fast Lexical Analyzer)" 는컴파일러개발자를위하여위과정을자동으로처리해주는도구이다.
More information11장 포인터
Dynamic Memory and Linked List 1 동적할당메모리의개념 프로그램이메모리를할당받는방법 정적 (static) 동적 (dynamic) 정적메모리할당 프로그램이시작되기전에미리정해진크기의메모리를할당받는것 메모리의크기는프로그램이시작하기전에결정 int i, j; int buffer[80]; char name[] = data structure"; 처음에결정된크기보다더큰입력이들어온다면처리하지못함
More informationMicrosoft PowerPoint - chap-11.pptx
쉽게풀어쓴 C 언어 Express 제 11 장포인터 컴퓨터프로그래밍기초 이번장에서학습할내용 포인터이란? 변수의주소 포인터의선언 간접참조연산자 포인터연산 포인터와배열 포인터와함수 이번장에서는포인터의기초적인지식을학습한다. 컴퓨터프로그래밍기초 2 포인터란? 포인터 (pointer): 주소를가지고있는변수 컴퓨터프로그래밍기초 3 메모리의구조 변수는메모리에저장된다. 메모리는바이트단위로액세스된다.
More informationMicrosoft PowerPoint - chap06-5 [호환 모드]
2011-1 학기프로그래밍입문 (1) chapter 06-5 참고자료 변수의영역과데이터의전달 박종혁 Tel: 970-6702 Email: jhpark1@seoultech.ac.kr h k 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- ehanbit.net 자동변수 지금까지하나의함수안에서선언한변수는자동변수이다. 사용범위는하나의함수내부이다. 생존기간은함수가호출되어실행되는동안이다.
More information<4D F736F F F696E74202D B3E22032C7D0B1E220C0A9B5B5BFECB0D4C0D3C7C1B7CEB1D7B7A1B9D620C1A638B0AD202D20C7C1B7B9C0D320BCD3B5B5C0C720C1B6C0FD>
2006 년 2 학기윈도우게임프로그래밍 제 8 강프레임속도의조절 이대현 한국산업기술대학교 오늘의학습내용 프레임속도의조절 30fps 맞추기 스프라이트프레임속도의조절 프레임속도 (Frame Rate) 프레임속도란? 얼마나빨리프레임 ( 일반적으로하나의완성된화면 ) 을만들어낼수있는지를나타내는척도 일반적으로초당프레임출력횟수를많이사용한다. FPS(Frame Per Sec)
More informationMicrosoft PowerPoint oshw1.ppt [호환 모드]
제출일 : 4월 5일 ( 목 ) 까지 과제내용» 연습문제풀이 1 1.6 2 2.8 3 3.8» 프로그래밍과제 4 5 과제 1 : 기본이해 # ftp 211.119.245.75 (id: anonymous, passwd: 자기 loginid) 또는 (id: ftp, passwd:ftp) 한다음 # cd pub 하고 # get p.c 하여 p 프로그램의 version
More informationMicrosoft PowerPoint - chap13-입출력라이브러리.pptx
#include int main(void) int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; 1 학습목표 스트림의 기본 개념을 알아보고,
More informationA Hierarchical Approach to Interactive Motion Editing for Human-like Figures
단일연결리스트 (Singly Linked List) 신찬수 연결리스트 (linked list)? tail 서울부산수원용인 null item next 구조체복습 struct name_card { char name[20]; int date; } struct name_card a; // 구조체변수 a 선언 a.name 또는 a.date // 구조체 a의멤버접근 struct
More informationISP and CodeVisionAVR C Compiler.hwp
USBISP V3.0 & P-AVRISP V1.0 with CodeVisionAVR C Compiler http://www.avrmall.com/ November 12, 2007 Copyright (c) 2003-2008 All Rights Reserved. USBISP V3.0 & P-AVRISP V1.0 with CodeVisionAVR C Compiler
More information강의의목표 Compiled Language vs. Interpreted Language 차이이해 Compiling의의미이해 Compiling의결과물확인 통합개발환경구축 Eclipse 통합개발환경을통한예제의 Bulid 및실행 Formatter 등의편집지원기능, Refer
개발환경구축 부산대학교정보컴퓨터공학부 김종덕 (kimjd@pusan.ac.kr) 강의의목표 Compiled Language vs. Interpreted Language 차이이해 Compiling의의미이해 Compiling의결과물확인 통합개발환경구축 Eclipse 통합개발환경을통한예제의 Bulid 및실행 Formatter 등의편집지원기능, Reference의준비
More informationPowerPoint Template
16-1. 보조자료템플릿 (Template) 함수템플릿 클래스템플릿 Jong Hyuk Park 함수템플릿 Jong Hyuk Park 함수템플릿소개 함수템플릿 한번의함수정의로서로다른자료형에대해적용하는함수 예 int abs(int n) return n < 0? -n : n; double abs(double n) 함수 return n < 0? -n : n; //
More informationPowerPoint 프레젠테이션
Chapter 10 포인터 01 포인터의기본 02 인자전달방법 03 포인터와배열 04 포인터와문자열 변수의주소를저장하는포인터에대해알아본다. 함수의인자를값과주소로전달하는방법을알아본다. 포인터와배열의관계를알아본다. 포인터와문자열의관계를알아본다. 1.1 포인터선언 포인터선언방법 자료형 * 변수명 ; int * ptr; * 연산자가하나이면 1 차원포인터 1 차원포인터는일반변수의주소를값으로가짐
More informationPowerPoint 프레젠테이션
Chapter 06 반복문 01 반복문의필요성 02 for문 03 while문 04 do~while문 05 기타제어문 반복문의의미와필요성을이해한다. 대표적인반복문인 for 문, while 문, do~while 문의작성법을 알아본다. 1.1 반복문의필요성 반복문 동일한내용을반복하거나일정한규칙으로반복하는일을수행할때사용 프로그램을좀더간결하고실제적으로작성할수있음.
More information