본문 바로가기
C++ 200제/코딩 IT 정보

부트로더(bootloader) 개념-명령어, JTAG 퓨징 [임베디드 리눅스 기초]

by vicddory 2017. 1. 28.

부트로더(bootloader) 개념-명령어, JTAG 퓨징 [임베디드 리눅스 기초]


부트로더 (bootloader) 소개


-시스템의 하드웨어를 초기화하고 운영체제의 커널을 메모리에 올려 실행시키는 시스템 프로그램

- 부트로더의 위치

  : 일반적으로 시스템 메모리의 물리 주소 0번지부터 위치

  : 롬, 플래시, SRAM 등 정적인 메모리에 위치


- 부트로더의 기능

  : bootloader는 메모리 초기화

  : 하드웨어 초기화

   - 직렬포트의 초기화

   - 네트워크 초기화

   - 프로세서 속도, 인터럽트의 초기화


- 커널과 램 디스크 적재

  : 커널과 램 디스크를 램에 적재하여 실행

부트로더의 동작 (1)

- 부트로더의 실행 순서


부트로더 bootloader 리눅스부트로더(bootloader) 개념-명령어, JTAG 퓨징 [임베디드 리눅스 기초]


부트로더 bootloader 동작 (2)


- 하드웨어 초기화

  : 프로세서 및 메모리 초기화

  : 네트워크 및 시리얼 포트 등의 디바이스 초기화


- 자동 부트

  : 커널 등의 프로그램 이미지를 로딩하고 실행시킴

  : 자동 부트가 아닌 경우, 사용자 입력 대기 상태


- 입력 명령 처리

  : 간단한 수준의 디버깅

  : IP 주소 설정 및 자동 부팅설정 등의 보드 환경 설정

  : 각종 상태 체크


- 커널 로딩 및 스타트

  : 롬에 저장된 커널 및 램 디스크 이미지를 타겟 메모리에 로딩

  : 커널 프로그램의 시작번지로 점프하여 커널 부팅


리눅스 부트로더부트로더(bootloader) 개념-명령어, JTAG 퓨징 [임베디드 리눅스 기초]


부트로더 이미지 생성


1
2
3
4
5
6
7
# cd /temp_cd/Kernel/
# tar  xvfj linux-2.4.19-pxa255_pro2.tar.bz2
# cd ../Bootloader
# tar  xvfj blob-20040507.tar.bz2
# cd blob
# ./configure --with-linux-prefix=/temp_cd/Kernel/linux2.4.19-pxa255_pro2 –with-board=pxa255_pro
# make
cs


생성된 부트로더 이미지 위치


1
/temp_cd/Bootloader/blob/src/blob/
cs


타겟보드에 부트로더 JTAG 퓨징


1
2
3
4
5
# cd /temp_cd/Bootloader/blob/src/blob
# jtag
 jtag) cable  parallel  0x378  PXA255
 jtag) detect
 jtag) flashmem 0 blob
cs


리눅스 부트로더 JTAG부트로더(bootloader) 개념-명령어, JTAG 퓨징 [임베디드 리눅스 기초]


부트로더 bootloader - 명령어


- boot [kernel options]

  : boot linux with optional kernel options

- tftp : download blob/kernel/ramdisk image to RAM

- flash : copy blob/kernel/ramdisk from RAM to flash

- help : get this help

- reblob : restart blob from RAM

- reboot : reboot system

- reset : reset terminal

- speed : set download speed

- status : display current status

- btp : get ip

- set : set MAC & IP address


부트로더(bootloader) 개념-명령어, JTAG 퓨징 [임베디드 리눅스 기초]

댓글