한국어
Embedded
 

임베디드 리눅스 시스템에서 커널이 장치에서 실행되기 전에 실행되는 단계들을 알아보자.

 

boot_process.png

 

1) ROM

2) SPL

3) TPL 

4) Linux Kernel

 

부팅 순서. 1 단계 : ROM 코드

ROM 코드는 사전 프로그래밍 된 여러 위치 중 하나에서 SRAM으로 작은 부트코드를 로드 할 수 있다.

예를 들면 NAND 플래시 메모리, SPI (Serial Peripheral Interface)를 통해 연결된 플래시 메모리, MMC 장치의 첫 번째 섹터 (SD 카드) 등에서 SPL을 읽는다.

 

부팅 순서. 2 단계 : SPL(Secondary Program Loader)

일반적으로 SRAM이 U-Boot와 같은 전체 부트로더를 로드하기에 충분히 크지 않기 때문에 보조 프로그램 로더 (SPL)가 있어야한다.

SPL은 (TPL)을 주 메모리 (DRAM)에 로드하도록 메모리 컨트롤러 및 시스템의 기타 필수 부분의 초기화를 수행한다.

그 다음 플래시 장치의 시작 부분에서 사전 프로그래밍 된 오프셋 또는 u-boot.bin 등과 같은 알려진 파일 이름을 사용하여 ROM 코드와 마찬가지로 저장 장치 목록에서 프로그램을 주 메모리에 올린다.

 

부팅 순서. 3 단계 : TPL(Tertiary Program Loader)

U-Boot 또는 Barebox와 같은 전체 부트 로더는 간단한 명령 줄 사용자 인터페이스, 커널 이미지를 네트웍 또는 플래시 저장소에서 로드 및 부팅과 같은 유지 관리 작업을 수행한다. 커널이 실행되면 임베디드 부트로더는 일반적으로 메모리에서 사라지고 시스템 작동에 더 이상 참여하지 않는다.

 

부팅 순서. 4 단계 : 

비로소 커널이 실행되고 시스템의 제어권을 갖는다.

 

ROM 및 SPL 부트 로더는 내부 RAM을 사용하여 실행하는 반면 U-Boot 및 커널은 DDR(각각 0x80000000 및 0x82000000)에서 실행된다.

ram.png

 

다음의 사진은 wandboard 용 SD카드에 있는 rootfs의 boot디렉토리 내용이다. SPL, U-Boot를 비롯하여 커널이미지, 디바이스 트리등을 확인 할 수 있다.

boot_directory.png

 

이 글과 연관된 다른 글
  1. [2014/01/09] [Uboot 명령어 및 환경 변수 요약]U-Boot에 Command 및 Parameter에 대한 설명 by pjk (5502)
번호 제목 글쓴이 날짜 조회 수
33 ESP32 블루투스 스피커(A2DP Sink) file makersweb 2019.10.29 36
32 ESP-IDF 의 A2DP리뷰 (ESP32) file makersweb 2019.10.28 190
» 임베디드 리눅스 부팅 절차 file makersweb 2019.10.21 82
30 mainline 커널 및 etnaviv 를 사용하는 Wandboard(Freescale i.MX6Q)에서 eglfs를 사용 makersweb 2019.10.17 83
29 Yocto를 이용한 wandboard BSP 및 Qt5 SDK 빌드 file makersweb 2019.09.29 156
28 STM32 & LibOpenCM3, printf함수사용 file makersweb 2019.08.08 263
27 STM32(Cortex-M3) LED Blink with PlatformIO file makersweb 2019.08.05 141
26 블루투스(Bluetooth) 기초 file makersweb 2019.08.02 203
25 STM32(Cortex-M3) 개발환경구축 with PlatformIO file makersweb 2019.07.26 190
24 STM32(Cortex-M3) 개발 - Firmware Flashing file makersweb 2019.07.23 150
23 libopencm3 활용, Cortex-M 펌웨어 개발 makersweb 2019.07.14 86
22 yocto의 몇가지 중요한 용어 및 개념 makersweb 2019.06.21 241
21 라즈베리파이3와 PC간 Serial 통신 테스트 file makersweb 2019.05.20 979
20 욕토 프로젝트를 이용한 Qt SDK 빌드 for 라즈베리파이3 file makersweb 2019.03.19 632
19 yocto project, 라즈베리파이를 위한 Qt + 임베디드리눅스 빌드 file makersweb 2019.02.01 1635
18 STM32(Cortex-M3) 개발환경구축 with Eclipse file makersweb 2018.11.08 689
17 ST, STM32 MCU용 ‘통합 개발 환경(IDE)’ 무료 제공 makersweb 2015.03.04 8278
16 USB OTG 기술의 개념 file pjk 2014.11.03 6204
15 USB 핀아웃 file pjk 2014.10.11 4191
14 시리얼 인터페이스 커넥터를 위한 핀아웃 file pjk 2014.10.10 4081