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 툴을 이용해서 복사 해도됨)
Configuration - terminal 창에서 우리가 만든 /Test/01_hello_world 로 이동하여 make menuconfig 구문 실행해야 하는데, 그 전에 make 라는 명령어가 있는 경로에 접근가능하게 경로 설정 하고 make menuconfig 실행한다. 아래 전체 구문이다.
경로설정간편 tip. 터미널창에서 매번 경로설정하는 것 대신, 폴더 Home 에 있는 .bashrc 파일의 제일 하단에 아래 처럼 기록해두면 terminal창에서 경로지정하지 않아도 make 명령어 실행가능하다.
위 make menuconfig 가 실행되면 아래 화면과 같은 사용자 입력 화면이 보인다. 본 설정화면에서 각 메뉴들 선택상태에서 엔터 쳐서 세부 설정을 할 수 있다. 아직 기본 설정값 변경할 필요없다. 아래 화면의 < Save > 선택하여 저장(폴더 01_hello_world 에 파일명 sdkconfig 으로 저장된다.)하고 Configuratuion 에서 exit 한다. Compile (Build) 본 과정의 최종 결과물은 타겟디바이스(ESP32)에 기록하기 위한 "펌웨어 바이너리" 파일을만들어내는 것이다.
위 구문 실행하면, build 폴더가 새로 만들어지면서, 3개의 파일 bootloader.bin, partions_singleapp.bin, hello_world.bin 이 한 번에 다 만들어진다(아래 화면 파란줄). 개별적으로 build하려면 make bootloader, make app, make partion_table 을 개별적으로 실행하면된다. Firmware Download to Device. 바이너리 파일을 기기로 기록하기 전에, 아래 구문실행하여 사용자에게 dialout 권한 부여하고 재부팅한다. - 아래 구문은 1회만 실행하면 되고 재부팅해야 권한 적용됨.
펌웨어 바이너리 파일이 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 라는 폴더가 없다면 새롭게 만들어지면서 클론처리되고, 이미 폴더가 있다면 그 속에 파일들 복사 처리된다.
이후 configuration -> buld -> flash write 처리방식은 앞의 방법과동일.
| ||
|
///1039
'임베디드.일렉트로닉스' 카테고리의 다른 글
ESP32. 모듈 ESP-32S (0) | 2016.11.03 |
---|---|
ESP32. 개발보드 NodeMCU-32S (0) | 2016.11.03 |
ESP32. ESP-IDF (Linux) 다운로드. git clone, git pull. (0) | 2016.11.02 |
ESP32. Toolchain Linux(x64)용 다운로드, 설치. (0) | 2016.11.02 |
ESP32. DMA (0) | 2016.11.01 |
댓글