Chap 2 임베디드시스템 개발환경구성

Similar documents
임베디드시스템설계강의자료 4 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

PowerPoint 프레젠테이션

교육지원 IT시스템 선진화

Microsoft PowerPoint - 03-Development-Environment-2.ppt

1. 안드로이드개발환경설정 안드로이드개발을위해선툴체인을비롯한다양한소프트웨어패키지가필요합니다 툴체인 (Cross-Compiler) 설치 안드로이드 2.2 프로요부터는소스에기본툴체인이 prebuilt 라는이름으로포함되어있지만, 리눅스 나부트로더 (U-boot)

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

망고100 보드로 놀아보자-4

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

지난시간에... 우리는 kernel compile을위하여 cross compile 환경을구축했음. UBUNTU 12.04에서 arm-2009q3를사용하여 간단한 c source를빌드함. 한번은 intel CPU를위한 gcc로, 한번은 ARM CPU를위한 gcc로. AR

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

Microsoft Word - Fedora Core 9 개발환경 최종본.docx

Microsoft PowerPoint - Building.pptx

Chap 10 안드로이드커널 (Kernel)

Chap 5 루트파일시스템 (Root F/S)

슬라이드 제목 없음

페도라 코어 5 설치 가이드

작성자 : 기술지원부 김 삼 수

PowerPoint 프레젠테이션

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx

USB 케이블만을이용한리눅스 NFS 개발환경 (VirtualBox) 최초작성 : 2010 년 10 월 21 일 작성자 : 김정현 수정내용 최초작성 by 김정현 스크립트추가, 설명보충 by 유형목 1. VritualBox

Mango-IMX6Q mfgtool을 이용한 이미지 Write하기

목차 개발환경 JTAG Bootp TFTP NFS 1

Code Generation in Rapid

Microsoft PowerPoint - 02-Development-Environment-1.ppt

고급 프로그래밍 설계

Microsoft PowerPoint SDK설치.HelloAndroid(1.5h).pptx

Microsoft PowerPoint - chap01-C언어개요.pptx

Microsoft PowerPoint - Cross Development Environment [호환 모드]

PowerPoint 프레젠테이션

01장

Sena Technologies, Inc. HelloDevice Super 1.1.0

임베디드 OS 실습 환경 설정 절차(Windows XP Professional)

Mango220 Android How to compile and Transfer image to Target

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

Install stm32cubemx and st-link utility

1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과

PowerPoint 프레젠테이션

1) 인증서만들기 ssl]# cat > // 설명 : 발급받은인증서 / 개인키파일을한파일로저장합니다. ( 저장방법 : cat [ 개인키

슬라이드 1

1) 인증서만들기 ssl]# cat > // 설명 : 발급받은인증서 / 개인키파일을한파일로저장합니다. ( 저장방법 : cat [ 개인키

untitled

Chap 3 부트로더 (Bootloader)

교육지원 IT시스템 선진화

PowerPoint 프레젠테이션

ISP and CodeVisionAVR C Compiler.hwp

PA for SWE2007

Raspbian 설치 라즈비안 OS (Raspbian OS) 라즈베리파이 3 Model B USB 마우스 USB 키보드 마이크로 SD 카드 마이크로 SD 카드리더기 HDM I 케이블모니터

PowerPoint 프레젠테이션

Microsoft Word - windows server 2003 수동설치_non pro support_.doc

Tizen

Copyright 2004 Sun Microsystems, Inc Network Circle, Santa Clara, CA U.S.A..,,. Sun. Sun. Berkeley BSD. UNIX X/Open Company, Ltd.. Sun, Su

Microsoft Word - VMware와 리눅스 설치_v0.11.doc

Microsoft PowerPoint - 02_Linux_Fedora_Core_8_Vmware_Installation [호환 모드]

PowerPoint 프레젠테이션

소프트웨어설치 1. 소프트웨어설치및제거 ( 소스코드 ) 소스코드컴파일을이용한 S/W 설치 1. 소스코드다운로드 - 예 ) httpd tar.gz - 압축해제 : #tar xzvf httpd tar.gz - INSTALL 또는 README파일참조

(SW3704) Gingerbread Source Build & Working Guide

