[C] printf 출력형식 %d %i %u %X %x %o %p %s %c %C %f %e %E %g %G
printf 출력 형식 %d %i %u %X %x %o %p %s %c %C %f %e %E %g %G type (형) : 인수의 형을 지정 d int값을 부호있는 10진수로 출력 i d와 같음 u int값을 부호없는 10진수로 출력 X int값을 부호없는 16진수로 출력 10~15은 'A'~'F'로 표시 x int값을 부호없는 16진수로 출력 10~15은 'a'~'f'로 표시 o int값을 부호없는 8진수로 출력 p 포인터값을 16진수로 출력 s 문자열 출력 c int값을 문자로 출력 C c와 같음 f double값을 소수로 출력 (예:12.566371) e double값을 지수로 출력 (예:1.256637e+001) E e와 같음 'e'가 'E'로 표시 (예:1.256637E+001)。 g 숫자값의 ..
2018.08.29
no image
[Linux] dmesg 명령어
dmesg 명령어 dmesg 명령어는 시스템 부팅 메세지를 확인하는 명령어이다. 또한 커널에서 출력되는 메세지를 일정 수준 기록하는 버퍼 역할을 수행하며, 커널 부팅 중에 에러가 났다면 어느 단계에서 에러가 났는지 범위를 좁히고 찾아내는데 도움이 된다. dmesg 로그 파일 위치 /var/log/dmesg * 모든 메세지를 삭제하며 입력 이후에 새롭게 로그 쌓기 dmesg -c * 하드 디스크 정보 확인 dmesg | grep sda * SCSI 타입의 하드디스크 정보 확인 dmesg | grep SCSI * IDE 타입의 하드디스크 정보 확인 dmesg | grep hda * NIC 정보 확인 dmesg | grep eth * USB 장치에 관한 정보 dmesg | grep usb * 커널 정보 확인 ..
2018.08.21
[Linux] 부트로더
리눅스 부트로더란? 부트로더란 운영체제가 시작되기 전에 미리 실행되면서 커널이 올바르게 시동되기 위해 필요한 모든 작업을 마무리하고 최종적으로 운영체제를 시동시키기 위한 목적을 가진 프로그램이다. 즉, 시스템의 하드웨어를 초기화하고 운영체제의 커널을 메모리에 올려 실행시키는 시스템 프로그램이다. 메모리, 하드웨어(네트워크, 프로세서 속도, 인터럽트), 코드, 데이터, 스텍 영역 설정 및 초기화, 커널 로더와 커널 이미지 로딩, 커널 로더를 실행하여 커널 이미지가 실행되도록 한다. 부트로더의 기능 - 메모리 초기화- 하드웨어 초기화- 직렬포트의 초기화- 네트워크 초기화- 프로세서 속도, 인터럽트의 초기화- 커널과 램 디스크 적재 : 커널과 램 디스크를 램에 적재하여 실행- 사용자 인터페이스 기능 부트로더의..
2018.08.21
no image
[C] 포인터
C언어에서 포인터는 변수의 메모리 주소를 이용하여 함수를 넘나들며 값을 저장하기 위해 사용된다. 즉, 포인터는 값의 주소를 저장하기 위해 사용된다. 포인터 변수는 다음과 같이 * ( Asterisk, 애스터리스크)를 사용하여 선언된다. * 의 위치에 따른 차이는 없으며 모두 같은 뜻이다. int* numPtr; int * numPtr; int *numPtr; 포인터 변수를 선언했다면 아래와 같이 &로 변수의 주소를 구해서 포인터 변수에 저장한다. numPtr = # 즉, 포인터는 메모리의 특정 위치를 가리킬 때 사용한다. 아래 코드는 numPtr 이라는 포인터 변수가 int 형 변수 num 이 있는 공간을 가르키는 예제이다. numPtr이 가르키는 값을 변경할 경우 변수 num의 값도 당연히 변경..
2018.08.21
[C] 파일 목록 가져오기
파일 검색 함수는 특정한 조건에 맞는 파일을 검색한다. 예를 들어 a로 시작하고 확장자가 txt 인 모든 파일(*.txt)을 찾아 작업을 하고자 할 때 조건에 맞는 파일을 찾아야 한다. 파일을 검색하는 함수는 다음과 같다. long _findfirst( char *filespec, struct _finddata_t *fileinfo ); int _findnext( long handle, struct _finddata_t *fileinfo ); int _findclose( long handle ); findfirst 함수의 filespec 인수로 검색 식을 주면 조건에 맞는 첫번째 파일을 찾아 fileinfo 구조체에 검색된 파일의 정보를 채우고 검색 핸들을 리턴한다. 만약 조건에 맞지 않는다면 -1이 리..
2018.08.16
no image
[Linux] 커널 이미지
커널 이미지는 내가 원래 영상처리에서 알던 이미지와 아주 다른 개념이었다. 1. 커널 이미지의 개요 : 리눅스에서 부팅은 도스나 윈도우의 부팅과 상당히 다르며, 도스나 윈도우의 부팅은 컴퓨터를 쓰고 싶으면 전원을 넣고 부팅과정을 거치게 된다. 그러나 리눅스에서의 부팅은 간만에 있을까 말까 하는 중요한 사건이다. 그래서 부팅 속도가 빠른 것이며, 부팅 과정은 매우 복잡하다. 로더(LILO 또는 loadlin)라고 하는 프로그램은 커널을 메모리에 올려놓는 일을 수행한다. 컴퓨터에 전원이 들어오고 나면 제일 먼저 디스크의 첫 부분을 읽어서 로더를 실행시킨다. 로드는 커널 이미지의 위치를 알고 있어서 스스로 커널 이미지를 찾아서 메모리에 올려 놓는다. 2. 커널 이미지란? : 커널이 하나의 파일로 디스크에 저장..
2018.08.05
[Embedded linux] timeconst.pl 에러 해결법
커널 컴파일 도중 아래와 같은 에러 시 Can't use 'defined(@array)' (Maybe you should just omit the defined()?) at kernel/timeconst.pl line 373./home/xxxx/Workspace/VAB-630_Linux_source_code/Kernel_3.4.5/kernel/Makefile:129: recipe for target 'kernel/timeconst.h' failedmake[1]: *** [kernel/timeconst.h] Error 255Makefile:945: recipe for target 'kernel' failedmake: *** [kernel] Error 2make: *** Waiting for unfinish..
2018.08.05
no image
[Embedded linux] 임베디드 리눅스 개념
리눅스 일반 리눅스 : 일반 데스크탑 환경인 고성능 프로셋와 대용량 메모리 환경에서 동작하는 범용 컴퓨터용 리눅스 임베디드 리눅스 : 저성능의 마이크로 프로세서와 제한된 메모리 환경에서 동작하는 임베디드 시스템용 리눅스 임베디드란? : 임베디드는 아주 작은 형태의 전자회로를 가지고 있는 컴퓨터이다. 따라서 임베디드는 다양한 사물에 숨겨져있다. 임베디드의 뜻이 우리말로 번역하면 "내장된" 이라고 할 수 있다. 주위에 임베디드 장치를 쉽게 찾아 볼 수 있으며 대표적인 것들이 신호등, 지하철 개찰구, 선풍기 등이 있다. 스마트폰도 임베디드 장치라고 할 수 있는데, 내부에서 다양한 센서와 액츄에이터 그리고 초소형 고성능 컴퓨터를 탑재하고 있다. 수백개에서 수천개의 전자회로를 가지고 있는 자동차도 대표적인 임베디..
2018.08.05
[Linux] .bashrc 수정 후 적용
리눅스에서 .bashrc 파일 수정 후 반드시 다시 로그인해야 적용 됨 터미널 종료 후 다시 실행하면 적용 됨 하지만 source ~/.bashrc 위 명령어를 실행하게 되면 터미널 종료 없이도 적용 가능 참고자료 : http://blog.chopestory.net/157
2018.08.05
[Embedded linux] 크로스 컴파일
크로스 컴파일러(Cross compiler) Wiki 정의 : 크로스 컴파일러는 컴파일러가 실행되는 플랫폼이 아닌 다른 플랫폼에서 실행 가능한 코드를 생성할 수 있는 컴파일러이다. 크로스 컴파일러 툴은 임베디드 시스템 혹은 여러 플랫폼에서 실행파일을 생성하는데 사용된다. 이것은 운영체제를 지원하지 않는 마이크로컨트롤러와 같이 컴파일이 실현 불가능한 플랫폼에 컴파일하는데 사용된다. 이것은 시스템이 사용하는데 하나 이상의 플랫폼을 쓰는 반가상화에 이 도구를 사용하는 것이 더 일반적이게되었다. 크로스 컴파일러는 호스트에서 C언어나 어셈블러로 작성된 소스코드를 호스트와 다른 기종에서 사용될 수 있는 기계어로 번역해주는 컴파일러의 일종이다. 임베디드 시스템을 개발하기 위해서는 반드시 크로스 컴파일러가 있어야 한다..
2018.08.05
[C++] 전처리문의 종류
전처리문 : 실질적인 컴파일 이전에 미리 처리되는 문장을 말하며, 선행 처리기라고도 한다. 따라서 컴파일러는 사용자가 작성한 코드를 컴파일 하기 전에 전처리문에서 정의해놓은 작업을 먼저 수행하게 된다. 파일 처리를 위한 전처리문 : #include형태 처리를 위한 전처리문 : #define, #undef조건 처리를 위한 전처리문 : #if, #ifdef, #else, #elif, #endif에러 처리를 위한 전처리문 : #error디버깅을 위한 전처리문 : #line컴파일 옵션 처리를 위한 전처리문 : #pragma 조건 처리를 위한 전처리문은 어떤 조건에 대한 검사를 하고, 그 결과를 참(0이 아닌 값) 또는 거짓(0)으로 돌ㄹ준다. #if : ~이 참 이라면#ifdef : ~이 정의되어 있다면#els..
2018.08.05
no image
[Linux] 리눅스 버전 확인
리눅스 버전 확인 하는 방법 grep . /etc/*-release 참고자료 1 : 제타위키
2018.08.05