졸업 프로젝트 발표 1/74 Trinity Snapshot Boot 날 짜: 팀 명: Trinity

Slides:



Advertisements
Similar presentations
Hardware Lesson 3 Inside your computer.
Advertisements

What is Hardware? Hardware is the physical parts of the computer system – the parts that you can touch and see. A motherboard, a CPU, a keyboard and a.
PIKA Technologies Inc. PADS for the PIKA WARP Appliance March 2009.
Genesis: from raw hardware to processes System booting sequence: how does a machine come into life.
Linux Bootup Time Reduction for Digital Still Camera Chan Ju, Park SW Laboratories Samsung Electronics.
Characteristics of Realtime and Embedded Systems Chapter 1 6/10/20151.
Handheld TFTP Server with USB Andrew Pangborn Michael Nusinov RIT Computer Engineering – CE Design 03/20/2008.
Introduction to Kernel
OS Spring’03 Introduction Operating Systems Spring 2003.
Lesson 4-Installing Network Operating Systems. Overview Installing and configuring Novell NetWare 6.0. Installing and configuring Windows 2000 Server.
Software Development and Software Loading in Embedded Systems.
© 2004 Cisco Systems, Inc. All rights reserved. Managing Your Network Environment Managing Router Startup and Configuration INTRO v2.0—9-1.
COMPUTER SYSTEM LABORATORY Lab4 - Bootloader. Lab 4 Experimental Goal Learn how to build U-Boot bootloader for PXA /10/8/ 142.
Embedded Systems Principle of Debugger. Reference Materials kl.de/avr_projects/arm_projects/#winarmhttp://
U-Boot Debug using CCSv5 In this session we will cover fundamentals necessary to use CCSv5 and a JTAG to debug a TI SDK-based U-Boot on an EVM platform.
Synology Technology Alex Wang May 1, 2008.
hardware and operating systems basics.
Chapter 5 Basic Input/Output System (BIOS)
Basic Input Output System
張耀元 許博凱 Computer Science, National Chung Cheng University, 2014 Introduction A variation of the suspend-resume technique eliminates.
Computer Maintenance Unit Subtitle: Basic Input/Output System (BIOS) Excerpted from 1 Copyright © Texas Education Agency, All.
AT91RM9200 Boot strategies This training module describes the boot strategies on the AT91RM9200 including the internal Boot ROM and the U-Boot program.
1 Introduction to ARM A15 Linux DSP Platform Software Apps Team 04/19/2013 1TI Confidential - NDA Restrictions.
From UEFI Shell to Linux - UEFI Linux BootLoader Zhang Rui Software Engineer Sep 28 th 2011.
Beagle Board Fast Boot Hui Chen Keji Ren Dec 10 th, 2009 EE382N-4 Project.
Porting Operating Systems Phan Duy Hùng (PhD) ES Lecturer – Hanoi FPT University.
Making MINT64OS Chan Seok Kang 2013/01/21. 2Computer Systems and Platforms Lab Content Introduction My Approach Encountered Problem Conclusion & Future.
Inside your computer. Hardware Review Motherboard Processor / CPU Bus Bios chip Memory Hard drive Video Card Sound Card Monitor/printer Ports.
3 Computing System Fundamentals
Unit - VI. Linux and Real Time: Real Time Tasks Hard and Soft Real Time Tasks Linux Scheduling Latency Kernel Preemption Challenges in Kernel Preemption.
Module 15 Managing Windows Server® 2008 Backup and Restore.
Basic Input/Output System (BIOS). 5.1Introduction to BIOS Basic Input / Output System (BIOS) boot the computer by providing a basic set of instructions.
2006/JAN/20JapanTechnicalJamboree61 Improvement of bootup time using Power Management - Project Update - Hiroki Kaminaga Sony Corporation
1 Computer Systems II Introduction to Processes. 2 First Two Major Computer System Evolution Steps Led to the idea of multiprogramming (multiple concurrent.
CSC190 Introduction to Computing Operating Systems and Utility Programs.
Implementation of Embedded OS Lab3 Porting μC/OS-II.
The Linux Operating System R.Bigelow. What is an Operating System An operating system is a collection of programs that manage a computer's resources.
Computer Maintenance I
Implementation of Embedded OS
January 8, 2001 SPC Tutorial 1 Washington WASHINGTON UNIVERSITY IN ST LOUIS Agenda 9:00 SPC Hardware -- John DeHart 9:45 SPC Software -- John DeHart 10:30.
Linux Boot Process on the Raspberry Pi 2 1 David Ferry, Chris Gill CSE 522S - Advanced Operating Systems Washington University in St. Louis St. Louis,
Embedded Software Design Week II Linux Intro Linux Kernel.
General Concepts of ICT. Be able to identify the main components of a general- purpose computer:  central processing unit (CPU)  main/internal memory.
The World Leader in High Performance Signal Processing Solutions Das U-Boot: Blackfin Guts.
CIT 140: Introduction to ITSlide #1 CSC 140: Introduction to IT Operating Systems.
Chapter 3 Getting Started. Copyright © 2005 Pearson Addison-Wesley. All rights reserved. Objectives To give an overview of the structure of a contemporary.
Chap. 4 ARM Boot Loader Internals. 2 S3C2500 ARM940T Core module ARM9TDMI CoreIC.
Overview A) Power on or reset B) 1st stage boot loader C) 2nd stage boot loader D) Operate system.
1 Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http//free-electrons.com Free Electrons Introduction.
IMAGE COMPRESSION AND DECOMPRESSION USING ARM9 SYSTEM Under the guidance of Mrs. B. SATYA SRI DEVI,M.Tech, Assistant Professor By V. KUSUMA KUMARI Roll.
Linux on ARM7TDMI or Nothing is as easy as it looks Helicon technologies Ltd. How to run uClinux on NXP LPC22xx.
1 Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http//free-electrons.com Embedded Linux system development.
1 Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http//free-electrons.com The U-boot bootloader Michael.
Introduction to Operating Systems Concepts
Implementation of Embedded OS
Introduction to Kernel
Operating System Review
Computer System Laboratory
Power Management Discussion
Computer Maintenance Unit Subtitle: Basic Input/Output System (BIOS)
Improvement of startup time using Software Suspend - Project Update -
Computer System Structures
Operating System Review
AT91RM9200 Boot strategies This training module describes the boot strategies on the AT91RM9200 including the internal Boot ROM and the U-Boot program.
Cisco networking CNET-448
Introduction to Computing
Computer System Laboratory
OS Boot Sequence and File System
OS Boot Sequence and File System
Lecture 10 review Booting sequence in Brief
Presentation transcript:

졸업 프로젝트 발표 1/74 Trinity Snapshot Boot 날 짜: 2010. 06. 10 팀 명: Trinity 팀 원: 정진철, 추민호, 김승태 지도교수: 임성수 교수님

2/74 Contents Contents I. Introduction II. Background III. Expected effects IV. Technical Requirement – Suspend & Resume V. Odroid VI. Output Detail VII. Limiting factor VIII. Development Environment IX. Development Schedule X. Milestone XI. Reference

“Embedded System”에 관한 주제를 다루기로 하였습니다. I. Introduction 3/74 『Trinity』 팀은 “Embedded System”에 관한 주제를 다루기로 하였습니다. 그 중, “Snapshot Boot” 라는 부팅 기법에 관하여 이번 프로젝트를 진행 할 계획입니다. “Snapshot Boot”는 Embedded Linux System에서 『Snapshot Image』 를 이용하여 빠른 부팅 시간을 얻기 위한 부팅 기술입니다.

Too Slow… 4/74 II. Background Global Smart Phone Market ↑ But, Smart Phone Boot Time is … Too Slow… Boot Time은 Smart Phone 시장에서 중요한 경쟁력 요소가 될 것이다.

III. Expected effect 5/74 NAND Flash Price ↓ Embedded System에 저장장치를 추가하여 Snapshot Image를 사용하는 Snapshot Boot를 적용하면 빠른 부팅을 제공할 수 있다.

IV. Technical Requirement 6/74 1. ARM Architecture 기반의 Suspend 기능 구현 2. Boot loader Level에서 Resume 기능 구현 Snapshot Boot 기능 구현

Snapshot Boot Sequence IV. Technical Requirement 7/74 Snapshot Boot Sequence

System의 RAM 과 Register의 내용를 IV. Technical Requirement - Suspend 8/74 Suspend-to-Disk System의 RAM 과 Register의 내용를 저장매체에 쓰는 작업을 말한다. DRAM (DDR2) Essential Pages Suspend Call 8GB SDHC Card Snapshot Image Suspend & Resume Processor Freeze Device Suspend Register States

