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

19
- 1 - 임임임임 임임임 임임임임 임임 Embedded System Development Environment II

Upload: tasya

Post on 07-Jan-2016

93 views

Category:

Documents


0 download

DESCRIPTION

Embedded System Development Environment II. 임베디드 시스템 개발환경 구성. Embedded System Development Environment II. 호스트 개발환경 구성 네트워크 설정 우분투를 이용한 개발환경 설정시에는 인터넷 연결이 되어야 패키지를 설치할 수 있다 . 통신 테스트 한국 통신 DNS Server : 168.126.63.1. Embedded System Development Environment II. 네트워크 설정 변 경 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 임베디드  시스템 개발환경 구성

- 1 -

임베디드 시스템 개발환경 구성Embedded System Development Environment II

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

- 2 -Huins. R&D Center

Embedded System Development Environment II

호스트 개발환경 구성 네트워크 설정 우분투를 이용한 개발환경 설정시에는 인터넷 연결이 되어야 패키지를 설치할 수 있다 .

통신 테스트

한국 통신 DNS Server : 168.126.63.1

# ping 168.126.63.1

2

Page 3: 임베디드  시스템 개발환경 구성

- 3 -Huins. R&D Center

Embedded System Development Environment II

네트워크 설정 변경 통신이 정상적으로 되지 안는 경우 네트워크 설정 방법 ( 네트워크 설정은 현재 사용하고 있는 네트워크 구성에 따라 ip 설정을 해 주어야 한다 )

호스트 시스템 ip 설정확인 네트워크가 장치가 정상적으로 설정되어있으면 eth 혹은 wlan 장치가 표시됨

lo : local loopback

eth[n] : 유선 이더넷 장치 wlan[n] : 무선랜 장치

# ifconfig

3

root@ubuntu:~# ifconfig

lo Link encap:Local Loopback

inet addr:127.0.0.1 Mask:255.0.0.0

inet6 addr: ::1/128 Scope:Host

UP LOOPBACK RUNNING MTU:16436 Metric:1

RX packets:521 errors:0 dropped:0 overruns:0 frame:0

TX packets:521 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:0

RX bytes:34140 (34.1 KB) TX bytes:34140 (34.1 KB)

Page 4: 임베디드  시스템 개발환경 구성

- 4 -Huins. R&D Center

Embedded System Development Environment II

우분투에서 ip 네트워크 설정하기 우분투는 Xwindow 의 네트워크 커넥션 메뉴를 통해 네트워크 관련 설정을 할 수 있다 .

4

Page 5: 임베디드  시스템 개발환경 구성

- 5 -Huins. R&D Center

Embedded System Development Environment II

TFTP 설치 (tftpd-hpa) – 개선된 tftp

Trivial File Transfer Protocol(UDP), FTP 보다 가볍고 기능이 단순한 애플리케이션 부트로더에서 부트로더 이미지 혹은 커널을 다운로드 할 경우 이용할 수 있다 .

tftp download

tftp 설정

tftp 서비스 디렉터리 생성

tftpd-hpa 서비스 재시작

# apt-get install tftp tftpd-hpa

# Defaults for tftpd-hpaRUN_DAEMON=“yes”OPTIONS=“-l -s /tftpboot”

# vim /etc/default/tftpd-hpa

# mkdir /tftpboot

# service tftpd-hpa stop# service tftpd-hpa start

5

Page 6: 임베디드  시스템 개발환경 구성

- 6 -Huins. R&D Center

Embedded System Development Environment II

TFTP 설치 (tftpd) – xinetd 수퍼데몬으로 구동되는 tftpd tftp download

tftp 설정

tftp 서비스 디렉터리 생성

tftpd-hpa 서비스 재시작

# apt-get install xinetd tftpd tftp

service tftp{protocol       = udpport               = 69socket_type = dgramwait                = yesuser                = nobodyserver            = /usr/sbin/in.tftpdserver_args  = /tftpbootdisable           = no}

# vim /etc/xinetd.d/tftp

# mkdir /tftpboot

# service xinetd stop | start

6

Page 7: 임베디드  시스템 개발환경 구성

- 7 -Huins. R&D Center

Embedded System Development Environment II

