임베디드시스템소프트웨어I -...

24
개발 개발 환경 환경 1 1 임베디드 임베디드 시스템 시스템 소프트웨어 소프트웨어 I I

Transcript of 임베디드시스템소프트웨어I -...

Page 1: 임베디드시스템소프트웨어I - Tistorycfs6.tistory.com/upload_control/download.blog?f... · 개발환경1 5 Host 시스템사양 O/S Red Hat Fedora Core 6 Network 10/100

개발개발 환경환경 11

임베디드임베디드 시스템시스템 소프트웨어소프트웨어 II

Page 2: 임베디드시스템소프트웨어I - Tistorycfs6.tistory.com/upload_control/download.blog?f... · 개발환경1 5 Host 시스템사양 O/S Red Hat Fedora Core 6 Network 10/100

개발 환경 1 2

차례차례

• 개발 환경

• Host와 Target의 연결

• Host 및 target 사양

• Toolchain이란, 설치 방법

• 시험 Cross Compile

• Minicom 설정 및 사용 방법

• JTAG 설치 및 사용 방법

• Bootloader, kernel, file system flash 방법

Page 3: 임베디드시스템소프트웨어I - Tistorycfs6.tistory.com/upload_control/download.blog?f... · 개발환경1 5 Host 시스템사양 O/S Red Hat Fedora Core 6 Network 10/100

개발 환경 1 3

개발개발 환경환경

• Host 시스템– 임베디드 소프트웨어를 개발하는 시스템– 일반 PC에 Linux 운영체제를 설치하여 사용– Cross compile 환경 필요(toolchain 설치)– Target 시스템에 연결하는 소프트웨어 설치 (minicom, JTAG 프

로그램 등)

• Target 시스템 (=KIT)– 개발된 임베디드 소프트웨어가 실제 수행되는 시스템– Target CPU가 탑재된 시스템에 Linux 운영체제 porting– Bootloader 및 특별한 flash 메모리용 file system 설치

• Host와 target의 연결– Serial 선– JTAG 선– USB 선– Ethernet 선

Page 4: 임베디드시스템소프트웨어I - Tistorycfs6.tistory.com/upload_control/download.blog?f... · 개발환경1 5 Host 시스템사양 O/S Red Hat Fedora Core 6 Network 10/100

개발 환경 1 4

HostHost와와 targettarget의의 연결연결

Host 시스템 Target 시스템연결

Ethernet 선

JTAG 선

Host 용터미널

Target 용터미널

(minicom)

Serial 선

Page 5: 임베디드시스템소프트웨어I - Tistorycfs6.tistory.com/upload_control/download.blog?f... · 개발환경1 5 Host 시스템사양 O/S Red Hat Fedora Core 6 Network 10/100

개발 환경 1 5

Host Host 시스템시스템 사양사양

Red Hat Fedora Core 6O/S

10/100 BaseTNetwork

Serial / JTAGI/O

DVD: x16, CD: x48CD-ROM

110GDisk

512MMemory

Pentium IV 2.8GHzCPU

실습실의 Host 시스템

Page 6: 임베디드시스템소프트웨어I - Tistorycfs6.tistory.com/upload_control/download.blog?f... · 개발환경1 5 Host 시스템사양 O/S Red Hat Fedora Core 6 Network 10/100

개발 환경 1 6

Target Target 시스템시스템 H/W H/W 사양사양

• CPU: Intel XScale PXA255 400MHz

• RAM: Samsung SDRAM 128MB

• ROM: Intel Flash 32MB• Screen: 6.4’’ TFT LCD (640 x 480)

• Touch Panel: BBADS7846E

• I/O: Serial, JTAG, USB 1.1(host/client), PCMCIA, Buttons, CMOS camera, IrDA, MIC, MMC

• Ethernet: CS8900A 10BaseT

• Audio: CS4202-JQ

• Cables: Power, Serial, Parallel, USB, Ethernet

• Case: Aluminum

Page 7: 임베디드시스템소프트웨어I - Tistorycfs6.tistory.com/upload_control/download.blog?f... · 개발환경1 5 Host 시스템사양 O/S Red Hat Fedora Core 6 Network 10/100

개발 환경 1 7

Target Target 시스템시스템 S/W S/W 사양사양

• O/S: Linux 2.4.19 kernel

• Device Drivers: CS8900A Ethernet, Frame

buffer, BBADS7846E(Touch Screen),

USB(host/client), PCMCIA, IrDA, CS4202-JQ

stereo audio

• File System: Ramdisk, JFFS2