* * * 9/74 IV. Technical Requirement - Suspend ‘Suspend to Disk’ - Procedure freeze_processes() Powerdown machine * free_some_memory() write_suspend_image() device_suspend() device_resume() device_power_down() device_power_up() * * save_processor_state() Make Snapshot Image

Details of Suspend procedure IV. Technical Requirement - Suspend 10/74 Details of Suspend procedure Hibernation이 최초로 시작된다. Memory management Structure를 할당한다. Hibernate작업 이전에 프로세스 준비작업등을 수행한다.

Details of Suspend procedure IV. Technical Requirement - Suspend 11/74 Details of Suspend procedure Page frames를 만들기 위한 비트맵을 메모리에 생성한다. Bitmap data structure는 Memory page를 가리키는 linked list로 구성된다.

Details of Suspend procedure IV. Technical Requirement - Suspend 12/74 Details of Suspend procedure Processor가 활성화 되어있는지 확인한다.

Details of Suspend procedure IV. Technical Requirement - Suspend 13/74 Details of Suspend procedure 사용자가 입력한 hibernation mode가 적합한지를 확인한다.

Details of Suspend procedure IV. Technical Requirement - Suspend 14/74 Details of Suspend procedure Hibernation을 수행할 수 있는지 Power Management의 Level을 확인한다.

Details of Suspend procedure IV. Technical Requirement - Suspend 15/74 Details of Suspend procedure 각각의 test를 수행하는 동안 5초간 Delay를 준다.

Details of Suspend procedure IV. Technical Requirement - Suspend 16/74 Details of Suspend procedure 장치들을 멈추고 Snapshot image를 만든다.

Details of Suspend procedure IV. Technical Requirement - Suspend 17/74 Details of Suspend procedure 필요한 메모리의 크기만큼 공간을 비워둔다.

Details of Suspend procedure IV. Technical Requirement - Suspend 18/74 Details of Suspend procedure Power Management Event Message 프로세스를 중단시킨다.

Details of Suspend procedure IV. Technical Requirement - Suspend 19/74 Details of Suspend procedure Interrupt를 중단시키고, 장치들을 중단 시킨후, Hibernation image를 생성한다. 이미지 생성을 마치면, 다시 장치들을 실행한다.

Details of Suspend procedure IV. Technical Requirement - Suspend 20/74 Details of Suspend procedure Suspend를 시작을 나타내는 함수이다.

Details of Suspend procedure IV. Technical Requirement - Suspend 21/74 Details of Suspend procedure Power Management 에서 사용하는 Active device에 Lock을 건다.

Details of Suspend procedure IV. Technical Requirement - Suspend 22/74 Details of Suspend procedure Device의 전원을 끈다.

Details of Suspend procedure IV. Technical Requirement - Suspend 23/74 Details of Suspend procedure 프로세서의 현재 상태를 저장한다.

Details of Suspend procedure IV. Technical Requirement - Suspend 24/74 Details of Suspend procedure 프로세서를 다시 복구한다.

Details of Suspend procedure IV. Technical Requirement - Suspend 25/74 Details of Suspend procedure 장치들을 다시 작동시킨다.

IV. Technical Requirement - Suspend 26/74 freeze_processes() free_some_memory() device_suspend() device_power_down() save_processor_state() Make Snapshot Image device_power_up() Trigger “Suspend-to-Disk” -> Everything works fine. device_resume() write_suspend_image() Powerdown machine

IV. Technical Requirement - Suspend 27/74 freeze_processes() free_some_memory() device_suspend() device_power_down() save_processor_state() Make Snapshot Image 2. Freeze processes -> Freeze processes works correctly. device_power_up() device_resume() write_suspend_image() Powerdown machine

IV. Technical Requirement - Suspend 28/74 freeze_processes() free_some_memory() device_suspend() device_power_down() save_processor_state() Make Snapshot Image 3. Free unnecessary memory ->We think that free unnecessary memory works correctly, because nr_free_pages become 63361 from 39708 device_power_up() device_resume() write_suspend_image() Powerdown machine

