본문 바로가기

분류 전체보기

라즈베리 파이(Raspberry Pi) 보드 라즈베리 파이(Raspberry Pi) 보드의 스펙은 [ 표 1 ]과 같다. 코어 아키텍쳐 ARM11 메모리 512MB SDRAM 운영체제 리눅스 OS 버전을 수행한다. 규격 85 x 56 x 17mm 파워 Micro USB 5V, 2A 컨넥터 이더넷(Ethernet), 비디오 출력, 오디오 출력, GPIO 컨넥터 카메라 컨넥터, JTAG, 디스플레이 컨넥터, 메모리 카드 슬롯 [ 표 1 ] 라즈베리 파이 스펙 [ 그림 1 ]은 Raspberry Pi의 핀과 컨넥터들의 위치를 나타냈다. [ 그림 1 ] 라즈베리 파이 핀과 컨넥터 위치 더보기
라즈비안(Raspbian) 라즈비안(Raspbian)이란 리눅스 계열의 운영체제인 데비안을 라즈베리에 최적화한 운영체제입니다. 라즈비안의 특징은 아래와 같습니다. 1. 각종 기능을 지원하는 TUI 프로그램인 raspi-config 제공2. 라즈베리에 최적화함3. 기본적으로 많은 패키지가 설치되어 있다.4. 설치 후 용량 대략 2GB 라즈비안 말고도 라즈베리 용으로 배포되고 있는 운영체제로 Pidora, Openelec, Raspabmc, Risc 등이 있습니다. Openelec이나 Raspbmc 같은 경우는 Raspberry XBMC(Xbox Media Center) 전용 운영체제입니다. - XBMC(Xboc Media Center) : 원어 그대로 초기에 Xbox 콘솔의 미디어 센터 프로그램으로 사용되었다. 현재는 별도의 공식 .. 더보기
컴파일러(Compiler)와 인터프리터(Interperter) 컴파일러(Compiler)란 고급 언어로 작성된 프로그램을 컴퓨터에서 즉시 실행될 수 있는 형태의 목적 프로그램으로 바꾸어주는 번역 프로그램입니다. 목적 프로그램이란 프로세서(Processor)가 한 번에 한 명령씩 처리하거나 또는 실행 시킬 수 있는 기계 코드입니다. 컴파일(Compile) 과정 내에도 컴파일(Compile)과 컴파일러(Compiler)가 존재합니다. 이는 하드웨어에 종속적인 코드인 어셈블리어로 변환해주는 역할을 하는데, 전처리(Preprocessor), 컴파일(Compile), 어셈블러(Assembler), 링크(Link) 과정을 묶어서 ‘컴파일(Compile)’ 이라고 통칭하고, 이러한 번역을 해주는 프로그램을 ‘컴파일러(Complier)’ 라고 통칭할 수 있습니다. 컴파일러(Com.. 더보기
컴파일(Compile) 컴파일(Compile)이란 간단하게 프로그래머가 작성한 소스를 컴퓨터가 이해할 수 있는 기계어나 어셈블리어로 변환해주는 과정을 말합니다. 간단하게 Compile이 진행되는 과정은 아래 [ 그림 1 ]과 같습니다. [ 그림 1 ] 그림을 설명하면 단계는 아래와 같습니다. 1. 전처리기(Preprocessor)에 의한 전처리 과정2. 컴파일러(Compiler)를 통한 어셈블리어로 변환 과정3. 어셈블러(Assembler)를 통해 오브젝트 파일 생성4. 링커(Linker)를 통한 Linking(심볼 해석, 재배치 등) 과정 프로그래머가 작성하는 소스 파일은 ‘.c’ 파일입니다. 그리고 가장 처음으로 전처리기(Preprocessor)를 통해 전처리 과정을 거칩니다. 전처리 과정이란 소스파일에 다른 파일의 텍스트.. 더보기
Linux bsp에 대해서 Linux BSP는 충분히 사용할 수 있는 툴체인, 커널과 보드 특정 모듈들이 보장된다. 보드 특정 모듈들은 특정 하드웨어 레퍼런스 플랫폼을 위해 고정된 환경 설정과 함께 사용하기 위해 준비된다. Linux BSP는 다음을 포함하고 있다.1. Linux kernel and Device drivers- 리눅스 커널과 장치를 제어하기 위한 디바이스 드라이버들 2. Applications and services- 응용 프로그램과 서비스들 3. Libraries- 라이브러리들 4. GNU tools(compliers, linkers, etc.)- 컴파일러와 링커를 포함한 툴들 (툴체인) 5. Deployment mechanisms - 배치 방법 더보기
BSP(Board Support Package)란? BSP(Board Support Package)란 이름의 의미 그대로 Board를 사용할 수 있도록 하기 위한 Software 묶음이라고 보면 될 것이다. 자세히 설명하자면 운영체제를 로드하기 위한 최소한의 장치를 지원하고, 하드웨어 보드의 모든 장치를 위한 드라이버를 말한다. 몇몇의 공급자들은 루트 파일 시스템, 임베디드 시스템에서 실행하는 프로그램을 만들기 위한 툴체인 그리고 장치들을 위한 configurator를 제공한다. BSP의 구성은 일반적으로 아래와 같다. 1. Bootloader- 시스템의 하드웨어를 초기화하고 운영체제의 이미지를 RAM에 올려주는 역할을 하는 시스템 프로그램으로 하드웨어 의존성이 강하다. 2. OAL(OEM Adaption Layer)- HAL(Hardware Abstra.. 더보기
리눅스(Linux)란? 리눅스(Linux)란 컴퓨터 운영체제의 하나이며, 커널을 뜻하기도 한다.리눅스의 특징으로는 아래와 같다. 1. 유닉스 계열(clone) 운영체제2. 오픈소스로 개발3. 모노리딕 형태의 커널4. 다중 사용자, 다중 작업(멀티태스킹), 다중 스레드를 지원5. 지원되는 플랫폼의 수가 많다6. 네트워크 운영체제(NOS)= 네트워크 운영체제(Network Operationg System, NOS)는 네트워크와 네트워크 메시지(패킷 등), 트래픽과 대기열(큐)을 제어하고, 여러 명의 사용자가 파일과 같은 네트워크 리소스에 접근할 수 있게 해주며, 보안을 포함한 특정한 관리자 기능을 제공하는 소프트웨어이다. ( 출처 : 위키백과 ) 리눅스는 유닉스 계열 운영체제로서 리눅스가 유닉스 소스 코드에서 파생되지 않았지만 인.. 더보기
20141127_C언어 하트 피하기 게임 #include #include #include #include #include #define MAP_X 30 // 맵의 가로#define MAP_Y 22 // 맵의 세로 #define HEART MAP_X-1 // 최대 하트의 갯수 #define LEFT 75 // 왼쪽#define RIGHT 77 // 오른쪽 #define DEAD 0 // 죽었을 경우#define CLEAR 1 // 클리어 했을 경우 void endGame(int); // 게임이 끝났을 경우void init_field(void); // 기본 맵의 테두리 출력void init_game(void); // 게임을 초기화한다void start_game(void); // 게임을 시작한다void print_heart(void); // 화면에 .. 더보기
20141124_스택(stack)을 이용한 수식의 중위 -> 전위 표기법 변환 이번 소스는 자료구조 스택(stack)을 이용해서 중위 표기법을 전위 표기법으로 전화하는 프로그램 소스입니다. #include #include // 스택 노드를 위한 구조체 선언 typedef struct node{ char data; struct node *pre; }NODE; // 하나의 새로운 노드를 생성해주는 함수 NODE* createNode(char data) { NODE *temp = (NODE*)malloc(sizeof(NODE)); temp->data = data; temp->pre = NULL; return temp; } // 스택에 저장된 데이터를 하나 꺼내는 함수 char pop(NODE **top) { NODE *temp = *top; char t; if(*top == NULL) .. 더보기
20141124_단일 연결리스트(singly linked list)_노드 삭제 함수(delNode) 이번에는 단일 연결리스트(singly linked list)의 노드 삭제 함수(delNode)입니다. 노드 추가 및 기본적인 소스는 다른 글에 있으니 참고 하시기 바랍니다. ^^ void delNode(NODE **head){NODE *pri = *head;NODE *temp = pri->next; // 현재 노드가 없을 경우if(pri == NULL)return; // 현재 노드가 한 개일 경우if(pri->next == NULL){*head = NULL;free(pri);}else // 노드가 2개 이상일 경우{while(temp->next != NULL){pri = temp;temp = temp->next;}pri->next = NULL;free(temp);}} int main(void){// 리스.. 더보기