Page 8: 임베디드시스템소프트웨어I - Tistorycfs6.tistory.com/upload_control/download.blog?f... · 개발환경1 5 Host 시스템사양 O/S Red Hat Fedora Core 6 Network 10/100

개발 환경 1 8

Target Target 시스템시스템 (PXA255(PXA255--pro2)pro2)

Page 9: 임베디드시스템소프트웨어I - Tistorycfs6.tistory.com/upload_control/download.blog?f... · 개발환경1 5 Host 시스템사양 O/S Red Hat Fedora Core 6 Network 10/100

개발 환경 1 9

HostHost와와 targettarget의의 연결연결

JTAG 케이블serial 케이블

Ethernet 케이블USB 케이블

Page 10: 임베디드시스템소프트웨어I - Tistorycfs6.tistory.com/upload_control/download.blog?f... · 개발환경1 5 Host 시스템사양 O/S Red Hat Fedora Core 6 Network 10/100

개발 환경 1 10

Cross compile Cross compile 환경환경

• Embedded 시스템은 매우 제한된 H/W 및 S/W resource를 가지고 있기 때문에 여기서 Embedded S/W를 개발할 수는 없다 (S/W 개발은 Host 시스템에서)

• 하지만 Host 컴퓨터의 processor와 Embedded 시스템의 processor는 다르기 때문에 Host 컴퓨터의 compiler를 사용하여 Embedded S/W를 compile할 수는 없다

• 그래서 Host 컴퓨터에서 작성된 프로그램을 Embedded 시스템에서 수행시키기 위하여 "Host to Embedded 시스템" cross compiler(교차 컴파일러)가 필요하다

• 일반적인 Linux 시스템에는 cross compiler가 설치되어있지 않기 때문에 개발에 필요한 cross compiler는 개발자가 설치하여야 한다

Page 11: 임베디드시스템소프트웨어I - Tistorycfs6.tistory.com/upload_control/download.blog?f... · 개발환경1 5 Host 시스템사양 O/S Red Hat Fedora Core 6 Network 10/100

개발 환경 1 11

ToolchainToolchain이란이란??

• Target 시스템에서 수행되는 소프트웨어를 개발하기 위해 필요한 Host 시스템의 cross compile 환경

• 소스 코드를 compile하고 link하여 binary 실행 파일을생성하는데 필요한 각종 utility 및 library의 모음

• 기본적으로 assembler, C compiler, linker, C library 등으로 구성되어 있다.

• GNU에서 제공하는 Toolchain을 사용

– GNU GCC for C, C++

– GNU binary utilities: assembler, linker various object file utilities

– GNU C library

Page 12: 임베디드시스템소프트웨어I - Tistorycfs6.tistory.com/upload_control/download.blog?f... · 개발환경1 5 Host 시스템사양 O/S Red Hat Fedora Core 6 Network 10/100

개발 환경 1 12

Toolchain Toolchain 설치설치 방법방법

• ARM CPU 용 toolchain 설치– Target 시스템에 포함된 CD에 arm-cross-compiler.tar.bz2라

는 파일이 있다

# mount /dev/cdrom /mnt/cdrom# cd /mnt/cdrom/Toolchain# cp arm-cross-compiler.tar.bz2 /usr/local# cd /usr/local# tar xvjf arm-cross-compiler.tar.bz2

# mount /dev/cdrom /mnt/cdrom# cd /mnt/cdrom/Toolchain# cp arm-cross-compiler.tar.bz2 /usr/local# cd /usr/local# tar xvjf arm-cross-compiler.tar.bz2

/usr/local/arm-linux 디렉토리가 만들어짐

Page 13: 임베디드시스템소프트웨어I - Tistorycfs6.tistory.com/upload_control/download.blog?f... · 개발환경1 5 Host 시스템사양 O/S Red Hat Fedora Core 6 Network 10/100

개발 환경 1 13

$ vi .bashrc…export PATH=/usr/local/arm-linux/bin:$PATH…

$ . .bashrc

$ vi .bashrc…export PATH=/usr/local/arm-linux/bin:$PATH…

$ . .bashrc

Toolchain Toolchain 설치설치 방법방법

• 설치된 Toolchain 사용을 위한 Path 설정– PATH 설정

Tool chain이 설치된 위치

수정된 .bash_profile 적용

$ export PATH=/usr/local/arm-linux/bin:$PATH

Page 14: 임베디드시스템소프트웨어I - Tistorycfs6.tistory.com/upload_control/download.blog?f... · 개발환경1 5 Host 시스템사양 O/S Red Hat Fedora Core 6 Network 10/100

개발 환경 1 14

