한국어
Embedded
 

운영체제 임베디드 리눅스 부팅 절차

makersweb 2019.10.21 21:41 조회 수 : 6337

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

 

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 단계 : Kernel

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

 

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

ram.png

 

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

boot_directory.png

 

번호 제목 글쓴이 날짜 조회 수
52 Rockchip VOP makersweb 2024.04.22 244
51 Raspberry Pi에서 I²C 그리고 Bit-bang (비트뱅) makersweb 2023.08.27 707
50 Yocto 프로젝트 3.4 릴리스(honister) 이상 버전으로 마이그레이션 시 참고 사항 makersweb 2023.03.21 1203
49 Raspberry Pi 와 ATtiny85 간 I²C 통신 file makersweb 2023.03.18 753
48 로직분석기와 함께 PulseView 를 사용해서 CAN 신호 캡쳐 file makersweb 2023.03.16 738
47 임베디드 개발자를 위한 Hex,Bin,Dec 변환기 유틸 file makersweb 2023.02.27 1228
46 ATtiny85 개발보드(HW-260) file makersweb 2023.01.02 674
45 플랫폼 디바이스 및 디바이스 트리 makersweb 2021.03.20 4129
44 Android 기기를 사용하여 Raspberry Pi SD 카드 작성 방법 file makersweb 2020.08.01 1107
43 Raspberry Pi 의 프레임버퍼(Framebuffer)구성 makersweb 2020.05.15 2049
42 라즈베리파이2에서 RTOS기반 GPIO제어(LED) file makersweb 2020.04.21 1752
41 POSIX를 지원하는 오픈소스 RTOS, RTEMS file makersweb 2020.04.15 1883
40 라즈베리파이 부팅 가능한 sd카드 파티션 생성 makersweb 2020.04.15 1822
39 플랫폼 디바이스 및 드라이버에 대해서 makersweb 2020.02.01 6611
38 디바이스 트리(Device Tree, DT) makersweb 2020.01.12 5834
37 RISC-V : 자유롭고 개방 된 RISC 명령어 세트 아키텍처 [2] file makersweb 2020.01.01 1262
36 임베디드 비대칭 멀티 프로세싱(asymmetric multiprocessing) 시스템 file makersweb 2019.12.31 965
35 임베디드 시스템에서 베어메탈(Bare metal) 이란? makersweb 2019.12.11 3466
34 HelloWorld 커널 모듈과 yocto 레시피 추가 방법 file makersweb 2019.12.09 5726
33 ESP32 블루투스 스피커(A2DP Sink) file makersweb 2019.10.29 3566