IV. Technical Requirement - Suspend 29/74 freeze_processes() free_some_memory() device_suspend() device_power_down() save_processor_state() Make Snapshot Image 4. Suspend devices ->Suspend devices procedure works well. device_power_up() device_resume() write_suspend_image() Powerdown machine

IV. Technical Requirement - Suspend 30/74 freeze_processes() free_some_memory() device_suspend() device_power_down() 5. Power down devices ->Power down devices procedure works well. save_processor_state() Make Snapshot Image device_power_up() device_resume() write_suspend_image() Powerdown machine

IV. Technical Requirement - Suspend 31/74 freeze_processes() free_some_memory() device_suspend() device_power_down() save_processor_state() Make Snapshot Image device_power_up() 6. Save processor state device_resume() write_suspend_image() Powerdown machine

IV. Technical Requirement - Suspend 32/74 freeze_processes() free_some_memory() device_suspend() device_power_down() save_processor_state() Make Snapshot Image device_power_up() device_resume() 7. Save processor registers write_suspend_image() Powerdown machine

IV. Technical Requirement - Suspend 33/74 freeze_processes() free_some_memory() device_suspend() device_power_down() save_processor_state() Make Snapshot Image 8. Allocate memory for snapshot image device_power_up() device_resume() write_suspend_image() Powerdown machine

IV. Technical Requirement - Suspend 34/74 freeze_processes() free_some_memory() device_suspend() device_power_down() save_processor_state() Make Snapshot Image device_power_up() 10. Restore processor state ->Store processor state’s reverse procedure. We think that it works fine. device_resume() write_suspend_image() Powerdown machine

IV. Technical Requirement - Suspend 35/74 IV. Technical Requirement - Suspend freeze_processes() free_some_memory() device_suspend() device_power_down() save_processor_state() Make Snapshot Image device_power_up() 11 – 14. ->Procedure works from 11 to 14. device_resume() write_suspend_image() Powerdown machine

IV. Technical Requirement - Suspend 36/74 freeze_processes() free_some_memory() device_suspend() device_power_down() save_processor_state() 15. Halt machine -> Power off machine code works fine. Make Snapshot Image device_power_up() device_resume() write_suspend_image() Powerdown machine

Resume 37/74 IV. Technical Requirement - Resume Snapshot Image를 이용하여 System을 복구하는 과정이다. DRAM (DDR2) Essential Pages Resume Call Image Check 8GB SDHC Card Snapshot Image Suspend & Resume Restore Processor Freeze Device Suspend Register States

* * * Jump to kernel 38/74 IV. Technical Requirement - Resume Boot Loader (U-Boot 1.3.4) software_resume() Read system image from storage to RAM Wakeup board freeze_processes() * Copy system image to RAM device_suspend() * Minimal device setup for resume device_power_down() Jump to kernel resume point Restore system image * Jump to kernel restore_processor_state() device_power_up() device_resume() thaw_processes()

Details of Resume procedure IV. Technical Requirement - Resume 39/74 Details of Resume procedure Resume이 시작되는 지점이다. software_resume()을 호출한다.

Details of Resume procedure IV. Technical Requirement - Resume 40/74 Details of Resume procedure 이미지 검사를 수행하며, Device를 멈추고, 이미지를 메모리로 복원하는 함수를 호출한다.

Details of Resume procedure IV. Technical Requirement - Resume 41/74 Details of Resume procedure Resume device의 signature를 확인한다. Image File을 검증하는 단계이다.

Details of Resume procedure IV. Technical Requirement - Resume 42/74 Details of Resume procedure Page Frame을 만들기 위한 bitmaps을 메모리에 생성한다.

Details of Resume procedure IV. Technical Requirement - Resume 43/74 Details of Resume procedure Hibernation Image를 읽는다.

Details of Resume procedure IV. Technical Requirement - Resume 44/74 Details of Resume procedure 장치를 멈추고, Hibernation image를 복구한다.

Details of Resume procedure IV. Technical Requirement - Resume 45/74 Details of Resume procedure Device를 중지시킨다.

Details of Resume procedure IV. Technical Requirement - Resume 46/74 Details of Resume procedure 각 장치들의 interrupt를 꺼주고, 저장된 이미지로부터 ram의 Content를 복구한다.

Details of Resume procedure IV. Technical Requirement - Resume 47/74 Details of Resume procedure Device의 전원을 종료한다.