TFTP 테스트 tftpd-hpa 및 tftpd 설치 및 설정후 테스트

tftp 디렉터리로 이동후 파일 생성

Home 디렉터리로 이동

# cd /tftpboot# cat > /tftpboot/test.txt Hello World(Ctrl + D 를 눌러 입력 내용 저장 )

# cd /root

# tftp 192.168.1.x tftp> get test.txt tftp> quit

# cat < test.txt Hello World

7

Page 8: 임베디드  시스템 개발환경 구성

- 8 -Huins. R&D Center

Embedded System Development Environment II

NFS 설치 원격지에 있는 호스트의 특정 디렉터리를 임베디드 시스템의 특정 디렉터리와 연결

NFS 다운로드

nfs 설정파일 수정

nfs 디렉터리 생성

nfs 서비스 재 시작

# apt-get install nfs-kernel-server

# vim /etc/exports

... ( 생략 ) …/nfsroot *(rw,sync,no_root_squash,no_subtree_check)

# mkdir /nfsroot

# service nfs-kernel-server start | stop

8

Page 9: 임베디드  시스템 개발환경 구성

- 9 -Huins. R&D Center

Embedded System Development Environment II

USB Download Tool 설치 최근 임베디드 장치는 부트로더에서 USB 를 통해 데이터를 다운로드 할 수 있음

호스트에서 개발을 usb 장치를 사용하기 위한 라이브러리 다운로드

개발 플랫폼 usb 다운로더 설치

BL1 Tool 설치

# apt-get install libusb-dev

# mkdir /root/temp# cp /media/[Achro-4210 Disc]/utilities/linux_tools/smdk-usbdl.tar.gz /root/temp# cd /root/temp# tar zxvf smdk-usbdl.tar.gz# cd /root/temp/dltools# ls dltool.c Makefile readme.txt smdk-usbdl# cp –a smdk_usbdl /usr/bin

# mkdir /root# mkdir /root/temp# cd /root/temp# cp /media/[Achro-4210 Disc]/utilities/linux_tools/makechecksum/makechecksum.tar.gz ./# tar zxvf makechecksum.tar.gz# cd makechecksum# make# make install

9

Page 10: 임베디드  시스템 개발환경 구성

- 10 -Huins. R&D Center

Embedded System Development Environment II

시리얼 통신 터미널 다운로드 (minicom)

리눅스에서 사용되는 시리얼 통신 관련 터미널 애플리케이션 minicom 을 이용하여 보드에서 출력되는 메시지를 보거나 , 리눅스 명령을 입력

minicom 설정

# minicom -s

# apt-get install minicom

10

Page 11: 임베디드  시스템 개발환경 구성

- 11 -Huins. R&D Center

Embedded System Development Environment II

minicom 동작확인호스트 PC 와 임베디드 보드를 시리얼 케이블로연결한 다음 전원을 인가하면 , 임베디드 보드에서메시지가 출력되는 것을 확인할 수 있음 .

11

Enter 를 눌러 상위 메뉴로 이동

기본 설정값으로 저장

기본 설정값으로 저장후 다시 실행할 때는minicom 만 입력하면 현재 설정을 적용한터미널이 실행됨

Page 12: 임베디드  시스템 개발환경 구성

- 12 -Huins. R&D Center

Embedded System Development Environment II

툴체인 설치 ( 크로스 컴파일러 ) 쉘 변경 : Configuring dash 에서 No 를 선택

툴체인 설치

# dpkg-reconfigure -plow dash

# mkdir /root/temp (root 사용자 홈디렉터리인 /root 에 temp 디렉터리가 없다면 생성한다 .)

# cp -a /media/(Achro Disc)/toolchain/arm-2009q1-203-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz /

root/temp/

# sync

# cd /root/temp

# ls

arm-2009q1-203-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz

# mkdir /opt/toolchains

# tar jxvf arm-2009q1-203-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz -C /opt/toolchains/

12

Page 13: 임베디드  시스템 개발환경 구성

- 13 -Huins. R&D Center

Embedded System Development Environment II

크로스 컴파일러 패스 설정# vim /root/.bashrc