리눅스설치가이드 3. 3Rabbitz Book 을리눅스에서설치하기위한절차는다음과같습니다. 설치에대한예시는우분투서버 기준으로진행됩니다. 1. Java Development Kit (JDK) 또는 Java Runtime Environment (JRE) 를설치합니다. 2.

PowerPoint 프레젠테이션

Mango-E-Toi Board Developer Manual

Microsoft Word - 3부A windows 환경 IVF + visual studio.doc

The Pocket Guide to TCP/IP Sockets: C Version

Mango-AM335x LCD Type 커널 Module Parameter에서 변경하기

PowerPoint 프레젠테이션

320TKU_Android_UserManual_1.0.hwp

슬라이드 1

Microsoft PowerPoint - 02_Installation

목차 윈도우드라이버 1. 매뉴얼안내 운영체제 (OS) 환경 윈도우드라이버준비 윈도우드라이버설치 Windows XP/Server 2003 에서설치 Serial 또는 Parallel 포트의경우.

Microsoft Word ARM_ver2_0a.docx

/chroot/lib/ /chroot/etc/

Abstract View of System Components

PowerPoint Presentation

<4D F736F F F696E74202D20C1A632C0E520C7C1B7CEB1D7B7A5B0B3B9DFB0FAC1A4>

28 THE ASIAN JOURNAL OF TEX [2] ko.tex [5]

KEY 디바이스 드라이버

강의 자료

1. Windows 설치 (Client 설치 ) 원하는위치에다운받은발송클라이언트압축파일을해제합니다. Step 2. /conf/config.xml 파일수정 conf 폴더에서 config.xml 파일을텍스트에디터를이용하여 Open 합니다. config.xml 파일에서, 아

Chap 8 호스트시스템개발환경구성및 안드로이드개발환경구축

1. efolder 시스템구성 A. DB B. apache - mod-perl - PHP C. SphinxSearch ( 검색서비스 ) D. File Storage 2. efolder 설치순서 A. DB (MySQL) B. efolder Service - efolder

Assign an IP Address and Access the Video Stream - Installation Guide

Microsoft PowerPoint - em8-리눅스설치.ppt

untitled

vi 사용법

커알못의 커널 탐방기 이 세상의 모든 커알못을 위해서

MV6410 Linux 마이크로비젼 MV6410-LCD Linux 활용가이드 마이크로비젼 MV6410 Linux 1

Snort Install Manual Ad2m VMware libnet tar.gz DebianOS libpcap tar.gz Putty snort tar.gz WinSCP snort rules 1. 첫번째로네트워크설정 1) ifconf

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

슬라이드 1

PowerPoint 프레젠테이션

INDEX 1. 개요 데이터백업스크립트작성 crontab 을이용한자동백업예약 활용 - 다른서버에백업하기

