본문으로 바로가기

[ESP-IDF] IDE 사용없이 프로젝트 생성 /빌드/플래시/모니터링

category ESP32 2024. 1. 2. 16:26

: Visual Studio Code / Eclipse 같은 IDE 사용 안하고  기존 예제 프로젝트를 다른 디렉토리 복사후

  idf.py 명령으로 build/Flash/monitor 를  진행해 보았습니다.

 

▶ ESP-IDF  예제 프로젝트 복사하기

  : esp-idf/examples/get-started/ 아래의 blink 예제를 복사해 프로젝트 디렉토리에 복사해 줍니다.

   (nautilus 화면에서 Ctrl + C > Ctrl + V 사용)

 

 

▶ target  보드 설정

  → gnome 터미널을 열고 프로젝트 이동후 타겟 장치를  설정해 줍니다.

  > $ idf.py set-target esp32c6

$ idf.py set-target esp32c6
Adding "set-target"'s dependency "fullclean" to list of commands with default set of options.
Executing action: fullclean
Build directory '/home/xxx/Project/esp32/blink/build' not found. Nothing to clean.
Executing action: set-target
Set Target to: esp32c6, new sdkconfig will be created.
Running cmake in directory /home/xxx/Project/esp32/blink/build
Executing "cmake -G Ninja -DPYTHON_DEPS_CHECKED=1 -DPYTHON=/home/xxx/.espressif/python_env/idf5.2_py3.10_env/bin/python -DESP_PLATFORM=1 -DIDF_TARGET=esp32c6 -DCCACHE_ENABLE=0 /home/xxx/Project/esp32/blink"...
-- Found Git: /usr/bin/git (found version "2.34.1") 
-- The C compiler identification is GNU 13.2.0
-- The CXX compiler identification is GNU 13.2.0
-- The ASM compiler identification is GNU
-- Found assembler: /home/xxx/.espressif/tools/riscv32-esp-elf/esp-13.2.0_20230928/riscv32-esp-elf/bin/riscv32-esp-elf-gcc
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /home/xxx/.espressif/tools/riscv32-esp-elf/esp-13.2.0_20230928/riscv32-esp-elf/bin/riscv32-esp-elf-gcc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /home/xxx/.espressif/tools/riscv32-esp-elf/esp-13.2.0_20230928/riscv32-esp-elf/bin/riscv32-esp-elf-g++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Building ESP-IDF components for target esp32c6
Dependencies lock doesn't exist, solving dependencies.
...Updating lock file at /home/xxx/Project/esp32/blink/dependencies.lock
Processing 2 dependencies:
[1/2] espressif/led_strip (2.5.2)
[2/2] idf (5.2.0)
-- Project sdkconfig file /home/xxx/Project/esp32/blink/sdkconfig
-- Looking for sys/types.h
-- Looking for sys/types.h - found
-- Looking for stdint.h
-- Looking for stdint.h - found
-- Looking for stddef.h
-- Looking for stddef.h - found
-- Check size of time_t
-- Check size of time_t - done
-- Found Python3: /home/xxx/.espressif/python_env/idf5.2_py3.10_env/bin/python (found version "3.10.12") found components: Interpreter 
-- Performing Test C_COMPILER_SUPPORTS_WFORMAT_SIGNEDNESS
-- Performing Test C_COMPILER_SUPPORTS_WFORMAT_SIGNEDNESS - Success
-- App "blink" version: 9f6595a
-- Adding linker script /home/xxx/Project/esp32/blink/build/esp-idf/esp_system/ld/memory.ld
-- Adding linker script /home/xxx/esp/esp-idf/components/esp_system/ld/esp32c6/sections.ld.in
-- Adding linker script /home/xxx/esp/esp-idf/components/esp_rom/esp32c6/ld/esp32c6.rom.ld
-- Adding linker script /home/xxx/esp/esp-idf/components/esp_rom/esp32c6/ld/esp32c6.rom.api.ld
-- Adding linker script /home/xxx/esp/esp-idf/components/esp_rom/esp32c6/ld/esp32c6.rom.rvfp.ld
-- Adding linker script /home/xxx/esp/esp-idf/components/esp_rom/esp32c6/ld/esp32c6.rom.newlib.ld
-- Adding linker script /home/xxx/esp/esp-idf/components/esp_rom/esp32c6/ld/esp32c6.rom.version.ld
-- Adding linker script /home/xxx/esp/esp-idf/components/esp_rom/esp32c6/ld/esp32c6.rom.phy.ld
-- Adding linker script /home/xxx/esp/esp-idf/components/esp_rom/esp32c6/ld/esp32c6.rom.coexist.ld
-- Adding linker script /home/xxx/esp/esp-idf/components/esp_rom/esp32c6/ld/esp32c6.rom.net80211.ld
-- Adding linker script /home/xxx/esp/esp-idf/components/esp_rom/esp32c6/ld/esp32c6.rom.pp.ld
-- Adding linker script /home/xxx/esp/esp-idf/components/esp_rom/esp32c6/ld/esp32c6.rom.wdt.ld
-- Adding linker script /home/xxx/esp/esp-idf/components/esp_rom/esp32c6/ld/esp32c6.rom.newlib-normal.ld
-- Adding linker script /home/xxx/esp/esp-idf/components/esp_rom/esp32c6/ld/esp32c6.rom.heap.ld
-- Adding linker script /home/xxx/esp/esp-idf/components/soc/esp32c6/ld/esp32c6.peripherals.ld
-- Components: app_trace app_update bootloader bootloader_support bt cmock console cxx driver efuse esp-tls esp_adc esp_app_format esp_bootloader_format esp_coex esp_common esp_eth esp_event esp_gdbstub esp_hid esp_http_client esp_http_server esp_https_ota esp_https_server esp_hw_support esp_lcd esp_local_ctrl esp_mm esp_netif esp_netif_stack esp_partition esp_phy esp_pm esp_psram esp_ringbuf esp_rom esp_system esp_timer esp_wifi espcoredump espressif__led_strip esptool_py fatfs freertos hal heap http_parser idf_test ieee802154 json log lwip main mbedtls mqtt newlib nvs_flash nvs_sec_provider openthread partition_table protobuf-c protocomm pthread riscv sdmmc soc spi_flash spiffs tcp_transport ulp unity usb vfs wear_levelling wifi_provisioning wpa_supplicant
-- Component paths: /home/xxx/esp/esp-idf/components/app_trace /home/xxx/esp/esp-idf/components/app_update /home/xxx/esp/esp-idf/components/bootloader /home/xxx/esp/esp-idf/components/bootloader_support /home/xxx/esp/esp-idf/components/bt /home/xxx/esp/esp-idf/components/cmock /home/xxx/esp/esp-idf/components/console /home/xxx/esp/esp-idf/components/cxx /home/xxx/esp/esp-idf/components/driver /home/xxx/esp/esp-idf/components/efuse /home/xxx/esp/esp-idf/components/esp-tls /home/xxx/esp/esp-idf/components/esp_adc /home/xxx/esp/esp-idf/components/esp_app_format /home/xxx/esp/esp-idf/components/esp_bootloader_format /home/xxx/esp/esp-idf/components/esp_coex /home/xxx/esp/esp-idf/components/esp_common /home/xxx/esp/esp-idf/components/esp_eth /home/xxx/esp/esp-idf/components/esp_event /home/xxx/esp/esp-idf/components/esp_gdbstub /home/xxx/esp/esp-idf/components/esp_hid /home/xxx/esp/esp-idf/components/esp_http_client /home/xxx/esp/esp-idf/components/esp_http_server /home/xxx/esp/esp-idf/components/esp_https_ota /home/xxx/esp/esp-idf/components/esp_https_server /home/xxx/esp/esp-idf/components/esp_hw_support /home/xxx/esp/esp-idf/components/esp_lcd /home/xxx/esp/esp-idf/components/esp_local_ctrl /home/xxx/esp/esp-idf/components/esp_mm /home/xxx/esp/esp-idf/components/esp_netif /home/xxx/esp/esp-idf/components/esp_netif_stack /home/xxx/esp/esp-idf/components/esp_partition /home/xxx/esp/esp-idf/components/esp_phy /home/xxx/esp/esp-idf/components/esp_pm /home/xxx/esp/esp-idf/components/esp_psram /home/xxx/esp/esp-idf/components/esp_ringbuf /home/xxx/esp/esp-idf/components/esp_rom /home/xxx/esp/esp-idf/components/esp_system /home/xxx/esp/esp-idf/components/esp_timer /home/xxx/esp/esp-idf/components/esp_wifi /home/xxx/esp/esp-idf/components/espcoredump /home/xxx/Project/esp32/blink/managed_components/espressif__led_strip /home/xxx/esp/esp-idf/components/esptool_py /home/xxx/esp/esp-idf/components/fatfs /home/xxx/esp/esp-idf/components/freertos /home/xxx/esp/esp-idf/components/hal /home/xxx/esp/esp-idf/components/heap /home/xxx/esp/esp-idf/components/http_parser /home/xxx/esp/esp-idf/components/idf_test /home/xxx/esp/esp-idf/components/ieee802154 /home/xxx/esp/esp-idf/components/json /home/xxx/esp/esp-idf/components/log /home/xxx/esp/esp-idf/components/lwip /home/xxx/Project/esp32/blink/main /home/xxx/esp/esp-idf/components/mbedtls /home/xxx/esp/esp-idf/components/mqtt /home/xxx/esp/esp-idf/components/newlib /home/xxx/esp/esp-idf/components/nvs_flash /home/xxx/esp/esp-idf/components/nvs_sec_provider /home/xxx/esp/esp-idf/components/openthread /home/xxx/esp/esp-idf/components/partition_table /home/xxx/esp/esp-idf/components/protobuf-c /home/xxx/esp/esp-idf/components/protocomm /home/xxx/esp/esp-idf/components/pthread /home/xxx/esp/esp-idf/components/riscv /home/xxx/esp/esp-idf/components/sdmmc /home/xxx/esp/esp-idf/components/soc /home/xxx/esp/esp-idf/components/spi_flash /home/xxx/esp/esp-idf/components/spiffs /home/xxx/esp/esp-idf/components/tcp_transport /home/xxx/esp/esp-idf/components/ulp /home/xxx/esp/esp-idf/components/unity /home/xxx/esp/esp-idf/components/usb /home/xxx/esp/esp-idf/components/vfs /home/xxx/esp/esp-idf/components/wear_levelling /home/xxx/esp/esp-idf/components/wifi_provisioning /home/xxx/esp/esp-idf/components/wpa_supplicant
-- Configuring done
-- Generating done
-- Build files have been written to: /home/xxx/Project/esp32/blink/build

 

 