Details of Resume procedure IV. Technical Requirement - Resume 48/74 Details of Resume procedure 메모리의 contents를 Suspend image로 부터 복구한다.

Details of Resume procedure IV. Technical Requirement - Resume 49/74 Details of Resume procedure 중단된 프로세서의 상태를 복구한다.

Details of Resume procedure IV. Technical Requirement - Resume 50/74 Details of Resume procedure Device의 전원을 다시 공급한다.

U-Boot 51/74 IV. Technical Requirement - Boot loader ARM, MIPS, PPC와 같은 다양한 Architecture를 지원하는 Boot-loader이다. Initialize CPU Initialize Board Uncompress Kernel Load Kernel to Memory Uncompress RFS Image Load RFS to Memory Initialize Devices Kernel Preparation Root File System Preparation Boot-loader Level

U-Boot(1.3.4) Directory Structure IV. Technical Requirement - Boot loader 52/74 U-Boot Hierarchy /u-boot api api_examples doc examples fs nand_spl onenand_* post tools board common cpu disk drivers include Lib_* net U-Boot(1.3.4) Directory Structure

각각의 보드 초기화 함수가 구현되어 있으며, board.c 파일로부터 호출된다. IV. Technical Requirement - Boot loader 53/74 U-Boot Hierarchy /u-boot api api_examples doc examples fs nand_spl onenand_* post tools board common cpu disk drivers include Lib_* net 각각의 보드 초기화 함수가 구현되어 있으며, board.c 파일로부터 호출된다.

IV. Technical Requirement - Boot loader 54/74 U-Boot Hierarchy /u-boot api api_examples doc examples fs nand_spl onenand_* post tools board common cpu disk drivers include Lib_* net Architecture나 Target에 무관한 소프트웨어로 시간설정, USB 디바이스 설정 명령어 등이 존재한다.

각각의 CPU에 대한 정보와 interrupt 함수가 IV. Technical Requirement - Boot loader 55/74 U-Boot Hierarchy /u-boot api api_examples doc examples fs nand_spl onenand_* post tools board common cpu disk drivers include Lib_* net 각각의 CPU에 대한 정보와 interrupt 함수가 구현된 파일이 있다.

IV. Technical Requirement - Boot loader 56/74 U-Boot Hierarchy /u-boot api api_examples doc examples fs nand_spl onenand_* post tools board common cpu disk drivers include Lib_* net 디스크 드라이버 (SATA/SCSI) 및 디스크 파티션 정보가 들어있다.

IV. Technical Requirement - Boot loader 57/74 U-Boot Hierarchy /u-boot api api_examples doc examples fs nand_spl onenand_* post tools board common cpu disk drivers include Lib_* net 네트워크, PCI와 같은 장치 드라이버가 있다.

IV. Technical Requirement - Boot loader 58/74 U-Boot Hierarchy /u-boot api api_examples doc examples fs nand_spl onenand_* post tools board common cpu disk drivers include Lib_* net 각 보드 장치의 base address 주소, memory Controller에 관한 레지스터 설정 헤더파일이 있다.

메모리 크기 설정, baudrate 설정, CPU 정보 출력 등 각 보드의 특정 루틴을 호출하는 IV. Technical Requirement - Boot loader 59/74 U-Boot Hierarchy /u-boot api api_examples doc examples fs nand_spl onenand_* post tools board common cpu disk drivers include Lib_* net 메모리 크기 설정, baudrate 설정, CPU 정보 출력 등 각 보드의 특정 루틴을 호출하는 프로세서 라이브러리 파일이 있다.

TFTP, ARP등 Ethernet 설정 함수가 있다. IV. Technical Requirement - Boot loader 60/74 U-Boot Hierarchy /u-boot api api_examples doc examples fs nand_spl onenand_* post tools board common cpu disk drivers include Lib_* net TFTP, ARP등 Ethernet 설정 함수가 있다.

IV. Technical Requirement - Boot loader 61/74 U-Boot Hierarchy /u-boot api api_examples doc examples fs nand_spl onenand_* post tools board common cpu disk drivers include Lib_* net README 문서가 있다.

IV. Technical Requirement - Boot loader 62/74 U-Boot Hierarchy /u-boot api api_examples doc examples fs nand_spl onenand_* post tools board common cpu disk drivers include Lib_* net 예제코드가 있다.