을풀면된다. 2. JDK 설치 JDK 는 Sun Developer Network 의 Java( 혹은 에서 Download > JavaSE 에서 JDK 6 Update xx 를선택하면설치파일을

메일서버등록제(SPF) 인증기능적용안내서 (AIX - sendmail) OS Mail Server SPF 적용모듈 (Perl 기반) 작성기준 AIX 5.3 sendmail spf-filter 년 6 월

네이버블로그 :: 포스트내용 Print VMw are 에서 Linux 설치하기 (Centos 6.3, 리눅스 ) Linux 2013/02/23 22:52 /carrena/ VMware 에서 l

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자

PowerPoint 프레젠테이션

RaspberryPi U-Boot & GPIO 제어 1 제 12 강 U-Boot + GPIO 제어 부트로더 U-Boot 부트로더 raw GPIO 제어 (LED, BTN) LED, BTN 제어

PowerPoint 프레젠테이션

메일서버등록제(SPF) 인증기능적용안내서 (HP-UX - qmail) OS Mail Server SPF 적용모듈 (Perl 기반) 작성기준 HP-UX 11.11i qmail 1.03 spf-filter 년 6 월

벤처연구사업(전동휠체어) 평가

Transcription:

Chap 2 임베디드시스템 개발환경구성

1. 임베디드시스템개발환경구축 1.1. 네트워크기반의개발관련툴 tftp는 2가지형태로구동된다. 아래의세부절은예전부터사용되고있는 xinetd 수퍼데몬기반의 tftp와기능이향상된 tftpd-hpa를설명한다. 시스템의환경에따라서설치이후에동작하지않는문제가있어두가지방법모두를기술하였다. 가상머신인 VMware를이용하는경우라면 xinetd기반의 tftp를설치하기바란다. 1.1.1. TFTP 설치 (Xinet 기반 ) TFTP(Trivial File Transfer Protocol / UDP) 는 FTP보다간단하지만기능이조금덜한네트워크애플리케이션이다. 이것은사용자인증이불필요하고디렉터리를보여주지않아도되는곳에사용된다. 임베디드시스템개발장치의 bootloader에서 u-boot, kernel, root filesystem 이미지를 Host 개발시스템으로부터 Target 임베디드장치로이더넷포트를통하여다운로드하기위해사용한다. 1 수퍼데몬 xinetd 를이용한 tftp 설치 VMware 를이용하는경우우분투설치후, tftp-hpa 를설치하고 bootloader 에서 tftp 연결을하지못하는경우에는이전버전의 tftp 를설치하여사용하도록한다. 설치 apt-get install 명령을이용하여다운로드한다. root@ubuntu:/# apt-get install tftp tftpd xinetd tftpd 환경설정 tftp가 xinetd에의해서구동되므로, xinetd가서비스하는환경디렉터리인 /etc/xinetd 디렉터리안에 tftp파일을작성한다. root@ubuntu:/# vi /etc/xinetd.d/tftp 2

service tftp { protocol = udp socket_type = dgram wait = yes user = root server = /usr/sbin/in.tftpd server_args = -s /tftpboot disable = no per_source = 11 cps = 100 2 flags = IPv4 } 서비스시작 root@ubuntu:/# service xinetd restart or root@ubuntu:/# /etc/init.d/xinetd restart tftpd 테스트 tftpboot 디렉터리를만들고해당디렉터리에 test.txt 파일을생성한다. 먼저아래와같이 /tftpboot 디렉터리를생성한다 ( 기존에생성하지않았다면생성한다.) root@ubuntu:/# mkdir /tftpboot 그리고 cat 명령을이용하여파일생성 root@ubuntu:/# cat > /tftpboot/test.txt HELLO (Ctrl + D를눌러저장및종료 ) 디렉터리이동후로컬호스트로 tftp 접속 /root 홈디렉터리로이동한다음, tftp 클라이언트로컬아이피또는 tftp 3

localhost 명령으로접속한다. 이제 get 명령으로앞서만든 test.txt 파일을가져오면 /root 디렉터리에 test.txt 파일이전송된다. cat 명령으로 test.txt의내용을콘솔로출력했을때, 앞서작성한 HELLO라는내용이출력되면정상적으로구동된다고판단할수있다. root@ubuntu:/# cd /root root@ubuntu:/# tftp 192.168.1.x tftp> get test.txt tftp> quit root@ubuntu:/# cat < test.txt 1.1.2. NFS 설치 (Network File System) 네트워크에있는파일시스템을연결하거나제어할때사용할수있으며, 원격지에있는호스트파일시스템연결에이용된다. 임베디드시스템처럼내장메모리가작은경우이기능을이용하여호스트파일시스템과연결한다. 소프트웨어개발시에는중간테스트처럼번잡하게테스트를많이하는경우주로이용된다. NFS 다운로드 root@ubuntu:/# apt-get install nfs-kernel-server 4

nfs-kernel-server 설정 root@ubuntu:/# vim /etc/exports 수정할내용은다음과같다. 처음환경설정파일인 /etc/exports 파일을열면, 일반적으로아무런내용이없다. 아래의내용을추가하고저장한다. vi 에디터를이용할경우내용을추가하기위해서 'i' 키를누른다. 내용를입력한다. 저장을위해서 ESC키를누르고, :wq 를입력한다음, 엔터를치면파일내용이저장되고에디터가종료된다. /nfsroot *(rw,sync,no_root_squash,no_subtree_check) nfs-kernel-server 서비스디렉터리생성 nfs-kernel-server 를이용하여외부에서연결될디렉터리를생성한다. 5

root@ubuntu:/# mkdir /nfsroot nfs-kernel-server 서비스재시작 root@ubuntu:/# service nfs-kernel-server start 1.2. USB를이용한개발툴설치 Achro-i.MX6Q는 USB를통해서 bootloader와커널등시스템에필요한요소들을다운로드할수있다. 그러므로 USB를통해서다운로드할수있도록도와주는개발툴을먼저설치한다. root@ubuntu:/# apt-get install libusb-dev 1.3. 커널빌드및빌드옵션관련툴설치 6

커널이나파일시스템등을빌드할경우 ncurses 라이브러리를이용하게된다. ncurses 라이브러리는텍스트기반에서좌표등을이용한형태로도형이나글자를출력할수있도록하는라이브러리다. 이라이브러리를이용하여텍스트기반에서그래픽을표시하고, 키버튼등의이벤트를처리하며, 메뉴를표시또는선택하는등의작업을할수있다. 리눅스커널이나파일시스템툴을사용하는경우, 화면에서텍스트기반의그래픽을이용하여모든옵션을선택한다. 때문에커널등의옵션등을변경해줄필요가있다면 ncurse 라이브러리를다운로드받아설치해야한다. root@ubuntu:/# apt-get install libncurses5-dev 1.4. 임베디드장치와호스트간의통신을하기위한툴임베디드시스템은출력을위한별도의터미널 ( 모니터 ) 을가지고있지않기때문에대부분의메시지를 Serial port를통해서확인한다. 그러려면장치와시리얼통신이가능한터미널프로그램이필요하다. Linux에서는일반적으로 minicom을이용하고, Windows 에서는 Hyper-Terminal 등을이용한다. 1.4.1. minicom 프로그램에대해서 minicom은호스트와 Achro-i.MX6Q 개발보드를연결해주는가상터미널이다. 윈도우즈에있는하이퍼터미널과같은기능을하는프로그램이다. 임베디드보드의경우시리얼장치를통해서장치의상태나명령을송수신하기때문에미니컴을통해타겟에서전송되는데이터를호스트에서볼수있다. minicom 프로그램은시리얼포트를통해통신하므로시리얼포트관련설정을해야한다. 미니컴은 bootloader의명령프롬프트를위한콘솔과부팅후리눅스의쉘프롬프트를위한콘솔로사용된다. 리눅스용터미널프로그램 (minicom) 설치 Live 설치의경우에는디폴트패키지가아니므로다운로드를하여설치해야, 시스템에서사용을할수있다. root@ubuntu:/# apt-get install minicom 7

연결된시리얼디바이스를검색하려면아래의명령어를입력한다. root@ubuntu:/# dmesg 명령어를입력하면화면에현재연결한컨트롤러가어떤디바이스의이름으로연 결되어있는지알수있다. 새로운 USB device 가인식된후에 ttyusb0 로인식되 는것을볼수있고 /dev 디렉토리아래 /dev/ttyusb0 의형태로생성이된다. - 설정모드진입 8

minicom 환경설정모드로진입하기위해서 -s 옵션을이용한다. root@ubuntu:/# minicom -s - 통신포트선택 Serial port setup 항목을선택한다. A 키를입력한다음, Serial Device를직렬케이블이연결된직렬포트로설정한다. 앞서검색했던포트 ( 필자의경우에는 /dev/ttyusb0) 를입력한다. - 통신속도설정 E 를눌러 bps/par/bits 를설정할수있는화면에서통신속도를 115200, Data 9

b i t 를 8, Stop bit를 1, parity를 NO로설정한다. E를눌러통신속도를맞추고 L, V, W 를차례로눌러속도를맞추거나 Q를눌러서한번에설정할수있다. - Flow Control 설정 F를눌러 Hardware Flow Control을 NO로설정, G를눌러 Software Flow C o n t r o l 을 NO로설정한다. - 설정값저장 Save setup as dfl 를선택한후 Enter 를눌러설정된값을저장한다. 저장후 E x i t 10

표 를눌러설정밖으로나간다. ( 그후타켓보드를켜면부팅화면이 minicom 에 된다.) 시 - 미니컴구동확인미니컴이실행된상태에서 PC와 Achro-i.MX6Q 의시리얼이연결되어있으면미니컴화면을통해보드의부트메시지를확인할수있고 bootloader 상태로진입할수있다. 11

1.4.2. 크로스컴파일러설치제공된 CD의 toolchain 디렉터리의 arm-2014.05-29-arm-none-linux-gnueabi-i686 -pc-linux-gnu.tar.bz을 /root/temp 디렉터리로복사한다음, 특정디렉터리에압축을풀고, 어떤디렉터리에서도사용할수있도록패스를설정함으로써크로스컴파일러설치가완료된다. 1 toolchain 설치 CD에포함된툴체인을 /opt/toolchains 디렉터리에복사해둔다. root@ubuntu:~/temp# cp -a /mnt/hgfs/achro-i.mx6q-1/dvd-1_src/toolchain/ar m-2014.05-29-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 /root/temp/ root@ubuntu:/#sync root@ubuntu:/#cd /root/temp root@ubuntu:/root/temp#mkdir /opt/toolchains root@ubuntu:/root/temp#tar jxvf arm-2014.05-29-arm-none-linux-gnueabi-i686- pc-linux-gnu.tar.bz -C /opt/toolchains/ 2 크로스컴파일러패스설정어느위치에서도크로스컴파일러를사용할수있게툴체인경로를시스템패스 (PATH) 에추가해야한다. 사용자의홈디렉터리에있는.bashrc에패스를추가하도록한다. 이후 bootloader등시스템관련일부소스를빌드할때, 크로스컴파일러설정에대한환경변수를확인하고컴파일이진행된다. 그러므로 CROSS_COMPILE 환경변수도아래와같이등록해주자. root@ubuntu:/# vim /root/.bashrc 12

# ~/.bash_aliases, instead of adding them here directly. # See /usr/share/doc/bash-doc/examples in the bash-doc package. if [ -f ~/.bash_aliases ]; then fi. ~/.bash_aliases # Cross Compiler - achroimx6q Android export CROSS_COMPILE=arm-none-linux-gnueabiexport PATH=/opt/toolchains/arm-2014.05/bin:$PATH export ARCH=arm 3 크로스컴파일러적용테스트크로스컴파일러의패스를갱신하려면리눅스를재부팅하거나아래의명령을통해서가능하다. 아래명령은현재사용하고있는터미널에서만환경이갱신되므로가급적리부팅을해줄것을권한다. 하지만, 패스를잘못설정해서시스템명령어까지사용하지못하는경우가발생할수있기때문에아래명령을이용해서크로스컴파일러와일반적인리눅스명령이잘동작하는지확인한다음리부팅해주자. 만약, 일반적인리눅스명령이동작되지않는다면리눅스를재부팅하지말고, 별도의터미널을하나더실행하여.bashrc를다시확인하고수정한다. 이어서 source 명령으로.bashrc 파일을갱신하고테스트를진행하여정상동작이확인되면리부팅한다. -.bashrc 스크립트갱신 root@ubuntu:/# source /root/.bashrc - 크로스컴파일러버전출력아래명령을입력했을때, gcc 버전이출력되면툴체인의경로가정상적으로설정된것이다. root@ubuntu:/# arm-none-linux-gnueabi-gcc --version 13

X root@ubuntu File Edit View Terminal Help root@ubuntu:/# arm-none-linux-gnueabi-gcc -version arm-none-linux-gnueabi-gcc (Sourcery CodeBench Lite 2014.05-29) 4.8.3 20140320 (prerelease) Copyright (C) 2013 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 4 컴파일테스트 vim 에디터를이용하여 helloworld.c 파일을작성하여크로스컴파일을한결과 를확인한다. helloworld.c 소스작성 root@ubuntu:/# vim helloworld.c 'i' 키를이용하여작성하고작성이완료되면, ESC키와 ":wq!" 를입력하여저장하고 vim 을종료한다. 수정할내용은다음과같다. #include <stdio.h> int main(int argc, char** argv) { printf("hello World!\n"); return 0; } 컴파일 root@ubuntu:/# arm-none-linux-gnueabi-gcc o helloworld helloworld.c 14

컴파일된바이너리확인 root@ubuntu:/# file./helloworld 15