ESP32 펌웨어 개발 방법(2) - ESP-IDF
ESP-IDF
ESP-IDF는 ESP32 펌웨어를 개발하기 위한 기본 SDK입니다.
ESP-IDF는 완전한 C 및 C++ 프로그래밍 언어를 지원하여 C/C++이 제공하는 기능을 완전히 활용할 수 있습니다.
ESP-IDF는 ESP32 및 ESP8266 마이크로컨트롤러와 함께 IoT 개발을 위해 특별히 설계된 다양한 도구와 기능을 제공합니다. ESP32 의 신규 제품에 대하여 지속적으로 빠르게 지원이 됩니다.
FreeRTOS의 네이티브 지원으로 효율적인 메모리 관리 및 디버깅 도구로 멀티코어 CPU에 대하여 지원이 됩니다. Bluetooth, Wi-Fi 및 저전력 모드와 하드웨어 기능에 대하여 원할하고 빠르게 지원이 됩니다.
주요 특징
- Navtive FreeRTOS 지원, Tasked 기반, 멀티 코어 지원
- 새로운 ESP32 제품에 대한 즉시 지원
- POSIX threads & other POSIX APIs, BSD sockets, thread-safe C/C++ standard libraries, virtual file system support.
- SPI, I2C, UART, GPIO, I2S, ADC, DAC, Capacitive Touch, Timers, LED and Motor PWM, RMT, Pulse Counter, CAN/TWAI, SD/eMMC/SDIO host and SDIO slave, Ethernet driver.
- The Wi-Fi driver is compatible with Wi-Fi Alliance certification; also offering WPA3 support, proprietary Wi-Fi mesh protocol, ESP-NOW point-to-point protocol, ESP-R long range protocol, sniffer mode and SmartConfig provisioning protocol.
- Bluetooth controller and two host stacks: Bluedroid (dual-mode) and NimBLE (Bluetooth LE only), standards-compliant Bluetooth LE mesh support, Bluetooth SIG certification for all the components.
- LwIP TCP/IP stack for IPv4 and IPv6 connectivity , DHCP client and server, TLS client and server (up to 1.2), HTTP client and server, HTTP2 client, WebSocket client, MQTT, mDNS, CoAP, ModBus, SNTP, SMTP.
- Power management framework for MCU low-power modes and Wi-Fi and Bluetooth low-ower modes; dynamic frequency scaling, support for ULP (ultra-low-power) co-processor.
- Partition manager, fault-tolerant and log-structured key-value storage (NVS) with encryption support, FAT, and SPIFFS file system support.
- Hardware-backed security features, such as flash encryption and secure boot, cryptographic accelerator support for RSA, SHA and AES, libsodium and micro-ecc cryptographic libraries.
- Unified provisioning framework for device on-boarding, using Bluetooth LE, Wi-Fi and other out-of-band mechanisms.
- CMake-based build system supporting external components and external application projects.
GCC cross toolchain, OpenOCD-ased JTAG debugger, static and dynamic footprint analysis, memory leak detector, core dump crash analyser, real-time tracing compatible with Segger SystemView tool, flash and eFuse programmer, device manufacturing tools. - Microsoft Visual Studio Code extension and Eclipse IDE plugin for ESP-IDF projects.
Visual Studio Code Extension >
Eclipse IDE plugin >
Open source
ESP-IDF는 GitHub에서 무료로 제공됩니다. ESP-IDF의 대부분 구성 요소는 Apache 2.0 라이선스 하에 소스 형태로 사용 가능합니다. 제3자 구성 요소는 호환되는 허용 라이선스 하에 사용 가능합니다
Production Ready
ESP-IDF는 명확한 릴리스 프로세스와 지원 정책을 갖추고 있어 고객들이 안정된 릴리스를 선택하고 애플리케이션에 대한 중요한 수정 사항을 계속해서 받을 수 있도록 보장합니다. 각 안정된 릴리스는 제품 생산 준비가 되었음을 보장하는 엄격한 QA 프로세스를 거치게 됩니다.
Feature-Rich Software Components
ESP-IDF는 RTOS, 주변 장치 드라이버, 네트워킹 스택, 여러 프로토콜 구현, 그리고 일반적인 응용 프로그램 사용 사례를 위한 도우미 등을 포함한 다양한 소프트웨어 구성 요소를 지원합니다. 이러한 구성 요소들은 개발자가 비즈니스 로직에 집중할 수 있도록 도와줍니다. SDK는 전형적인 응용 프로그램에 필요한 대부분의 기본 구성 요소를 제공하고 있습니다. 또한, 오픈 소스이며 무료로 사용 가능한 개발자 도구와 공식적으로 지원되는 Eclipse 및 VSCode IDE를 통해 개발자들에게 사용 편의성을 제공합니다.
Documentation and Examples
ESP-IDF는 사용 수준 뿐만 아니라 설계 수준에서의 소프트웨어 구성 요소에 대한 방대한 문서를 제공합니다. 이는 개발자가 ESP-IDF가 제공하는 기능을 완전히 이해하고 자신의 응용 프로그램에 가장 적합한 것을 선택할 수 있도록 도와줍니다. ESP-IDF에는 그 구성 요소들의 사용법 뿐만 아니라 하드웨어 주변 장치와 기능에 대한 설명을 포함한 100개 이상의 예제가 있습니다. 이러한 테스트가 잘 된 예제들은 여러분의 응용 프로그램을 시작하는 데에 훌륭한 기초를 제공합니다.
Software Components and Features
Download
https://github.com/espressif/esp-idf
https://components.espressif.com/
https://docs.espressif.com/projects/esp-idf/en/latest/esp32/get-started/index.html