FAT/JFFS와 같은 파일시스템 코드가 있다. IV. Technical Requirement - Boot loader 63/74 U-Boot Hierarchy /u-boot api api_examples doc examples fs nand_spl onenand_* post tools board common cpu disk drivers include Lib_* net FAT/JFFS와 같은 파일시스템 코드가 있다.

S-Record 또는 U-Boot image를 만드는 IV. Technical Requirement - Boot loader 64/74 U-Boot Hierarchy /u-boot api api_examples doc examples fs nand_spl onenand_* post tools board common cpu disk drivers include Lib_* net S-Record 또는 U-Boot image를 만드는 도구 코드가 있다.

각 장치에 대해 Power On Self Test를 하는 IV. Technical Requirement - Boot loader 65/74 U-Boot Hierarchy /u-boot api api_examples doc examples fs nand_spl onenand_* post tools board common cpu disk drivers include Lib_* net 각 장치에 대해 Power On Self Test를 하는 코드가 있다.

Processor: S5PC100 (Cortex-A8) Memory: 512MB DDR2 V. Odroid 66/74 Specifications Processor: S5PC100 (Cortex-A8) Memory: 512MB DDR2 Flash: 10GB (2GB T-Flash, 8GB SDHC) Operating System: Android 1.5R3 with Linux 2.6.27

Snapshot Boot Sequence VI. Output Detail 67/74 Snapshot Boot Sequence Initialize Board Restore Register Setup Device Resume Device & System Power On Boot-loader (U-Boot) Kernel Check Image State Resumed Create Image 8GB SDHC Card DRAM (DDR2) Essential Pages Copy Image Previous State Snapshot Image

VI. Output Detail 68/74

VI. Output Detail 69/74

VII. Limiting Factor 70/74 Memory uses: 145788KB (146MB) SDHD Card Transcend 8GB SDHC Card Read Speed: 14.54MB/Sec Write Speed: 7.93MB/Sec 145MB / 14.54MB/Sec = 9.97 Sec/Read 145MB / 7.93MB/Sec = 18.29 Sec/Write 실제로 사용되는 Active Page만 Image로 만드는 방법을 적용시켜야 한다.

VIII. Development Environment 71/74 Hardware: Intel Pentium 4 CPU 2.80GHz 512 MB DDR2 SDRAM Software: Linux 2.6.32 (Ubuntu) U-Boot 1.3.4-svn arm-linux-gcc (GCC) 4.2.2

IX. Development Schedule 72/74 개발일정 12월 1월 2월 3월 4월 5월 개발환경구축 Project 계획 정리 Project 개발 환경 구축 자료조사 Target Board 조사 Bootloader 조사 Flash Memory 조사 Odroid’s Device 목록 정리 설계 Snapshot Code 검증 및 분석 구현 Snapshot Image 구현 테스트 System Test

73/74 X. Milestone 마일스톤 개요 시작일 종료일 관련 논문 조사 Snapshot Boot 관련 논문 및 자료 조사 2009-12-22 2010-01-08 Target Board 조사 및 선정 Snapshot Boot를 적용할 Target Board를 조사 2009-12-29 부트로더 자료 조사 U-Boot에 관련된 자료 조사 2010-01-15 Flash Memory 조사 NAND, NOR 플래시 메모리 관련 자료 조사 Suspend-to-Disk 관련 자료 조 사 Linux Kernel의 Hibernation 구조 조사 2010-01-05 2010-01-19 Snapshot Image 생성 구현 2010-03-02 2010-04-30 부트로더 포팅 Bootloader 포팅 2010-03-24 1차 결과물 점검 프로젝트 진행상황 점검 2010-02-28 중간 발표 프로젝트 중간 발표 2010-04-29 개발 완료 프로젝트 개발 완료 테스트 프로젝트 개발 테스트 2010-05-01 2010-05-26 최종 발표 프로젝트 최종 발표 2010-05-27

XI. Reference 74/74 번호 종류 제목 출처 발행년도 저자 기타 1 논문 Improving Linux Startup Time Usi ng Software Resume (and other t echniques) Sony, Corp. 2006, 7 Hiroki Kamin aga 2 웹 http://dev.odroid.com Hardker- nel Odroid Official Site 3 문서 Flash Memory Guide Kingston 2009 4 http://www.denx.de/wiki/U-Boot U-Boot