시험시험 Cross CompileCross Compile

$ vi hello.c

#include<stdio.h>

int main(void)

{

printf("Hello Embedded\n");

return 0;

}

$ arm-linux-gcc –o arm-hello hello.c

$ file arm-hello

arm-hello : ELF 32-bit LSB executable, ARM, version 1 (ARM), for

GNU/Linux 2.4.18, dynamically linked (uses shared libs), not stripped

$ vi hello.c

#include<stdio.h>

int main(void)

{

printf("Hello Embedded\n");

return 0;

}

$ arm-linux-gcc –o arm-hello hello.c

$ file arm-hello

arm-hello : ELF 32-bit LSB executable, ARM, version 1 (ARM), for

GNU/Linux 2.4.18, dynamically linked (uses shared libs), not stripped

Page 15: 임베디드시스템소프트웨어I - Tistorycfs6.tistory.com/upload_control/download.blog?f... · 개발환경1 5 Host 시스템사양 O/S Red Hat Fedora Core 6 Network 10/100

개발 환경 1 15

Minicom Minicom 설정설정 방법방법• 명령어 줄 "su root" 수행• 명령어 줄 "minicom –s" 수행• " Serial port setup " 선택 후 [Enter]

– A -> /dev/ttyS0 [Enter]– E -> I [Enter] // Speed-115200,

// Parity-No, Data-8, Stop-1– F // Hardware Flow Control-No– [ESC]

• "Modem and dialing" 선택 후 [Enter]– A -> [BS]…[Enter] // Init string 지우기– B -> [BS]…[Enter] // Reset string 지우기– [ESC]

• "Save setup as dfl" 선택 후 "Exit from minicom" 선택• 명령어 줄 "chmod 666 /dev/ttyS0" 수행• 명령어 줄 "chmod 777 /var/lock" 수행• 명령어 줄 "exit" 수행

Page 16: 임베디드시스템소프트웨어I - Tistorycfs6.tistory.com/upload_control/download.blog?f... · 개발환경1 5 Host 시스템사양 O/S Red Hat Fedora Core 6 Network 10/100

개발 환경 1 16

Minicom Minicom 사용사용 -- KIT loginKIT login• 연결 절차

– Host 및 KIT의 전원이 off된 상태에서 Host의 serial 포트와 KIT의 serial 포트를 cable로 연결함

– Host를 on하여 booting하고 KIT를 on하여 booting함• 주의: 해체는 연결의 역순이며 Host와 KIT의 전원이 켜져 있

는 상태에서 serial cable을 연결하거나 및 해체하면 안됨• 명령어 줄 "minicom" 수행 후 KIT를 on

– [Enter] 를 치면 화면에 "PXA255-pro login: " 나옴– root 로 login함(password는 없음)

– 명령어 줄 "exit" 수행 // root에서 logout– ^Ax // minicom 끝내기

• KIT를 off한 후 Host를 shutdown함• Host와 KIT의 serial 선 해체

여기서 KIT의 Embedded Linux를 사용함

Page 17: 임베디드시스템소프트웨어I - Tistorycfs6.tistory.com/upload_control/download.blog?f... · 개발환경1 5 Host 시스템사양 O/S Red Hat Fedora Core 6 Network 10/100

개발 환경 1 17

Minicom Minicom 사용사용 -- 파일파일 uploadupload

• Host에 있는 파일 "FILE"을 KIT로 upload– minicom을 수행하여 KIT로 login한다

– KIT의 원하는directory로 간다

– KIT에서 명령어 "rz"를 친다(주: rz는 receive zmodem protocol의 줄임말로 KIT 입장에서는receive임)

– Minicom에서 "^As"를 쳐서 파일을 send할 준비한다(주: Host minicom 입장에서는 send 임)

– Host에 있는 파일 "FILE"을 선택하여 KIT로 보낸다

– 얼마간의 시간이 지나면 성공적인 send가 일어났다는 메시지가 나오고 자동으로 KIT의 Linux로 돌아온다

– KIT의 Linux에서 파일 "FILE"을 확인한다

Page 18: 임베디드시스템소프트웨어I - Tistorycfs6.tistory.com/upload_control/download.blog?f... · 개발환경1 5 Host 시스템사양 O/S Red Hat Fedora Core 6 Network 10/100

개발 환경 1 18

JTAGJTAG

• JTAG은 Joint Test Access Group의 준말

• 기본 용도

– 보드 내 회로의 배선 및 소자의 연결 상태 점검

– flash 메모리에 write할 때

• 기본 구조

– 보드 내 소자의 외부 연결점에 하나의 셀을 설치