▶ 포트 설정

  :  flash 에 사용할 USB 포트 설정하기 ( ESPPORT 변수가 설정이 되어 있으면 안해도 됩니다.)

 

▶ idf.py menuconfig

 : menuconfig  화면에서 수정후 저장을 해 줍니다.

  > $ idf.py menuconfig

 

▶ build

  :  build 과정을 진행해 줍니다.

  > $ idf.py build

$ idf.py build
Executing action: all (aliases: build)
Running ninja in directory /home/xxx/Project/esp32/blink/build
Executing "ninja all"...
[0/1] Re-running CMake...
-- Building ESP-IDF components for target esp32c6
Processing 2 dependencies:
[2/2] idf (5.2.0)
-- Project sdkconfig file /home/xxx/Project/esp32/blink/sdkconfig
-- App "blink" version: 36ac995
-- Adding linker script /home/xxx/Project/esp32/blink/build/esp-idf/esp_system/ld/memory.ld
-- Adding linker script /home/xxx/esp/esp-idf/components/esp_system/ld/esp32c6/sections.ld.in
-- Adding linker script /home/xxx/esp/esp-idf/components/esp_rom/esp32c6/ld/esp32c6.rom.ld
-- Adding linker script /home/xxx/esp/esp-idf/components/esp_rom/esp32c6/ld/esp32c6.rom.api.ld
-- Adding linker script /home/xxx/esp/esp-idf/components/esp_rom/esp32c6/ld/esp32c6.rom.rvfp.ld
-- Adding linker script /home/xxx/esp/esp-idf/components/esp_rom/esp32c6/ld/esp32c6.rom.newlib.ld
-- Adding linker script /home/xxx/esp/esp-idf/components/esp_rom/esp32c6/ld/esp32c6.rom.version.ld
-- Adding linker script /home/xxx/esp/esp-idf/components/esp_rom/esp32c6/ld/esp32c6.rom.phy.ld
-- Adding linker script /home/xxx/esp/esp-idf/components/esp_rom/esp32c6/ld/esp32c6.rom.coexist.ld
-- Adding linker script /home/xxx/esp/esp-idf/components/esp_rom/esp32c6/ld/esp32c6.rom.net80211.ld
-- Adding linker script /home/xxx/esp/esp-idf/components/esp_rom/esp32c6/ld/esp32c6.rom.pp.ld
-- Adding linker script /home/xxx/esp/esp-idf/components/esp_rom/esp32c6/ld/esp32c6.rom.wdt.ld
-- Adding linker script /home/xxx/esp/esp-idf/components/esp_rom/esp32c6/ld/esp32c6.rom.newlib-normal.ld
-- Adding linker script /home/xxx/esp/esp-idf/components/esp_rom/esp32c6/ld/esp32c6.rom.heap.ld
-- Adding linker script /home/xxx/esp/esp-idf/components/soc/esp32c6/ld/esp32c6.peripherals.ld
-- Components: app_trace app_update bootloader bootloader_support bt cmock console cxx driver efuse esp-tls esp_adc esp_app_format esp_bootloader_format esp_coex esp_common esp_eth esp_event esp_gdbstub esp_hid esp_http_client esp_http_server esp_https_ota esp_https_server esp_hw_support esp_lcd esp_local_ctrl esp_mm esp_netif esp_netif_stack esp_partition esp_phy esp_pm esp_psram esp_ringbuf esp_rom esp_system esp_timer esp_wifi espcoredump espressif__led_strip esptool_py fatfs freertos hal heap http_parser idf_test ieee802154 json log lwip main mbedtls mqtt newlib nvs_flash nvs_sec_provider openthread partition_table protobuf-c protocomm pthread riscv sdmmc soc spi_flash spiffs tcp_transport ulp unity usb vfs wear_levelling wifi_provisioning wpa_supplicant
-- Component paths: /home/xxx/esp/esp-idf/components/app_trace /home/xxx/esp/esp-idf/components/app_update /home/xxx/esp/esp-idf/components/bootloader /home/xxx/esp/esp-idf/components/bootloader_support /home/xxx/esp/esp-idf/components/bt /home/xxx/esp/esp-idf/components/cmock /home/xxx/esp/esp-idf/components/console /home/xxx/esp/esp-idf/components/cxx /home/xxx/esp/esp-idf/components/driver /home/xxx/esp/esp-idf/components/efuse /home/xxx/esp/esp-idf/components/esp-tls /home/xxx/esp/esp-idf/components/esp_adc /home/xxx/esp/esp-idf/components/esp_app_format /home/xxx/esp/esp-idf/components/esp_bootloader_format /home/xxx/esp/esp-idf/components/esp_coex /home/xxx/esp/esp-idf/components/esp_common /home/xxx/esp/esp-idf/components/esp_eth /home/xxx/esp/esp-idf/components/esp_event /home/xxx/esp/esp-idf/components/esp_gdbstub /home/xxx/esp/esp-idf/components/esp_hid /home/xxx/esp/esp-idf/components/esp_http_client /home/xxx/esp/esp-idf/components/esp_http_server /home/xxx/esp/esp-idf/components/esp_https_ota /home/xxx/esp/esp-idf/components/esp_https_server /home/xxx/esp/esp-idf/components/esp_hw_support /home/xxx/esp/esp-idf/components/esp_lcd /home/xxx/esp/esp-idf/components/esp_local_ctrl /home/xxx/esp/esp-idf/components/esp_mm /home/xxx/esp/esp-idf/components/esp_netif /home/xxx/esp/esp-idf/components/esp_netif_stack /home/xxx/esp/esp-idf/components/esp_partition /home/xxx/esp/esp-idf/components/esp_phy /home/xxx/esp/esp-idf/components/esp_pm /home/xxx/esp/esp-idf/components/esp_psram /home/xxx/esp/esp-idf/components/esp_ringbuf /home/xxx/esp/esp-idf/components/esp_rom /home/xxx/esp/esp-idf/components/esp_system /home/xxx/esp/esp-idf/components/esp_timer /home/xxx/esp/esp-idf/components/esp_wifi /home/xxx/esp/esp-idf/components/espcoredump /home/xxx/Project/esp32/blink/managed_components/espressif__led_strip /home/xxx/esp/esp-idf/components/esptool_py /home/xxx/esp/esp-idf/components/fatfs /home/xxx/esp/esp-idf/components/freertos /home/xxx/esp/esp-idf/components/hal /home/xxx/esp/esp-idf/components/heap /home/xxx/esp/esp-idf/components/http_parser /home/xxx/esp/esp-idf/components/idf_test /home/xxx/esp/esp-idf/components/ieee802154 /home/xxx/esp/esp-idf/components/json /home/xxx/esp/esp-idf/components/log /home/xxx/esp/esp-idf/components/lwip /home/xxx/Project/esp32/blink/main /home/xxx/esp/esp-idf/components/mbedtls /home/xxx/esp/esp-idf/components/mqtt /home/xxx/esp/esp-idf/components/newlib /home/xxx/esp/esp-idf/components/nvs_flash /home/xxx/esp/esp-idf/components/nvs_sec_provider /home/xxx/esp/esp-idf/components/openthread /home/xxx/esp/esp-idf/components/partition_table /home/xxx/esp/esp-idf/components/protobuf-c /home/xxx/esp/esp-idf/components/protocomm /home/xxx/esp/esp-idf/components/pthread /home/xxx/esp/esp-idf/components/riscv /home/xxx/esp/esp-idf/components/sdmmc /home/xxx/esp/esp-idf/components/soc /home/xxx/esp/esp-idf/components/spi_flash /home/xxx/esp/esp-idf/components/spiffs /home/xxx/esp/esp-idf/components/tcp_transport /home/xxx/esp/esp-idf/components/ulp /home/xxx/esp/esp-idf/components/unity /home/xxx/esp/esp-idf/components/usb /home/xxx/esp/esp-idf/components/vfs /home/xxx/esp/esp-idf/components/wear_levelling /home/xxx/esp/esp-idf/components/wifi_provisioning /home/xxx/esp/esp-idf/components/wpa_supplicant
-- Configuring done
-- Generating done
-- Build files have been written to: /home/xxx/Project/esp32/blink/build
[8/946] Generating ../../partition_table/partition-table.bin
Partition table binary generated. Contents:
*******************************************************************************
# ESP-IDF Partition Table
# Name, Type, SubType, Offset, Size, Flags
nvs,data,nvs,0x9000,24K,
phy_init,data,phy,0xf000,4K,
factory,app,factory,0x10000,1M,
*******************************************************************************
[411/946] Performing configure step for 'bootloader'
-- Found Git: /usr/bin/git (found version "2.34.1") 
-- The C compiler identification is GNU 13.2.0
-- The CXX compiler identification is GNU 13.2.0
-- The ASM compiler identification is GNU
-- Found assembler: /home/xxx/.espressif/tools/riscv32-esp-elf/esp-13.2.0_20230928/riscv32-esp-elf/bin/riscv32-esp-elf-gcc
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /home/xxx/.espressif/tools/riscv32-esp-elf/esp-13.2.0_20230928/riscv32-esp-elf/bin/riscv32-esp-elf-gcc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /home/xxx/.espressif/tools/riscv32-esp-elf/esp-13.2.0_20230928/riscv32-esp-elf/bin/riscv32-esp-elf-g++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Building ESP-IDF components for target esp32c6
-- Project sdkconfig file /home/xxx/Project/esp32/blink/sdkconfig
-- Looking for sys/types.h
-- Looking for sys/types.h - found
-- Looking for stdint.h
-- Looking for stdint.h - found
-- Looking for stddef.h
-- Looking for stddef.h - found
-- Check size of time_t
-- Check size of time_t - done
-- Adding linker script /home/xxx/esp/esp-idf/components/soc/esp32c6/ld/esp32c6.peripherals.ld
-- Bootloader project name: "bootloader" version: 1
-- Adding linker script /home/xxx/esp/esp-idf/components/esp_rom/esp32c6/ld/esp32c6.rom.ld
-- Adding linker script /home/xxx/esp/esp-idf/components/esp_rom/esp32c6/ld/esp32c6.rom.api.ld
-- Adding linker script /home/xxx/esp/esp-idf/components/esp_rom/esp32c6/ld/esp32c6.rom.rvfp.ld
-- Adding linker script /home/xxx/esp/esp-idf/components/esp_rom/esp32c6/ld/esp32c6.rom.newlib.ld
-- Adding linker script /home/xxx/esp/esp-idf/components/esp_rom/esp32c6/ld/esp32c6.rom.phy.ld
-- Adding linker script /home/xxx/esp/esp-idf/components/esp_rom/esp32c6/ld/esp32c6.rom.wdt.ld
-- Adding linker script /home/xxx/esp/esp-idf/components/esp_rom/esp32c6/ld/esp32c6.rom.version.ld
-- Adding linker script /home/xxx/esp/esp-idf/components/bootloader/subproject/main/ld/esp32c6/bootloader.ld
-- Adding linker script /home/xxx/esp/esp-idf/components/bootloader/subproject/main/ld/esp32c6/bootloader.rom.ld
-- Components: bootloader bootloader_support efuse esp_app_format esp_bootloader_format esp_common esp_hw_support esp_rom esp_system esptool_py freertos hal log main micro-ecc newlib partition_table riscv soc spi_flash
-- Component paths: /home/xxx/esp/esp-idf/components/bootloader /home/xxx/esp/esp-idf/components/bootloader_support /home/xxx/esp/esp-idf/components/efuse /home/xxx/esp/esp-idf/components/esp_app_format /home/xxx/esp/esp-idf/components/esp_bootloader_format /home/xxx/esp/esp-idf/components/esp_common /home/xxx/esp/esp-idf/components/esp_hw_support /home/xxx/esp/esp-idf/components/esp_rom /home/xxx/esp/esp-idf/components/esp_system /home/xxx/esp/esp-idf/components/esptool_py /home/xxx/esp/esp-idf/components/freertos /home/xxx/esp/esp-idf/components/hal /home/xxx/esp/esp-idf/components/log /home/xxx/esp/esp-idf/components/bootloader/subproject/main /home/xxx/esp/esp-idf/components/bootloader/subproject/components/micro-ecc /home/xxx/esp/esp-idf/components/newlib /home/xxx/esp/esp-idf/components/partition_table /home/xxx/esp/esp-idf/components/riscv /home/xxx/esp/esp-idf/components/soc /home/xxx/esp/esp-idf/components/spi_flash
-- Configuring done
-- Generating done
-- Build files have been written to: /home/xxx/Project/esp32/blink/build/bootloader
[107/108] Generating binary image from built executable
esptool.py v4.7.0
Creating esp32c6 image...
Merged 3 ELF sections
Successfully created esp32c6 image.
Generated /home/xxx/Project/esp32/blink/build/bootloader/bootloader.bin
[108/108] cd /home/xxx/Project/esp32.../blink/build/bootloader/bootloader.bin
Bootloader binary size 0x5440 bytes. 0x2bc0 bytes (34%) free.
[945/946] Generating binary image from built executable
esptool.py v4.7.0
Creating esp32c6 image...
Merged 2 ELF sections
Successfully created esp32c6 image.
Generated /home/xxx/Project/esp32/blink/build/blink.bin
[946/946] cd /home/xxx/Project/esp32...ee/Project/esp32/blink/build/blink.bin
blink.bin binary size 0x28500 bytes. Smallest app partition is 0x100000 bytes. 0xd7b00 bytes (84%) free.

