본문 바로가기
임베디드.일렉트로닉스

ESP32. ESP-IDF (Linux) 활용방법 전체흐름. Hello World.

by i.got.it 2016. 11. 2.


 

Overview

 

우분투에서 ESP-IDF 에서 제공하는 예제코드 "01_hello_world" 를 이용하여 아래 사항들 시행. 

1. configuratuion
2. compile (Build)
3. firmware download

본 예제코드가 타겟보드에서 실행되면 FreeRTOS  task 생성되고 이 task 에서  Hello World  문자열을 printf  출력하고 10초후에 재부팅 반복 하는 간단한 실행 이뤄짐.

 

 

 

상세.

 

신규 폴더 "Test" 새로 만들고 esp-idf/examples 폴더의 01_hello_world 복사하기.
- esp-idf 폴더의 내용은 수정하지 않고 원본 상태 유지하기 위함.

terminal 창에서 아래 구문 타이핑하면 Test 폴더와 01_hello_world 폴더 만들어지고 모두 복사된다.
(terminal 창에서 구문 타이핑 하지 않고, GUI 툴을 이용해서 복사 해도됨)


 cp ~/WORK_ESP32/esp-idf/examples/01_hello_world ~/WORK_ESP32/Test/01_hello_world -r
 


Configuration

- terminal 창에서 우리가 만든 /Test/01_hello_world 로 이동하여 make menuconfig 구문 실행해야 하는데, 그 전에 make 라는 명령어가 있는 경로에 접근가능하게 경로 설정 하고 make menuconfig 실행한다. 아래 전체 구문이다.

cd ~/WORK_ESP32/Test/01_hello_world 

export IDF_PATH=~/WORK_ESP32/esp-idf
make menuconfig


경로설정간편 tip.

터미널창에서 매번 경로설정하는 것 대신, 폴더 Home 에 있는 .bashrc 파일의 제일 하단에 아래 처럼 기록해두면 terminal창에서 경로지정하지 않아도 make 명령어 실행가능하다.


 export IDF_PATH=$HOME/WORK_ESP32/esp-idf




위 make menuconfig 가 실행되면 아래 화면과 같은 사용자 입력 화면이 보인다.

본 설정화면에서 각 메뉴들 선택상태에서 엔터 쳐서 세부 설정을 할 수 있다. 아직 기본 설정값 변경할 필요없다.

아래 화면의 < Save > 선택하여 저장(폴더 01_hello_world 에 파일명 sdkconfig 으로 저장된다.)하고 Configuratuion 에서 exit 한다.


Compile (Build)


본 과정의 최종 결과물은 타겟디바이스(ESP32)에 기록하기 위한 "펌웨어 바이너리" 파일을만들어내는 것이다. 


 make all 


위 구문 실행하면, build 폴더가 새로 만들어지면서, 3개의 파일 bootloader.bin, partions_singleapp.bin, hello_world.bin 이 한 번에 다 만들어진다(아래 화면 파란줄). 

개별적으로 build하려면 make bootloader, make app, make partion_table 을 개별적으로 실행하면된다.




Firmware Download to Device.


바이너리 파일을 기기로 기록하기 전에, 아래 구문실행하여 사용자에게 dialout 권한 부여하고 재부팅한다.

- 아래 구문은 1회만 실행하면 되고 재부팅해야 권한 적용됨.


sudo usermod -a -G dialout $USER


펌웨어 바이너리 파일이 3개가 있고, 각각을 개별적으로 ESP32 타겟디바이스로 기록하는 명령어는 아래와 같다.


 make bootloader-flash 

설명 : bootloader 는 처음 1회만 기록하면 된다. 이 부트로더(secondary bootloader라고 한다.)는 플래시의 0x1000 에 기록되고 사용자 코드를 부팅하는 역할이다. 


 make app flash

설명 : 응용코드 수정될때마다 새로 기록하면 된다.


 make partion_table-flash

설명 : pattion table 수정되지 않았다면, 처음 1회만 기록하면된다.


바이너리 파일3개 한 번에 기기에 기록하기 위해서는->    make flash


 


 

 

기타. - 템플릿 프로젝트로 시작하기.

 

상기 박스글의 내용이 ESP-IDF 기반 configuration -> Build -> flash write 과정 전체이다.

위 예에서 사용된 코드는 edp-idf 폴더에 같이 제공된 예제 프로젝트 중 하나를 활용한 경우이며,

guthub로 제공하는 템플릿 프로젝트인 esp-idf-template.git 를 클론시켜서 본인 개발 프로젝트 시작점으로 할 수있다.


우리가새롭게 코딩할 프로젝트 폴더를 WORK_ESP32/myfirst 로 만들고 이곳에 github 에서 제공하는 소스들을 복사해서 사용할 수 있다. git clone구문은 아래처럼 "WORK_ESP32 폴더 터미널"에서 구문 실행시킨다. 이때 myfirst 라는 폴더가 없다면 새롭게 만들어지면서 클론처리되고, 이미 폴더가 있다면 그 속에 파일들 복사 처리된다.



 git clone https://github.com/espressif/esp-idf-template.git myfirst



이후 configuration -> buld -> flash write 처리방식은 앞의 방법과동일.

 

 


 



///1039

댓글



 

비트코인




암호화폐       외환/나스닥/골드       암호화폐/외환/나스닥/골드 암호화폐/외환/나스닥/골드   암호화폐/외환/나스닥/골드
     
현물 |선물 인버스 |선물 USDT       전략매니저(카피트레이딩)     롤오버 이자 없는 스왑프리계좌
( 스왑프리 암호화폐도 거래 가능 )    
MT4, MT5 , cTrader 모두 지원     FTMO 계좌 매매운용. MT4,MT5