PowerPoint Presentation

Similar documents
슬라이드 제목 없음

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

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

PowerPoint 프레젠테이션

Microsoft Word ARM_ver2_0a.docx

Chapter. 5 Embedded System I Bootloader, Kernel, Ramdisk Professor. Jaeheung, Lee

Mango220 Android How to compile and Transfer image to Target

PowerPoint 프레젠테이션

Microsoft PowerPoint - ARM 개발 환경.ppt

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

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

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


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

Microsoft PowerPoint - 01_Overview

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

DE1-SoC Board

歯J PDF

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

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

Microsoft PowerPoint - 06-CompSys-11-System.ppt

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

untitled

Sun Java System Messaging Server 63 64

Microsoft Word - Armjtag_문서1.doc

Copyright 2012, Oracle and/or its affiliates. All rights reserved.,.,,,,,,,,,,,,.,...,. U.S. GOVERNMENT END USERS. Oracle programs, including any oper

슬라이드 1

PCServerMgmt7

Sena Technologies, Inc. HelloDevice Super 1.1.0

슬라이드 1

ESP1ºÎ-04

vm-웨어-01장

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

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

Microsoft PowerPoint - linux intro.pptx

초보자를 위한 C++

Solaris Express Developer Edition

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

2013년 1회 정보처리산업기사 실기.hwp

6주차.key

슬라이드 1

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

Install stm32cubemx and st-link utility

untitled

RealDSP UT 프로그램 메뉴얼

Here is a "PLDWorld.com"... // EXCALIBUR... // Additional Resources // µc/os-ii... Page 1 of 23 Additional Resources: µc/os-ii Author: Source: HiTEL D

KEY 디바이스 드라이버

슬라이드 1

ARM01

4S 1차년도 평가 발표자료

PowerPoint 프레젠테이션

Code Generation in Rapid

Microsoft PowerPoint - AME_InstallRoutine_ver8.ppt

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

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

(Microsoft PowerPoint - AndroG3\306\367\306\303\(ICB\).pptx)

PowerPoint 프레젠테이션

vm-웨어-앞부속

인켈(국문)pdf.pdf

슬라이드 1

ISP and CodeVisionAVR C Compiler.hwp

untitled

슬라이드 1

KDTÁ¾ÇÕ-1-07/03

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

Microsoft Word - s.doc

GNU/Linux 1, GNU/Linux MS-DOS LOADLIN DOS-MBR LILO DOS-MBR LILO... 6

Microsoft Word - CooCox

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

Microsoft PowerPoint - e7.pptx

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

Copyright 0, Oracle and/or its affiliates. All rights reserved.,.,,,,,,,,,,,,.,...,. U.S. GOVERNMENT RIGHTS Programs, software, databases, and related

Microsoft PowerPoint - 02_Linux_Fedora_Core_8_Vmware_Installation [호환 모드]

PowerPoint 프레젠테이션

슬라이드 1


기술 이력서 2.0

JDK이클립스