Project build complete. To flash, run:
 idf.py flash
or
 idf.py -p /dev/ttyACM0 flash
or
 idf.py -p PORT flash
or
 python -m esptool --chip esp32c6 -b 460800 --before default_reset --after hard_reset -p /dev/ttyACM0 write_flash --flash_mode dio --flash_size 2MB --flash_freq 80m 0x0 build/bootloader/bootloader.bin 0x8000 build/partition_table/partition-table.bin 0x10000 build/blink.bin
or from the "/home/xxx/Project/esp32/blink/build" directory
 python -m esptool --chip esp32c6 -b 460800 --before default_reset --after hard_reset -p /dev/ttyACM0 write_flash "@flash_args"

 

 

▶ flash

  :  flash 명령을 사용해 타겟장치에 다운로드 해줍니다.

 > $ idf.py flash

$ idf.py flash
Executing action: flash
Running ninja in directory /home/xxx/Project/esp32/blink/build
Executing "ninja flash"...
[1/5] cd /home/xxx/Project/esp32/bli...ee/Project/esp32/blink/build/blink.bin
blink.bin binary size 0x28500 bytes. Smallest app partition is 0x100000 bytes. 0xd7b00 bytes (84%) free.
[1/1] cd /home/xxx/Project/esp32/bli.../blink/build/bootloader/bootloader.bin
Bootloader binary size 0x5440 bytes. 0x2bc0 bytes (34%) free.
[2/3] cd /home/xxx/esp/esp-idf/compo...nents/esptool_py/run_serial_tool.cmake
esptool.py --chip esp32c6 -p /dev/ttyACM0 -b 460800 --before=default_reset 
           --after=hard_reset write_flash --flash_mode dio --flash_freq 80m 
           --flash_size 2MB 0x0 bootloader/bootloader.bin 
                            0x10000 blink.bin 
                            0x8000 partition_table/partition-table.bin
