티스토리 뷰
목차
부트로더(bootloader) 개념-명령어, JTAG 퓨징 [임베디드 리눅스 기초]
부트로더 (bootloader) 소개
-시스템의 하드웨어를 초기화하고 운영체제의 커널을 메모리에 올려 실행시키는 시스템 프로그램
- 부트로더의 위치
: 일반적으로 시스템 메모리의 물리 주소 0번지부터 위치
: 롬, 플래시, SRAM 등 정적인 메모리에 위치
- 부트로더의 기능
: bootloader는 메모리 초기화
: 하드웨어 초기화
- 직렬포트의 초기화
- 네트워크 초기화
- 프로세서 속도, 인터럽트의 초기화
- 커널과 램 디스크 적재
: 커널과 램 디스크를 램에 적재하여 실행
부트로더의 동작 (1)
- 부트로더의 실행 순서
부트로더(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 |
부트로더(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 퓨징 [임베디드 리눅스 기초]