Linux/Linux 과제
[임베디드 과제] make와 gcc로 C 프로그램 컴파일
1. a) 문제 설명 키보드 입력: 정수 A, B A를 4로 나눈 나머지에 B를 더한 값을 출력함 b) C Source Code // ADD.SEL.c #include int ADD_SEL(int A, int B) { int R; printf("%d를 4로 나눈 나머지: %d \n", A, A%4); if (A % 4 == 0) { R = B; printf("R = %d", B); } else if (A % 4 == 1) { R = B + 1; printf("R = %d + 1", B); } else if (A % 4 == 2) { R = B + 2; printf("R = %d + 2", B); } else { R = B + 3; printf("R = %d + 3", B); } printf("\n"); ..
[임베디드 과제] 클랭(Clang) 컴파일러
1) 개요 클랭(Clang)은 C/C++ 등의 프로그래밍 언어를 위한 컴파일러이다. 오픈 소스 컴파일러 프로젝트인 LLVM를 백엔드로 사용하며, Clang은 컴파일러의 프론트엔드에 해당한다. 목표는 GCC(GNU Compiler Collection)를 대체하는 것이다. GCC 보다 성능이 우수하다. 2) 명령어 $ clang [옵션] [파일명] ※ 기본적인 옵션은 GCC/G++와 유사하게 사용할 수 있다. 옵션 설명 및 예시 -o [filename] 실행 파일 이름을 특정 이름으로 생성함 (해당 옵션 없이 실행 파일이 생성될 경우, 기본 이름은 a.out) -v 컴파일 상세 결과 출력 -g gdb를 통해 디버깅할 수 있도록 정보 생성 -save-temps 중간 과정 파일 보존(전처리, 오브젝트, 어셈블리..
[임베디드 과제] GDB(GNU Bebugger) 기본 명령어
1. 기본 명령어 ① GDB 시작 옵션 설명 및 실행 예시 $ gdb [프로그램명] GDB 시작 $ quit GDB 종료(단축키 [Ctrl]+[D] 사용 가능) ② 프로그램 진행 명령어 설명 및 실행 예시 $ run [arg] 프로그램 시작(arg: 인수 전달 가능) $ kill 프로그램 종료 $ next [n] 다음 행 n번 수행(Default: 1번 수행), 서브루틴을 호출하면서 계속 수행 $ step [n] 다음 행 n번 수행(Default: 1번 수행), 함수가 있으면 함수 내부에서 한 줄씩 수행 $ u 현재 루프 탈출 $ finish 현재 함수를 수행하고 탈출 $ return 현재 함수를 수행하지 않고 탈출 ③ 정지점 및 감시점 명령어 설명 및 실행 예시 $ break [point] 정지점 추가..
[임베디드 과제] GCC, G++ 컴파일러 이해
1. GCC(GNU C Compiler) c 파일은 C 언어로, cpp 파일을 C++ 언어로 컴파일함 C 라이브러리에 링크됨 명령어: 실행 파일 생성 $ gcc [옵션] [파일명] ※ GCC가 C++, Java, Go, 포트란, 에이다 등 여러 언어를 컴파일할 수 있게 되면서, GCC는 GNU Compiler Collection의 약어로 쓰이게 됨 2) G++(GNU C++ Compiler) c 파일과 cpp 파일 모두 C++ 언어로 컴파일함 C++ 라이브러리에 링크됨 명령어: 실행 파일 생성 $ g++ [옵션] [파일명] 3) 컴파일 옵션 옵션 설명 및 예시 -o [filename] 실행 파일 이름을 특정 이름으로 생성함 (해당 옵션 없이 실행 파일이 생성될 경우, 기본 이름은 a.out) -v 컴파일..
[임베디드 과제] Bash Shell 프로그래밍 간단 예제
1. Bash Shell 스크립트 #!/bin/bash # 함수: 매개변수 3개 출력 friends_function () { echo "my friends = $1 $2 $3" } # 함수: 두 수 더하기 add_function () { result=$(( $1+$2 )) echo "Addition : $1 + $2 = $result" } # 함수 : 명령어 실행 command_function () { case $1 in H | h )echo "HOME directory: $HOME";; P | p )echo "PATH information: $PATH";; L | l )ls;; D | d )pwd;; * ) echo "존재하지 않는 명령어입니다." ;; esac } # 함수: 두 수 사이의 합 구하기 ..