esptool.py v4.7.0
Serial port /dev/ttyACM0
Connecting...
Chip is ESP32-C6FH4 (QFN32) (revision v0.0)
Features: WiFi 6, BT 5, IEEE802.15.4
Crystal is 40MHz
MAC: 40:4c:ca:ff:fe:43:15:18
BASE MAC: 40:4c:ca:43:15:18
MAC_EXT: ff:fe
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 460800
Changed.
Configuring flash size...
Flash will be erased from 0x00000000 to 0x00005fff...
Flash will be erased from 0x00010000 to 0x00038fff...
Flash will be erased from 0x00008000 to 0x00008fff...
Compressed 21568 bytes to 12999...
Writing at 0x00000000... (100 %)
Wrote 21568 bytes (12999 compressed) at 0x00000000 in 0.3 seconds (effective 552.5 kbit/s)...
Hash of data verified.
Compressed 165120 bytes to 85133...
Writing at 0x00036c6b... (100 %)
Wrote 165120 bytes (85133 compressed) at 0x00010000 in 1.3 seconds (effective 989.3 kbit/s)...
Hash of data verified.
Compressed 3072 bytes to 103...
Writing at 0x00008000... (100 %)
Wrote 3072 bytes (103 compressed) at 0x00008000 in 0.0 seconds (effective 628.6 kbit/s)...
Hash of data verified.