# Alias definitions.# You may want to put all your additions into a separate file like# ~/.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. ~/.bash_aliasesfi# Cross Compiler - achro4210 Androidexport PATH=/opt/toolchains/arm-2009q1/bin:$PATH

13

Page 14: 임베디드  시스템 개발환경 구성

- 14 -Huins. R&D Center

Embedded System Development Environment II

크로스 컴파일러 패스 적용

크로스 컴파일러 버전 출력

# source /root/.bashrc

# cd /root# arm-none-linux-gnueabi-gcc --v

14

Page 15: 임베디드  시스템 개발환경 구성

- 15 -Huins. R&D Center

Embedded System Development Environment II

컴파일 테스트를 위한 테스트코드 작성

소스코드 내용 입력

소스코드 컴파일

컴파일 된 바이너리 확인

# vim helloworld.c

#include <stdio.h>int main(int argc, char** argv){ printf("Hello World!\n"); return 0;}

# arm-none-linux-gnueabi-gcc -o helloworld helloworld.c

# file ./helloworld

15

Page 16: 임베디드  시스템 개발환경 구성

- 16 -Huins. R&D Center

Embedded System Development Environment II

microSD 초기화 SD 카드 초기화 Achro-4210 은 구동시 필요한 모든 데이터는 microSD 카드를 이용 microSD 를 새로 구입하거나 , 처음부터 새로 전체 내용을 기록하려면 초기화가 필요

microSD 카드 연결 확인 microSD 카드를 카드리더에 연결한 다음 호스트 리눅스에 장착하고 dmesg 명령을 이용하여 어떤 디바이스 이름으로 장치가 연결되었는지 확인한다 .

# dmesg

16

Page 17: 임베디드  시스템 개발환경 구성

- 17 -Huins. R&D Center

Embedded System Development Environment II

SD 카드 초기화 : 메모리의 모든 내용을 0 으로 만듦 .

SD 카드 파티션 설정 – 사용할 파일 시스템을 설정 ( 영역 분리 ) RAW 영역 : MBR, 부트로더 및 커널이 기록되는 영역 (0~8) 첫번째 파티션 : Achro4210_System (9 ~ 146) 두번째 파티션 : Achro4210_Data (147 ~ End of Cylinder)

# cd /root/images# dd if=/dev/zero of=/dev/sdb bs=64Kdd: `/dev/sdd' 쓰는 중 : No space left on device

30177+0 레코드 들어옴30176+0 레코드 나감1977614336 바이트 (2.0 GB) 복사됨 , 683.012 초 , 2.0 M/B/ 초root@largest-desktop:~/images#

# fdisk /dev/sdbWARNING: DOS-compatible mode is deprecated. It's strongly recommended toswitch off the mode (command 'c') and change display units tosectors (command 'u').Command (m for help): p ...①Disk /dev/sdd: 1977 MB, 1977614336 bytes61 heads, 62 sectors/track, 1021 cylindersUnits = cylinders of 3782 * 512 = 1936384 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x49791684Device Boot Start End Blocks Id System

17

Page 18: 임베디드  시스템 개발환경 구성

- 18 -Huins. R&D Center

Embedded System Development Environment II

Command (m for help): n ...②Command actione extendedp primary partition (1-4) ...③p Partition number (1-4): 1 ...④First cylinder (1-1021, default 1): 9 ...⑤Last cylinder, +cylinders or +size{K,M,G} (10-1021, default 1021): 146 ...⑥Command (m for help): n ...⑦Command actione extendedp primary partition (1-4)P ...⑧Partition number (1-4): 2 ... ⑨First cylinder (1-1021, default 1): 147 ...⑩Last cylinder, +cylinders or +size{K,M,G} (147-1017, default 1017): 1017 ... ⑪Command (m for help): w ... ⑫

The partition table has been altered!Calling ioctl() to re-read partition table.Syncing disks.

18

Page 19: 임베디드  시스템 개발환경 구성

- 19 -Huins. R&D Center

Embedded System Development Environment II

파일 시스템 초기화 – 실제 파일 시스템 생성 시스템 영역 파티션 초기화

데이터 영역 파티션 초기화

# mkfs.ext3 -L Achro4210_System /dev/sdb1

# mkfs.ext3 -L Achro4210_Data /dev/sdb2

19