ESP-IDF는 ESP32 칩의 공식 개발 프레임워크입니다.
ESP-IDF 설정에 대한 자세한 지침은 설정 가이드를 참조하세요.
설정 가이드에 언급된 esp-idf-template 프로젝트뿐만 아니라 ESP-IDF는 예제 디렉터리에 몇 가지 예제 프로젝트와 함께 제공됩니다.
작업하려는 프로젝트를 찾았으면 해당 디렉터리로 변경하면 해당 프로젝트를 구성하고 빌드할 수 있습니다.
make menuconfig
?
도움말 화면을 보려면 Enter 키를 누르면 도움말 화면이 종료됩니다.Y
및 N
키를 사용하여 확인란 " [*]
"이 있는 구성 항목을 활성화(예) 및 비활성화(아니요)합니다.?
구성 항목을 강조 표시하면 해당 항목에 대한 도움말이 표시됩니다./
입력하여 구성 항목을 검색합니다.구성이 완료되면 Esc 키를 여러 번 눌러 종료하고 메시지가 표시되면 "예"라고 말하여 새 구성을 저장합니다.
make all
... 앱, 부트로더를 컴파일하고 구성을 기반으로 파티션 테이블을 생성합니다.
make all
이 완료되면 esptool.py를 사용하여 칩을 플래시하는 명령줄이 인쇄됩니다. 그러나 다음을 실행하여 make에서 이 작업을 수행할 수도 있습니다.
make flash
그러면 전체 프로젝트(앱, 부트로더 및 파티션 테이블)가 새 칩에 플래시됩니다. 직렬 포트 플래싱 설정은 make menuconfig
사용하여 구성할 수 있습니다.
make flash
실행하기 전에 make all
실행할 필요는 없습니다. make flash
필요한 모든 항목을 자동으로 다시 빌드합니다.
make monitor
대상은 이미 설치된 miniterm(pyserial의 일부)을 사용하여 ESP32의 직렬 출력을 터미널 콘솔에 표시합니다.
Ctrl-]를 입력하여 미니텀을 종료합니다.
한 번에 출력을 플래시하고 모니터링하려면 다음을 실행하면 됩니다.
make flash monitor
초기 플래시 후에는 부트로더와 파티션 테이블이 아닌 앱만 빌드하고 플래시하기를 원할 수 있습니다.
make app
- 앱만 빌드합니다.make app-flash
- 앱만 플래시합니다. make app-flash
필요한 경우 앱을 자동으로 다시 빌드합니다.
(일반적인 개발에서는 부트로더와 파티션 테이블이 변경되지 않은 경우 매번 다시 플래시해도 문제가 없습니다.)
ESP-IDF는 여러 파일을 병렬로 컴파일하는 것을 지원하므로 위의 모든 명령은 make -jN
으로 실행될 수 있습니다. 여기서 N
실행할 병렬 make 프로세스 수입니다(일반적으로 N은 CPU 코어 수와 같거나 1개 더 커야 합니다). 귀하의 시스템에서.)
여러 make 기능을 하나로 결합할 수 있습니다. 예를 들어 5개의 작업을 병렬로 사용하여 앱 및 부트로더를 빌드하고 모든 것을 플래시한 다음 ESP32 실행의 직렬 출력을 표시하려면 다음을 실행하세요.
make -j5 flash monitor
프로젝트를 컴파일하고 나면 "build" 디렉터리에 "my_app.bin"과 같은 이름의 바이너리 파일이 포함됩니다. 이는 부트로더가 로드할 수 있는 ESP32 이미지 바이너리입니다.
단일 ESP32의 플래시에는 여러 앱은 물론 다양한 종류의 데이터(교정 데이터, 파일 시스템, 매개변수 저장소 등)가 포함될 수 있습니다. 이러한 이유로 파티션 테이블은 플래시에서 오프셋 0x4000으로 플래시됩니다.
파티션 테이블의 각 항목에는 이름(레이블), 유형(앱, 데이터 등), 하위 유형 및 파티션이 로드되는 플래시의 오프셋이 있습니다.
파티션 테이블을 사용하는 가장 간단한 방법은 make menuconfig
미리 정의된 간단한 파티션 테이블 중 하나를 선택하는 것입니다.
두 경우 모두 공장 앱은 오프셋 0x10000에서 플래시됩니다. make partition_table
파티션 테이블의 요약이 인쇄됩니다.
파티션 테이블과 사용자 정의 변형을 생성하는 방법에 대한 자세한 내용은 docs/partition-tables.rst
파일을 참조하세요.
make flash
대상은 전체 플래시 내용을 지우지 않습니다. 그러나 특히 파티션 테이블을 변경하거나 OTA 앱을 업데이트할 때 장치를 완전히 지워진 상태로 다시 설정하는 것이 유용한 경우가 있습니다. 전체 플래시를 지우려면 make erase_flash
실행하세요.
이는 다른 대상과 결합될 수 있습니다. 즉, make erase_flash flash
모든 것을 지운 다음 새 앱, 부트로더 및 파티션 테이블을 다시 플래시합니다.
최신 버전에 대한 문서: http://esp-idf.readthedocs.io/. 이 문서는 이 저장소의 docs 디렉토리에서 작성되었습니다.
esp32.com 포럼은 질문을 하고 커뮤니티 리소스를 찾을 수 있는 곳입니다.
버그를 발견하거나 기능 요청이 있는 경우 github의 문제 섹션을 확인하세요. 새 이슈를 열기 전에 기존 이슈를 확인하세요.
ESP-IDF에 기여하는 데 관심이 있다면 기여 가이드를 확인하세요.