Leaving...
Hard resetting via RTS pin...
Done

 

 

▶ monitor

 : monitor 명령을 사용해 로그를 출력하기  ( 종료명령: Ctrl + ] )

   > idf.py monitor

$ idf.py monitor
Executing action: monitor
Running idf_monitor in directory /home/xxx/Project/esp32/blink
Executing "/home/xxx/.espressif/python_env/idf5.2_py3.10_env/bin/python 
           /home/xxx/esp/esp-idf/tools/idf_monitor.py 
               -p /dev/ttyACM0 -b 115200 --toolchain-prefix riscv32-esp-elf- 
               --target esp32c6 --revision 0 --decode-panic 
               backtrace /home/xxx/Project/esp32/blink/build/blink.elf 
               -m '/home/xxx/.espressif/python_env/idf5.2_py3.10_env/bin/python' 
                  '/home/xxx/esp/esp-idf/tools/idf.py'"...
--- esp-idf-monitor 1.3.4 on /dev/ttyACM0 115200 ---
--- Quit: Ctrl+] | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H ---
I (102) esp_image: segment 1: paddr=0001a2e0 vaddr=408000ESP-ROM:esp32c6-20220919
Build:Sep 19 2022
rst:0x15 (USB_UART_HPSYS),boot:0x7f (SPI_FAST_FLASH_BOOT)
Saved PC:0x40803d26
0x40803d26: rv_utils_wait_for_intr 
           at /home/xxx/esp/esp-idf/components/riscv/include/riscv/rv_utils.h:52
 (inlined by) esp_cpu_wait_for_intr 
           at /home/xxx/esp/esp-idf/components/esp_hw_support/cpu.c:143

