Makefile 기반 리눅스 프로그래밍
·
Embedded Linux
10.1 Makefile 이란? Makefile이란 “컴파일을 위한 쉘 스크립트 파일”이다. 비교적 매우 간단한 하나의 C 소스 파일을 컴파일하기 위해서는 컴파일 명령어로 바로 컴파일이 가능하겠으나, 리눅스 커널 소스들처럼 한번에 컴파일해야 할 소스 파일들이 매우 많거나, 커널 모듈 혹은디바이스 드라이버와 같이 컴파일 과정에 필요한 옵션들이 길게 필요할 경우 프롬프트 상에서 명령어로처리하기에는 한계가 있다.이 경우 스크립트 형식으로 컴파일해야 할 소스 파일들과 옵션들을 정리하여 “make”라는 유틸리티가자동적으로 한 줄 씩 해석하여 컴파일하도록 만든 파일이 “Makefile”이다. Makefile 예제mymain.cmain() 함수가 있는 메인 소스mylib_func_1.cmymain.c 파일을 지원하기..
임베디드 리눅스 개발 환경 구축 실습: 타겟 보드 구동
·
Embedded Linux
9.1 타겟 보드 접속 환경 설정 타겟 보드의 ✶ J12(Debug Port) PC의 시리얼 포트(COM1, COM2)나 USB-to-Serial 변환 케이블을 사용하여 타겟 보드의 J12(Debug Port) 커넥터에 연결하는 시리얼 케이블은 Windows 에서의 하이퍼터미널과 Linux에서의 minicom과 같은 가상 시리얼 에뮬레이터를 통해 타겟 보드에 접속하여 명령어를 입력하거나 타겟 보드의 현재 상태를 확인하는 용도 즉, Monitoring 용도로 사용하게 된다. 케이블 종료타겟 보드 커넥터케이블 용도SerialJ12: Debug PortMonitoringEthernetJ18: WAN PortDownloading, Monitoring, SettingUSBJ19: USB DeviceBSP Imag..
임베디드 리눅스 개발 환경 <2> HW 개발 환경의 사본
·
Embedded Linux
8.1 임베디드 리눅스 개발을 위한 일반적인 하드웨어 환경 임베디드 리눅스 개발을 위한 일반적인 하드웨어 환경 임베디드 리눅스 소프트웨어를 개발하는 PC와 개발된 소프트웨어를 실제 탑재하여 실행시키는 타겟 보드 간 용도 별로 케이블을 연결하는 것을 하드웨어 개발 환경이라 한다. PC 연결기능설명Parallel(25-pin) ex. LPT1Programming타겟 보드의 JTAG 포트를 통해 Embedded Linux BSP 이미지 파일들을 타겟 보드의 플래시 메모리에 탑재하는 기능Serial (9-pin) ex. COM1Moniotoring타겟 보드의 Debug 포트를 통해 타겟 보드의 상태 정보를 PC의 키보드와 모니터로 확인할 수 있는 기능EthernetDownloading타겟 보드의 Ethernet..
임베디드 리눅스 개발 환경 <1> SW 개발 환경
·
Embedded Linux
7.1 Windows 환경에서 SW 개발 환경 구축하기 7.1.1 Cygwin 설치하기 임베디드 리눅스 개발 환경을 구축하기 전에 가장 먼저 해야 할 일은 Linux 환경을 구축하는 것이다. 왜냐하면 Embedded Linux 역시 리눅스 이기 때문이다. Windows에서는 가상화 솔루션(Virtual Machine)”이 필요하다. 하나의 PC에서 여러 운영체제들을 실행시켜 주기 위해 필요한 소프트웨어를 가상화 솔루션이라고 한다. 가상화 솔루션의 대표적으로 VMWare 사의 VMware가 대표적이지만 상용 제품일 뿐만 아니라, 시스템 메모리를 많이 사용하기 때문에 저사양의 PC에서는 사용하기 어렵다. www.vmware.com 따라서 공개용이며 손쉽게 사용 가능한 Cygwin을 이용. www.cygwin..
임베디드 리눅스 개발 환경 분석
·
Embedded Linux
6.1 임베디드 소프트웨어 개발 환경 구성요소 일반 소프트웨어 개발 환경 소스 코드 컴파일 과정은 일반 소프트웨어와 마찬가지로 PC에서 이루어지고, PC와 연결된 타겟 보드(Target Board)에서 실행되고 있으며, 타겟 보드에서 실행시키기 위해 PC에 생성된 결과 파일(Hello.bin)을 타겟 보드로 전송 시키는 부분도 필요하다. 분류내용소프트웨어 개발 환경타겟 보드용 소스 코드를 컴파일 하기 위한 환경, 즉 타겟 보드용 Tool-Chain 설치 및 설정 환경하드웨어 개발 환경타겟 보드용 바이너리 실행 코드를 타겟 보드 내 탑재된 플래시(Flash) 메모리에 저장하기 위한 환경테스트 및 디버깅 개발 환경타겟 보드의 하드웨어 적인 동작 상태를 점검(디버깅)하거나 타겟 보드의 동작 상태를 소프트웨어 ..
임베디드 리눅스 구성요소(BSP)
·
Embedded Linux
5.1 BSP 란? BSP(Board Support Package)란 말은 본래 RTOS에서 나온 용어로, “보드를 떠받치는(지원하는) 소프트웨어 패키지란 뜻으로, “보드(하드웨어)를 동작 시키기 위해 필요한 (임베디드) 소프트웨어 묶음” 시스템 별 BSP 구성 형태 위의 그림은 Firmware와 RTOS로 구동되는 시스템과 Non-RTOS 로 구동되는 시스템의 차이를 보여주고 있다. WindRiver 사의 VxWorks와 같은 일부 상용 RTOS를 제외하고 대부분의 RTOS와 Firmware에는 Non-RTOS에서와 같은 파일 시스템(File System)이 없다. 즉 소스들이 아무리 많다 하더라도 결국 컴파일이 끝나면 최종적으로 (CPU에 종속적인) 바이너리 실행 코드 하나만 생성된다. 따라서 Fir..
임베디드 플랫폼<3> 개발 환경
·
Embedded Linux
4.1 Tool - Chain 이란? 1. Tool - Chain 리눅스에는 “gcc” 라는 C 컴파일러가 있다. 리눅스에서 gcc 컴파일러로 컴파일할 때 별도의 출력 파일 이름을 지정하지 않으면 a.out이라는 이름으로 생성된다. 생성된 파일은 “실행 가능한 ELF 파일” 타입으로 되어 있다. 즉, UNIX나 Linux에서 gcc로 컴파일하면 무조건 ELF 파일이 생성된다. > 컴파일 과정(Compile) 텍스트로 되어 있는 소스 코드 파일을 이진 바이너리(Binary) 코드로 변환하는 과정 가장 먼저 실제 컴파일을 진행하기 전에 소스 코드 상에 “#”(전처리기, Preprocessor)으로 처리되어 있는 부분들을 먼저 처리한다. 이후에 처리가 끝나면 C 문법 검사를 하게 된다. 오류가 없다면 이진 바..
임베디드 플랫폼<2> 운영체제
·
Embedded Linux
3.1 운영체제 사용 1. Non-RTOS Non-RTOS : 같은 자원에 여러 개의 태스크가 동시에 접근해야 할 경우 사용자 응용 프로그램은 자원에 직접 접근할 수 없다. 사용자 응용 프로그램이 OS를 통해 자원에 접근하는 과정 1. 다바이스 드라이버(Device Driver) 등록: 실제 (하드웨어) 자원을 제어할 디바이스 드라이버가 미리 OS에 등록되어 있어야 한다.2. 사용자 응용 프로그램 자원 요청: 사용자 응용 프로그램은 OS에게 자원에 대한 접근 권한 요청3. 해당 디바이스 드라이버 검색: 요청을 받은 OS는 해당 자원을 실제로 제어할 디바이스 드라이버가 자신(OS)에게 등록되어 있는지 검색. 없으면 오류 메세지, 있으면 실행4. 디바이스 드라이버 자원 제어: 실제 하드웨어 지원을 제어하고 ..
김 정출
'Embedded Linux' 카테고리의 글 목록 (2 Page)