idf.py는 esp-idf를 이용해서 펌웨어 개발시 모든 기능을 담당하는 스크립트입니다. 따라서 프로젝트 생성을 포함해서 빌드와 다운로드까지 모두 idf.py를 통해서 진행 가능합니다.
**idf.py 명령어 리스트**
add-dependency
all
app
app-flash
bootloader
bootloader-flash
build-system-targets
clean
confserver
coredump-debug
coredump-info
create-component
create-manifest
create-project
create-project-from-example
delete-version
docs
efuse-common-table
efuse-custom-table
encrypted-app-flash
encrypted-flash
erase-flash
erase-otadata
flash
fullclean
gdb
gdbgui
gdbtui
menuconfig
monitor
openocd
pack-component
partition-table
partition-table-flash
post-debug
python-clean
read-otadata
reconfigure
save-defconfig
set-target
show-efuse-table
size
size-components
size-files
uf2
uf2-app
update-dependencies
upload-component
upload-component-status
VSCode에서 새로운 터미널 생성
프로젝트 생성하기
idf.py create-project esp32-led
esp32-led 폴더에 기본 프로젝트가 생성됨
app_main() 함수만 있는 가장 기본적인 프로젝트임
코드를 아래와 같이 시리얼로 메세지 출력하는 것으로 변경한다.
#include <stdio.h>
#include "sdkconfig.h"
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
void app_main(void)
{
while(1)
{
printf("test\\n");
vTaskDelay(500 / portTICK_PERIOD_MS);
}
}
타켓 설정하기
프로젝트 빌드를 위해서는 사용되는 ESP32 모델을 설정해야 한다.
cd esp32-led
idf.py set-target esp32s3
타켓 설정을 하고나면 bulid 폴더와 sdkconfig 파일이 생성된다. sdkconfig는 프로젝트 전체에 대한 설정을 담고 있는 파일이다.
설정 변경하기
리눅스 환경에서 개발시 많이 보던 menuconfig를 이용해서 프로젝트 환경 설정을 하게 됩니다.
idf.py menuconfig
익숙하게 보던 설정 화면이 나오고 필요한 항목을 수정하면 됩니다.
특히 MCU 클럭이나 SPI 플래시 메모리 타입등 설정 한다.
PSRAM의 Octal이 연결되어 있기 때문에 같이 설정한다.
S를 누르면 저장된다.
저장을 하면 sdkconfig 파일이 수정된다.
빌드 명령어로 빌드를 진행한다.
idf.py build