SPIWP:0xee
mode:DIO, clock div:2
load:0x40875720,len:0x1804
load:0x4086c410,len:0xde0
load:0x4086e610,len:0x2dfc
entry 0x4086c41a
I (23) boot: ESP-IDF v5.2-beta1-263-ge49823f10c 2nd stage bootloader
I (23) boot: compile time Jan  2 2024 16:46:54
I (24) boot: chip revision: v0.0
I (27) boot.esp32c6: SPI Speed      : 80MHz
I (32) boot.esp32c6: SPI Mode       : DIO
I (37) boot.esp32c6: SPI Flash Size : 2MB
I (42) boot: Enabling RNG early entropy source...
I (47) boot: Partition Table:
I (51) boot: ## Label            Usage          Type ST Offset   Length
I (58) boot:  0 nvs              WiFi data        01 02 00009000 00006000
I (65) boot:  1 phy_init         RF data          01 01 0000f000 00001000
I (73) boot:  2 factory          factory app      00 00 00010000 00100000
I (81) boot: End of partition table
I (85) esp_image: segment 0: paddr=00010020 vaddr=42018020 size=0a2b8h ( 41656) map
I (102) esp_image: segment 1: paddr=0001a2e0 vaddr=40800000 size=05d38h ( 23864) load
I (108) esp_image: segment 2: paddr=00020020 vaddr=42000020 size=12034h ( 73780) map
I (125) esp_image: segment 3: paddr=0003205c vaddr=40805d38 size=051bch ( 20924) load
I (131) esp_image: segment 4: paddr=00037220 vaddr=4080af00 size=012b4h (  4788) load
I (135) boot: Loaded app from partition at offset 0x10000
I (137) boot: Disabling RNG early entropy source...
I (153) cpu_start: Unicore app
W (162) clk: esp_perip_clk_init() has not been implemented yet
I (169) cpu_start: Pro cpu start user code
I (169) cpu_start: cpu freq: 160000000 Hz
I (169) cpu_start: Application information:
I (172) cpu_start: Project name:     blink
I (177) cpu_start: App version:      36ac995
I (182) cpu_start: Compile time:     Jan  2 2024 16:46:48
I (188) cpu_start: ELF file SHA256:  c034c783d...
I (193) cpu_start: ESP-IDF:          v5.2-beta1-263-ge49823f10c
I (200) cpu_start: Min chip rev:     v0.0
I (204) cpu_start: Max chip rev:     v0.99 
I (209) cpu_start: Chip rev:         v0.0
I (214) heap_init: Initializing. RAM available for dynamic allocation:
I (221) heap_init: At 4080D110 len 0006F500 (445 KiB): RAM
I (227) heap_init: At 4087C610 len 00002F54 (11 KiB): RAM
I (233) heap_init: At 50000000 len 00003FE8 (15 KiB): RTCRAM
I (241) spi_flash: detected chip: generic
I (244) spi_flash: flash io: dio
W (248) spi_flash: Detected size(4096k) larger than the size in the binary image header(2048k). Using the size in the binary image header.
I (262) sleep: Configure to isolate all GPIO pins in sleep state
I (268) sleep: Enable automatic switching of GPIO sleep configuration
I (275) coexist: coex firmware version: e41c5cb
I (281) coexist: coexist rom version 5b8dcfa
I (286) main_task: Started on CPU0
I (286) main_task: Calling app_main()
I (286) example: Example configured to blink addressable LED!
I (296) gpio: GPIO[8]| InputEn: 0| OutputEn: 1| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0 
I (306) example: Turning the LED OFF!
I (1306) example: Turning the LED ON!
I (2306) example: Turning the LED OFF!
I (3306) example: Turning the LED ON!
I (4306) example: Turning the LED OFF!
I (5306) example: Turning the LED ON!

 

 : IDE 없이 idf.py를 사용해 프로젝트를 build/flash/moniotor  진행해 봤습니다.

  참고자료 입니다.  그럼 수고하세요.

반응형