ESP32 개발을 위한 ESP-IDF SDK 세팅

JaeKwon Jin·2024년 9월 4일
0

embeded(임베디드)iot

목록 보기
2/6
brew install ccache
brew install cmake ninja dfu-util
  • Python 3가 설치되어 있지 않으면 설치
brew install python3
  • ESP-IDF 다운로드
mkdir -p ~/esp
cd ~/esp
git clone --recursive https://github.com/espressif/esp-idf.git

맥의 경우 다운로드 에러가 나면

Install Certificates.command 

위 명령어를 하거나, 해당 파일의 주소를 크롬에서 한번 열어주고 다운로드 받아지는지 확인하면 된다.

git clone -b v5.3.1 --recursive https://github.com/espressif/esp-idf.git

만약에 다운로드가 아래와 같이 에러가 나면 리포지토리가 커서 그런 거니 뎁쓰를 1로 줄여서 받는다.

RPC failed; curl 18 transfer closed with outstanding read data remaining

그래도 안되면 GitHub Desktop을 이용해서 URL로 받기를 이용해서 받는다.

*설치되는 디렉토리는 ~/esp/esp-id 을 확인

  • 툴 셋업
cd ~/esp/esp-idf
./install.sh esp32
  • 환경변수 설정
. $HOME/esp/esp-idf/export.sh

이 설정을 매번 할 때마 넣을 수 불러야 한다.
귀찮아서 그냥 ~/.zshrc 파일에 넣어도 되지만, 그러면 esp-idf가 설치하는 가상환경이 모든 쉘 터미널에 적용되기때문에 제조사에서 권장하지 않는다 대신에
~/.zshrc 에서 다음과 같은 alias를 만들고 할 때마다 get_idf라고 쳐서 설정하는 것을 권한다.

alias get_idf='. $HOME/esp/esp-idf/export.sh'
  • 새 프로젝트를 만들기
cd ~/esp
mkdir projects
cd projects
cp -r $IDF_PATH/examples/get-started/hello_world .
ls /dev/tty.* 

이렇게 찾아보면 /dev/tty.SLAB_USBtoUART 파일이
있으면 제대로 설치된 것을 확인

혹은

ls /dev/cu.*

해서 보면
/dev/cu.usbserial-0001
이 있는데 둘다 같은 거다.

  • 개발 보드에 hello_world 컴파일하 Flash(굽고) 실행하기
idf.py -p /dev/tty.SLAB_USBtoUART -b 115200 flash

혹은

idf.py -p /dev/cu.usbserial-0001 -b 115200 flash

윈도우의 경우 아래와 같이 할 수 있다.
윈도우는 장치 관리자에서 포트를 알아 볼 수 있다.

idf.py -p COM3 -b 115200 flash
  • 보드의 시리얼포트 출력을 보는 법
screen  /dev/cu.usbserial-0001 11520

위 명령에서 나가려면 Ctrl+A 를 누르고 K를 누른다음에 y를 하면 된다.

참고로 아래와 같은 화면이 나오게 된다.

I (232) efuse_init: Max chip rev:     v3.99 
I (237) efuse_init: Chip rev:         v3.1
I (243) heap_init: Initializing. RAM available for dynamic allocation:
I (250) heap_init: At 3FFAE6E0 len 00001920 (6 KiB): DRAM
I (256) heap_init: At 3FFB2BE8 len 0002D418 (181 KiB): DRAM
I (262) heap_init: At 3FFE0440 len 00003AE0 (14 KiB): D/IRAM
I (268) heap_init: At 3FFE4350 len 0001BCB0 (111 KiB): D/IRAM
I (275) heap_init: At 4008CA58 len 000135A8 (77 KiB): IRAM
I (282) spi_flash: detected chip: generic
I (285) spi_flash: flash io: dio
W (289) spi_flash: Detected size(4096k) larger than the size in the binary image header(2048k). Using the size in the binary image header.
I (303) main_task: Started on CPU0
I (313) main_task: Calling app_main()
Hello world!
This is esp32 chip with 2 CPU core(s), WiFi/BTBLE, silicon revision v3.1, 2MB external flash
Minimum free heap size: 305072 bytes
  • 팁 터미널 스크롤이 빨라서 보기 힘들때
Ctrl+S를 누르면 화면이 일시 정지
Ctrl+Q를 누르면 다시 스크롤이 재개 된다.
  • 타인의 컴퓨터에서 빌드하던 것을 다시 내 컴으로 하면 경로가 안 맞게 된다. 이것을 막기 위해서는 .gitignorebuild/bootloader/CMakeCache.txt 를 추가한다.
    그러면 idf.py를 할 때 자동으로 자기 셋업에 맞게 다시 CMakeCache.txt를 생성한다.
  • 빌드만 하는 경우
idf.py build
  • VSCode 와 Cursor 에서 CMD + P 후에 > 누르고 ESP Select where to Save Configuration Settings를 선택해서 유저나 글로벌로 한다.
  • .zshrc 에서 IDF_PATH를 추가하고
export IDF_PATH=~/esp/esp-idf
  • 터미널을 다시 껐다 다시 켜고 잘 되었는지 아래 명령어로 확인
printenv IDF_PATH
  • python3를 python으로 매핑이 되어야 한다.
alias python=python3
profile
중년개발자

0개의 댓글