Unix & Linux 개요 Company 서울대학교통계학과 2010년 2학기컴퓨터의개념및실습 ( Thanks to: cancho & facewhite from SPARC/KAIST, Bruce La Plante fro

슬라이드 1

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

Backup Exec

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

목 차 Ⅰ. 일반사항 1 Ⅱ. 특기사항 3 Ⅲ. 물품내역 및 세부규격 8 Ⅳ. 주의사항

Microsoft PowerPoint 통신 및 압축 명령어.ppt

LEICA C-LUX

PowerPoint 프레젠테이션

Microsoft PowerPoint - 01_Linux_Introduction.ppt [자동 저장]

Integ

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

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

Agenda 오픈소스 트렌드 전망 Red Hat Enterprise Virtualization Red Hat Enterprise Linux OpenStack Platform Open Hybrid Cloud

SMB_ICMP_UDP(huichang).PDF

What is Unix? A multi-task and multi-user Operating System Developed in 1969 at AT&T s Bell Labs by Ken Thompson (Unix) Dennis Ritchie (C) Douglas Mcl

API 매뉴얼

Microsoft Word - AVRISP mkII 장비 운용.doc

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

(Microsoft PowerPoint - \270\266\300\314\305\251\267\316\304\250USB_Host_Device_\272\316\306\256\267\316\264\365\275\307\275\300_Philip.ppt)

Transcription:

KOSR 공개세미나 - 임베디드리눅스 - 김도집 2006.2.18

본강좌의목표 임베디드리눅스입문하는분 맛뵈기를보여드립니다. 리눅스를설치하긴부담스러운분 리눅스설치하지않아도됩니다. 임베디드하드웨어를구하기어려운분 비싼하드웨어사지않아도됩니다. 2

1. 리눅스이해및 개발환경구성

리눅스란? UNIX 계열의운영체제 오픈소스 다양한아키텍처지원 자유 (Free) 지만, 공짜 (Free) 는아니다. FSF (Free Software Foundation) GNU (Gnu is Not Unix) GPL v1, v2, v3, LGPL, BSDL 4

Unix 의역사 Before UNIX Multics: 1965, AT&T (Bell Lab), General Electronic, MIT Epoch BSD 1969, Ken Thompson, Space Travel on PDP-7 Dennis Ritche, Joseph Ossanna, Ray Tomlinson (BBN) s5fs, ed, shell (Bourn shell의조상 ) 1973년 The UNIX Time Sharing System in CACM Billy Joy, Chuch Haley ( 대학원생??) ex, csh, paging based virtual memory system, TCP/IP, ffs, socket 1993년 4.4BSD (final version, 이후 BSDI 회사 ) AT&T System V Version 1,2,,7, System III, System V, SVR4.2/ESMP region based virtual memory, IPC, remote file sharing, STREAM, 5

Unix 의역사 Commercial UNIX XENIX (MS, SCO), SCO UNIX (SCO), AIX (IBM, Journaling FS), HP-UX (HP), ULTRIX (DEC, 최초의 MP), OSF/1 (Digital),. SunOS (Sun Microsystems, VFS, NFS), Solaris, Unixware (Novell) Mach 최초의 micro-kernel chorus, Exo-kernel, SPIN, L4,. http://ssrnet.snu.ac.kr/~choijm/current_os.html standard Linux SVID(System V Interface Definition), POSIX (IEEE), X/OPEN (Inc.) UI (SUN, AT&T : Solaris), OSF (OSF/1) 1991, Linus Torvalds, Performance-Oriented, based on MINIX Philosophy of COPYLEFT 6

리눅스입문 리눅스를이용하여개발하고자한다면? 윈도우의도스창과친해야한다. 리눅스와친해져야한다. 리눅스를설치해서사용해본다. 쉘 (shell) 환경및사용에익숙해진다. 리눅스의부팅및구조에익숙해진다. 7

임베디드시스템 독립적인내장형시스템 MCU가내장된시스템 하나이상의독립된기능을수행 실행이되면정해진기능을수행 { 세탁기, 냉장고, TV, 휴대폰 } vs {PC} 8

개발환경 (H/W) ROM 라이터 / 이레이저 Oscilloscope/Logic analizer 툴체인및개발환경을제공한다. 개발호스트 USB/ 이더넷 디버거 상용디버거의경우소스코드레벨의실시간디버깅을제공한다. 타겟시스템 시리얼 이더넷 JTAG 시스템 F/W 및리눅스를올리고자하는시스템이다. 9

개발환경 (S/W) 툴체인 컴파일러, 라이브러리, bin-utils IDE Eclipse Editor vi / emacs / UltraEdit / SourceInsight 디버깅소프트웨어 상용디버깅소프트웨어 GDB/Insight Terminals minicom / Token2(plus) / Teraterm / Hyperterminal Skyeye(armulator) / Cygwin / etc 10

툴체인 임베디드시스템의개발의경우 컴파일을하는시스템 ( 호스트 ) 과 실행을하는시스템 ( 타겟시스템 ) 이다르다 크로스컴파일러등의개발도구필요 툴체인 (toolchains) 타겟시스템을위한컴파일관련도구를제공한다. 컴파일러, 라이브러리, bin-utils 등 11

Cygwin 윈도우에서리눅스와유사한환경을제공 리눅스 API를위한에뮬레이션제공 (cygwin1.dll) 리눅스에서사용하는다양한프로그램제공 http://www.cygwin.com 에서 Install or update now! 를통해설치및업데이트가능. 12

클릭 13

인터넷에서직접다운로드해서설치하거나설치는하지않고다운로드만도가능하다. 이후다운로드받은것으로설치도가능한다. 루트디렉토리가될경로를결정한다. 이곳이바로 cygwin 과관련된프로그램이위치하게된다. 14

다운로드받은것을임시로저장할경로를지정한다. 인터넷연결방식을결정한다. 어디에서다운로드받을지를선택한다. 15

설치할패키지를선택한다. 바이너리뿐만소스도설치할수있다. 설치뿐만아니라업데이트시에도동일한환경을제공한다. 설치가끝나면바탕화면에 Cygwin 이라는아이콘이생기며이를클릭하면 cygwin 의 shell 창이나타난다 ( 윈도우의 cmd 창과비슷하다 ) cygwin 실행화면 16

한글이깨지는경우.bashrc 파일에서 ls='ls -hf --color=tty' 를 alias ls='ls -hf --color=tty --show-control-char' 로수정한다..inputrc 파일에서다음의주석을풀어준다. set meta-flag on set convert-meta off set input-meta on set output-meta on 17

프롬프트가너무길다 profile 에서 PS1 의값을다음과같이변경한다. PS1=' u W] $ ' 18

Cygwin binutils gcc make 19

툴체인 (1/2) 윈도우에서툴체인을사용하는경우 Cygwin을이용 윈도우용툴체인을사용 toolchains for windows http://www.gnuarm.org 20

21

설치경로중 Program Files 와같이공백이있는경우사용시에문제가될수있다. 따라서 C: GNUARM 과같은경로에설치한다. 22

23

24

Cygwin 을실행하고그창에서 arm-elf-gcc v 를실행하면아래와같은화면을볼수있다. 25

arm-elf-gcc arm-elf-gcc -Wall -O2 -o target source arm-elf-gcc -Wall -O2 -c source arm-elf-gcc -Wall -O -g -o target source arm-elf-strip file arm-elf-objdump -S file > file.dump arm-elf-objdump -x file > grep NEEDED 26

툴체인 (2/2) 리눅스에서툴체인사용하는경우 소스를가져와서직접빌드 스크립트를이용하여빌드 ( 권장 ) 바이너리를이용 ( 권장 ) 스크립트를이용하여빌드하는경우 http://www.uclibc.org http://kegel.com/crosstool/ http://www.scratchbox.org/ 27

Terminals iputty http://kldp.net/projects/iputty/ Xshell http://www.netsarang.com TeraTerm http://www.tucows.com/preview/195282 Token2 (plus) http://www.choung.net/token2/ 28

Simulator - Skyeye Skyeye skyeye는리눅스와윈도우에서시뮬레이션환경을제공한다. skyeye는 GDB기반의 armulator이다. http://www.skyeye.org 29

Simulator - Skyeye CPU ARM7TDMI, ARM720T, StrongARM, XScale APPLICATION CPU Atmel AT91/X40,Cirrus CIRRUS LOGIC EP7312,Intel SA1100/SA1110, Intel PXA 25x MEMORY RAM, ROM, Flash Peripheral Timer, UART, ne2k network chip,etc. 30

Simulator - Skyeye 지원하는 OS uc/osii-2.x with network support uclinux based on Linux2.4.x with network support ARM Linux 2.4.x lwip on uc/osii uc/osii, uclinux,arm Linux 상에서동작하는소프트웨어 31

http://gro.clinux.org/projects/skyeye/ 최근파일릴리즈중아무거나다운로드를클릭한다. skyeye on Windows 중 skyeye0.9.5.win32.rar를다운받아설치한다. 32

윈도우층창에서 skyeye.bat 를실행한다. ( 단, skyeye0.9.5.win32 의경우자체적으로 cygwin1.dll 을포함하고있으므로앞서설치한 cygwin1.dll 과충돌하지않도록해야한다.) Linux 커널파일을선택하고 Run 을클릭한다. 프롬프트에서 run 을입력한다. 33

Skyeye 를이용해 uclinux 를실행한화면이다. 34

skyeye.win32 demo-uclinux3 35

.skyinit skyeye.conf 36

2. 시스템 F/W 이해및 프로그래밍

Boot sequence 1 Power On Reset 3 Bootloader 를 RAM 으로 relocation 한후 RAM 으로점프한다. CPU RAM NOR FLASH reset handler reset: 2 b reset 0x0000 0000 번지의 reset vector 실행 38

Nand boot sequence 1 Power On Reset 2 0x0000 0000 번지의 reset vector 실행 4 CPU SRAM 의코드는 NAND 플래시에서 OS Loader 를읽어서 RAM 으로가져온다. SRAM Bootcode 3 RAM NAND FLASH Block0 Bootcode 가 NAND 플래시의 Block 0 를 SRAM 으로읽어온다 39

부트로더 임베디드시스템에서는시스템을초기화하고 OS를 loading를해줘야함 또한개발의편의를위하여모니터프로그램이필요 이러한기능을제공하는것이부트로더임 u-boot은 ARM, PowerPC, MIPS 등을지원하는부트로더 40

u-boot cpu/arm720t/start.s board/ep7312/lowlevel_init.s lib_arm/board.c drivers/* common/main.c common/cmd_* 41

start.s ARM 은 0x0 번지에 vector table 이위치해야한다. 최초전원이인가되면 reset 이되면 0x0 번지가실행된다. ARM 은여러개의프로세서동작모드가있는데 reset 이걸리면기본적으로 SVC32 모드가된다. 42

start.s 기본적으로 IRQ 를모두막는다. MMU 및 cache 를사용하지않도록한다. 43

start.s board/ep7312/lowlevel_init.s 의 lowlevel_init 을점프한다. 44

lowlevel_init.s CPU 클럭과 SDRAM 메모리컨트롤러를설정한다. 45

start.s RAM 으로 u-boot 을재배치한다. 왜일까? 46

start.s 47

board.c 48

board.c main_loop() 함수는 common/main.c 에정의되어있다. main.c 에서는무한루프를돌면서프롬프트로입력되는값을해석해서해당하는 command 를실행하는역할을한다. 49

u-boot http://sourceforge.net/projects/u-boot 위사이트에서 u-boot-1.1.4 소스를다운받는다. tar xvjf u-boot-1.1.4.tar.bz2 50

configs/ep7312.h 에서다음부분수정 #define CONFIG_DRIVER_CS8900 1 을 #define CONFIG_DRIVER_CS8900 0 로수정 #define CONFIG_COMMANDS 을 (CONFIG_CMD_DFL CFG_CMD_JFFS2) #define CONFIG_COMMANDS (CONFIG_CMD_DFL) 로수정 51

GNUARM.org 의 arm-elf-gcc 에서는다음이옵션을지원하지않는다. -mshort-load-byte -macps-32 -msoft-float u-boot 의 cpu/arm720t/config.mk 에서위옵션들을제거한다. 52

make ep7312_config make all 컴파일이끝나면 u-boot.bin 파일과 u- boot 파일이생성. u-boot.bin 파일사용할것임. 53

skyeye가있는디렉토리에 ep7312 새디렉토리를만든다. skyeye.conf 라는파일을아래내용으로만든다. 54

u-boot.bin 파일을 ep7312 디렉토리아래에놓는다. 55

bin skyinsight -nw --cd=ep7312 (skyeye) target sim (skyeye) run 56

57

58

3. 리눅스 S/W 이해및 프로그래밍

Linux 리눅스부팅을위해필요한것 리눅스커널이미지 리눅스 root 파일시스템이미지 60

윈도우층창에서 skyeye.bat 를실행한다. ( 단, skyeye0.9.5.win32 의경우자체적으로 cygwin1.dll 을포함하고있으므로앞서설치한 cygwin1.dll 과충돌하지않도록해야한다.) Linux 커널파일을선택하고 Run 을클릭한다. 프롬프트에서 run 을입력한다. 61

Skyeye 를이용해 uclinux 를실행한화면이다. 62

skyeye.win32 demo-uclinux3 63

.skyinit skyeye.conf 64

리눅스커널 2.4.x 컴파일 make menuconfig make dep make clean make zimage 리눅스커널 2.6.x 컴파일 make menuconfig make zimage 65

커널을컴파일결과 arch/arm/boot/zimage gzip 형태로압축된것으로이미지자체에압축해제및 relocation 코드가포함되어있다. 66

루트파일시스템 루트파일시스템은메모리에올라감. 그래서램디스크라고도함. 기존에만들어진이미지를수정해서사용 gzip -d rootfs.gz mount -o loop rootfs tmp/ tmp/ 아래의내용을수정함 umount -o loop tmp/ gzip -9 rootfs 67

감사합니다.