Boot Loader.

Slides:



Advertisements
Similar presentations
을지대학교 무선 네트워크 사용 방법 2010 년 06 월 01 일. 을지대학교 무선 네트워크 사용 방법 1. PC 무선랜 카드 활성화 및 체크 1 단계 : 시작 -> 설정 -> 네트워크 설정 2 단계 : 무선 네트워크 설정 선택 -> 마우스 버튼 오른쪽 클릭 -> 사용.
Advertisements

2013 년 2 학기 임베디드 프로그래밍. 권장사양  HOST PC 권장사항  리눅스 배포판이 설치된 PC - 권장 배포판 : Asianux open edition3 ( 라곤 하지만 Ubuntu, Fedora, CentOS 등 다양한 리눅스 프랫폼이 가능 )  PC.
(실습) 부트로더 [BootLoader]
Linux Debugging issues
패러럴 포트를 이용한 Text LCD 제어 6월 17일 허정수 나선웅.
EZ Board-M In-Ho, Roh Real Time System Lab.
임베디드 시스템 개발 환경 (1) Lecture #3.
임베디드 시스템 개론 8. 임베디드 시스템 개발 환경 8주차 강의 자료 Embedded System Lab.
Image & Video processing
Windows CE 시스템 개발 환경 구축.
제6장 FUSING.
Cross Compiler를이용한 커널 컴파일 및 포팅
Cross Compiler를이용한 커널 컴파일 및 포팅 1
크로스 컴파일 환경 구축.
Tool Chain, JTAG, Bootp, TFTP 의 설치
Kernel Porting Lecture #7.
Bootloader Porting Lecture #6.
FUSING.
Linux를 이용한 Embedded 장비 개발
임베디드 리눅스 시스템의 기본 개념 강의 목표 내용 임베디드 리눅스 시스템의 기본 개념과 주제 제시 1. 임베디드 시스템
나민영 서경대학교 컴퓨터공학과 CGVR Lab 같이만들어보자 5주차 OpenCV 설정 및 기초.
QT 프로그래밍 발표: 김래영.
2. Linux Installation Target Embedded System은 리눅스 환경을 사용한다. 이 장에서는 리눅스 설치부터, 각 설정의 의미들에 대해 이야기 한다.
Development Environment of Embedded System : part 1
임베디드 리눅스 설치 및 동작 Lecture #5.
컴퓨터 구조.
Text LCD control.
임베디드 시스템 개론 크로스 플랫폼 설치 2일차 강의 자료 Embedded System Lab.
UNIT 07 Memory Map 로봇 SW 교육원 조용수.
임베디드 시스템 개론 3주차 Embedded System..
Embedded System Porting (2)
CHAPTER 02 OpenCV 개요 PART 01 영상 처리 개요 및 OpenCV 소개.
Root Filesystem Porting
부트 로더 (blob pre2 중심) Lecture #8.
Root Filesystem Porting
부트로더와 Self Programming
WinCE Device Driver 실습 #3
WinCE Device Driver 실습 #2
부트로더와 커널 이미지 부트로더 개요 타겟 시스템 부트로더 분석 부트로더 생성 커널 빌드 과정 커널 컴파일 규칙 커널 포팅
Cross Compiler 설치.
DK-128 실습 EEPROM 제어 아이티즌 기술연구소
Host PC & Target Board 환경설정 Embedded Linux Image 올리기
U-boot 소스얻기,compile,올리기
DK-128 개발환경 설정 아이티즌 기술연구소 김태성 연구원
Cross Compiler를이용한 커널 컴파일 및 포팅
WOL(Wake-On Lan) 컴퓨터공학과 4학년 박기웅.
UNIT 07 Memory Map 로봇 SW 교육원 조용수.
리눅스 시스템 & 커널 기초 P.46 – P.53 이름: nsh009 학번: 112 1/20.
이름 : 황 상 두 전화번호 : 이메일 : PinTool 이름 : 황 상 두 전화번호 : 이메일 :
Device Driver 임베디드 시스템 I.
임베디드 시스템 개론 임베디드 타겟 보드 포팅 및 H/W 제어 3일차 강의 자료 Embedded System Lab.
Xscale Educational Kit
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
(개정판) 뇌를 자극하는 Red Hat Fedora 리눅스 서버 & 네트워크
DK-128 실습 내부 EEPROM 제어 아이티즌 기술연구소 김태성 연구원
패러럴 포트를 이용한 Text LCD 제어 6월 17일 허정수 나선웅.
리눅스 커널 프로그래밍 환경 구축 IT EXPERT 리눅스 커널 프로그래밍 Author : Byungki Kim
Packet sniffing 응용 레벨이 아닌 네트워크 디바이스 레벨에서의 데이타을 얻는 것 네트워크 상의 트래픽을 분석
네트워크 환경 구축과 이미지 전송 호스트/타겟 통신 직렬 통신을 이용한 이미지 전송 수퍼 데몬 BOOTP 환경 구축
Kernel, Ramdisk, JFFS2 Porting
오토베이스9 사용자 라이브러리 오토베이스 교육센터 그래픽 모듈 설정과 화면전환에 대하여 자세히 알아본다. <목차>
DK-128 개발환경 설정 아이티즌 기술연구소 김태성 연구원
DK-128 개발환경 설정 아이티즌 기술연구소
DK-128 직렬통신 실습 아이티즌 기술연구소
셀프 프로그래밍으로 쓰기 셀프 프로그래밍이란? 프린트포트의 ISP 모듈을 사용하지 않음 부트로더에 의한 펌웨어 다운로드
임베디드 시스템 개론 3주차.
Kernel Porting Lecture #7.
임베디드 리눅스 설치 및 동작 Lecture #5.
Lecture 7 7-Segment LED controller using u-controller
ARP.
Presentation transcript:

Boot Loader

Boot Loader 비교 일반 리눅스 Embedded Linix Boot Loader Boot Loader EMPOS_boot Flash 0 block에서 동작 Linux Booting Command line Kernel/root file system을 Downloading Ram에서 Flash로 writing LILO (LInux LOader) Hard disk의 MBR에서 동작 여러 O/S를 선택적으로 부팅

Boot Loader Functions Hardware 초기화 Memory setting, CPU clock setting GPIO setting, Serial setting MAC address, Ethernet port setting Memory copy : Flash ROM → SDRAM kernel image ramdisk image bootloader 자신 Kernel booting Command mode boot, reset, bootp, ……. (total 12 commends), diagnostic Memory dump. Memory modify, execution command를 제외 시킴 Debug mode (debugging functions) Example of boot loaders blob, Redboot(eCos), ppcboot, armboot, bootldr

Boot Loader 종류 LILO (Linux Boot Loader) GNU GRUB (Grand Unified Boot Loader) LILO upgrade Boot Loader, x86 계열 지원 ARMBoot ARM 계열 지원, 부트 디바이스를 flash ROM, bootp/dhcp/tftp, PCMCIA CF 등을 지원, 지원하는 보드가 적음. BLOB (Boot Loader OBject) SA11x0 계열 지원, 직렬통신으로 커널 이미지와 램디스크를 다운로드 기능을 지원하나 변종이 많음, iPAQ, Jornada 등의 PDA와 Assabet 지원 Bootlr Compac에서 IPAQ용 지원, 30가지 명령어 지원으로 기능은 우수 PPCBoot MPC 계열 지원, ARMBoot와 통합, 네트워크 부팅 환경 제공 RedBoot Red Hat상의 eCos 일부를 사용하여 개발, 다양한 CPU를 지원 Angel Intel Assabet 보드를 지원하는 초기 Boot Loader

Boot Loader 수행 화면

Flow Chart

Boot Loader Sources(1) : files Makefile : make 유틸리티에 사용되는 compile scriptor start.S : 처음 시작하는 코드로써 register setting main.c : 전체적인 boot loader sequence를 control command.c : 명령어를 처리 lib.c : 소스에서 사용하는 라이브러리 함수 제공 flash.c : flash ROM에 데이터를 저 serial.c : FFUART 초기화 및 monitoring을 위한 기본 함수 제공 time.c : boot loader 에서 사용하는 timer smc91111.c : 네트워크 디바이스 파일로써 저수준 네트워크 통신 담당 net.c : bootp, tftp와 smc91111.c와의 중간 다리 역할 bootp.c : bootp packet 구성과 전달 tftp.c : tftp packet 구성과 전달

Boot Loader Sources(2): head ld-xscale : 링커 스크립트로 링커의 모듈 결합에 사용 bootp.h : bootp.c와 관련된 해더 commands.h : commands.c와 관련된 해더 config.h : 보드의 래지스터 및 환경설정을 담당 flash.h : flash.c 와 관련된 해더 header.h : 네트워크 패킷 구성에 사용되는 패킷의 구조 제공 lib.h : lib.c 와 관련된 해더 main.h : main.c 와 관련된 해더 net.h : net.c와 관련된 해더 reg.h : Xscale PXA255와 관련된 여러 래지스터의 주소 serial.h : serial.c와 관련된 해더 smc91111.h : smc91111.c와 관련 해더 tftp.h : tftp.c와 관련된 해더 time.h : time.c와 관련된 해더 types.h : 변수 타입 및 필요 항목 정의

Memory Map SDRAM Flash ROM Linux Booting RAM environment (Virtual memory) Flash ROM Physical address Boor loader

Boor Loader Commands boot reset bootp : bootp를 통해 호스트로 부터 IP address 할당 setip : host와 target의 IP address를 설정 macwrite : Primary/Secondary Ethernet의 MACaddress 설정 tftp : tftp를 통한 데이터를 전송 download : Serial port을 통한 데이터를 전송 read : 특정 메모리 address의 값을 read write : 특정 메모리 address 의 값을 write flash : 전송 받은 데이터를 flash ROM에 저장 erase : flash ROM 에 저장되어 있는 데이터 삭제 status : memory, register, Ethernet의 status를 표시 test : 사용자에게 테스트 함수를 제공 help

Main Routine

Sources Makefile : (그림 7.2) ld-xscale config.h start.S : main.c : (그림 7.3), (그림 7.4), (그림 7.5) serial.c (그림 7.6), (그림 7.7), (그림 7.8)

Experiment 1: boot loader porting Boot Loader를 compile 할 tool chains를 Linix PC에 설치 Boot Loader 수행시 처음 출력되는 Copyright 정보(Herald message)에 자신의 정보를 추가 “Honam University” “Multimedia Lab, Feb-11-2004” IO 초기화 부분을 수정하여, Text LCD 글자를 변경 “Multimedia Lab, EMPOS-II” 테스트 함수를 수정해서, 버튼 입력을 출력 “If on 8 bits push button, Light LED” 수정된 boot loader 를 compile하여 보드에 포팅