– 각각의 셀은 시리얼 쉬프트 레지스터(바운더리 스캔

레지스터)를 형성하고 서로 연결됨

– 전체적인 인터페이스는 5개의 핀에 의해서 제어 (TDI,

TMS, TCK, nTRST, TDO)

Page 19: 임베디드시스템소프트웨어I - Tistorycfs6.tistory.com/upload_control/download.blog?f... · 개발환경1 5 Host 시스템사양 O/S Red Hat Fedora Core 6 Network 10/100

개발 환경 1 19

JTAGJTAG

• Boundary-Scan Test Interface JTAG Diagram

소자의 연결 상태점검

Registers

Flash 메모리 writeTAP

DigitalChip

Page 20: 임베디드시스템소프트웨어I - Tistorycfs6.tistory.com/upload_control/download.blog?f... · 개발환경1 5 Host 시스템사양 O/S Red Hat Fedora Core 6 Network 10/100

개발 환경 1 20

JTAG JTAG 설치설치 방법방법

• Huins CD에 있는 Jflash 소스 파일인 "pxa255-jtag.tar.gz"를 Host로 복사한다

• 다음 명령어 줄을 차례로 수행한다

# tar xvzf pxa255-jtag.tar.gz

# cd include-0.2.3

# ./configure

# make install

# cd ../jtag-0.4

# ./configure

# make

# make install

Page 21: 임베디드시스템소프트웨어I - Tistorycfs6.tistory.com/upload_control/download.blog?f... · 개발환경1 5 Host 시스템사양 O/S Red Hat Fedora Core 6 Network 10/100

개발 환경 1 21

JTAG JTAG 사용사용 방법방법

• 연결 절차

– Host 및 KIT의 전원이 off된 상태에서 Host의 parallel 포트에 KIT의 JTAG cable을 연결함

– Host를 on하여 booting하고 KIT를 on하여 booting함

• 주의: 해체는 연결의 역순이며 Host와 KIT의 전원이 켜져 있는 상태에서 JTAG cable을 연결하거나및 해체하면 안됨

• 사용 방법

# jtag

jtag> cable parallel 0x378 PXA255

jtag> detect

jtag> detectflash

Page 22: 임베디드시스템소프트웨어I - Tistorycfs6.tistory.com/upload_control/download.blog?f... · 개발환경1 5 Host 시스템사양 O/S Red Hat Fedora Core 6 Network 10/100

개발 환경 1 22

Flash Flash 방법방법 -- JTAGJTAG

• JTAG를 사용한 flash 방법– flash 대상 파일이 있는 디렉토리로 이동– root permission에서 jtag 실행– jtag 초기화 후 다음 명령수행

• Bootloaderjtag> flashmem 0x00000000 blob

• Kerneljtag> flashmem 0x00080000 zImage

• Filesystemjtag> flashmem 0x00200000 ramdisk.gzjtag> flashmem 0x00800000 jffs2

Page 23: 임베디드시스템소프트웨어I - Tistorycfs6.tistory.com/upload_control/download.blog?f... · 개발환경1 5 Host 시스템사양 O/S Red Hat Fedora Core 6 Network 10/100

개발 환경 1 23

Flash Flash 방법방법 -- SerialSerial• Serial을 사용한 flash 방법

– minicom을 사용해 KIT를 부트로더 상태로 부팅

• Bootloaderboot> xdownload blob

^As 키를 누른후 xmodem 선택, blob 파일 선택• Kernel

boot> xdownload kernel ^As 키를 누른후 xmodem 선택, zImage 파일 선택

• Filesystemboot> xdownload ramdisk

^As 키를 누른후 xmodem 선택, ramdisk.gz 파일 선택boot> xdownload usr

^As 키를 누른후 xmodem 선택, jffs2 파일 선택(참고: 파일 선택은 spacebar를 한번 누른다)

• 파일을 download한 후, flash {blob|kernel|ramdisk|usr} 명령을통해 flash한다.

Page 24: 임베디드시스템소프트웨어I - Tistorycfs6.tistory.com/upload_control/download.blog?f... · 개발환경1 5 Host 시스템사양 O/S Red Hat Fedora Core 6 Network 10/100

개발 환경 1 24

참고참고 문헌문헌

• 정보통신연구진흥원, 한국정보처리학회,

임베디드 시스템 소프트웨어 I 교안, 2004.

• 휴인스, 홍릉과학출판사, Intel PXA255와

임베디드 리눅스 응용, 2004

• 상명대학교 임베디드 시스템 소프트웨어

트랙, http://et.smu.ac.kr, 2004.