ESP32 부팅 시퀀스(booting sequence), 부트로더(bootloader)
IDF의 Application startup Flow에서 보다 자세한 사항을 보실 수 있습니다.
여기서는 간단한 bootloader의 역활에 대하여만 설명 하겠습니다.
https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-guides/startup.html
ESP32는 2개의 Bootloader를 가지고 있습니다.
1st stage bootloader (ROM bootloader)
- 이 Bootloader는 칩안에 있습니다. 즉, Firmware에 있는 Bootloader가 아닙니다.
- Reset, 초기화 관련 된 작업을 진행하며, Reset reason관련 Log를 프린트 해 줍니다.
- Firmware download모드로 진입할수 있게 해줍니다.
- 2nd stage bootloader를 로딩 합니다.
- Secure boot 와 같은 보안관련 부팅에 대한 판단을 합니다.
- IC자체에 Hard coding되어 있어 수정이 안됩니다.
2nd stage bootloader
- Firmware에 있는 bootloader로 빌드 하면 bootloader.bin같은 바이너리 형태로 나오고, Flash에 0x1000으로 라이팅 합니다.
- 소스코드
https://github.com/espressif/esp-idf/tree/master/components/bootloader
- Secure boot, Flash encryption 처리를 합니다.
- OTA관련 처리를 합니다.
- Partition table을 read하고, 해당 APP image로 부팅을 해줍니다. (IRAM/DRAM에 load하고 실행)
'ESPRESSIF' 카테고리의 다른 글
ESP32 - UART 관련 참고 사항 - UART 사용시 주의 사항 (0) | 2021.08.25 |
---|---|
ESP32 모듈 기본 시험 firmware 및 시험 방법 (0) | 2021.08.12 |
ESP32 AT command를 이용한 UDP broadcast (0) | 2021.08.04 |
ESP32 RF Tx power 조정 방법 : How to adjust RF Tx power ? (0) | 2021.08.03 |
ESP32-C3 : AWS 연동 시험 (Rainmaker 사용) (0) | 2021.07.03 |