How espressif/esp8266_rtos_sdk works
ESP8266_RTOS_SDK is an embedded software framework: application code uses its APIs to run on ESP8266 hardware, with FreeRTOS, device drivers, networking, storage, and update/security facilities underneath. The README describes the developer’s configure/build/flash/monitor workflow; the graph focuses on the resulting device runtime rather than build tooling. Provisioning’s documented transports and other unsampled capabilities are retained, but their internal wiring is not inferred. The sampled source is partial, so some subsystem relationships are intentionally omitted.
Main entry points: esp_wifi.c Wi-Fi API · bootloader_init.c Boot support · esp_http_client.c HTTP client · manager.c Wi-Fi provisioning
Components 22
Device runtime
- ESP8266 firmware
- Bootloader
components/bootloader/subproject/main/bootloader_start.c - Boot support
components/bootloader_support/src/bootloader_init.c - FreeRTOS tasks
components/freertos/freertos/tasks.c - Pthread TLS
components/pthread/pthread_local_storage.c
Network stack
- Wi-Fi API
components/esp8266/source/esp_wifi.c - Event loop
components/esp_event/esp_event.c - TCP/IP adapter
components/tcpip_adapter/event_handlers.c
Application services
- HTTP client
components/esp_http_client/esp_http_client.c - HTTP server
components/esp_http_server/src/httpd_main.c - Wi-Fi provisioning
components/wifi_provisioning/src/manager.c - Modbus master/slave
components/freemodbus/common/esp_modbus_master.c
State and updates
- NVS storage
components/nvs_flash/src/nvs_storage.cpp - OTA update
components/app_update/esp_ota_ops.c - HTTPS OTA
components/esp_https_ota/src/esp_https_ota.c - Secure boot
components/bootloader_support/src/secure_boot.c - Device flash
Hardware interfaces
- Peripheral drivers
components/esp8266/driver/gpio.c
Other components
- Application developer
- Network peer
- Provisioning client
- ESP8266 board
Connections 26
- Application developer → ESP8266 firmware: uses APIs
- Bootloader → Boot support: initializes
- Boot support → ESP8266 firmware: starts
- ESP8266 firmware → FreeRTOS tasks: runs tasks
- Pthread TLS → FreeRTOS tasks: cleans task TLS
- ESP8266 firmware → Peripheral drivers: controls peripherals
- Peripheral drivers → ESP8266 board: accesses hardware
- ESP8266 firmware → Wi-Fi API: configures Wi-Fi
- Wi-Fi API → Event loop: posts events
- Event loop → TCP/IP adapter: dispatches events
- TCP/IP adapter → Wi-Fi API: handles Wi-Fi events
- ESP8266 firmware → HTTP client: makes requests
- HTTP client → Network peer: exchanges HTTP
- ESP8266 firmware → HTTP server: serves requests
- Network peer → HTTP server: sends requests
- ESP8266 firmware → Wi-Fi provisioning: starts setup
- Provisioning client → Wi-Fi provisioning: provides credentials
- Wi-Fi provisioning → Wi-Fi API: sets credentials
- ESP8266 firmware → Modbus master/slave: uses Modbus
- ESP8266 firmware → NVS storage: reads and writes
- NVS storage → Device flash: stores values
- ESP8266 firmware → OTA update: requests update
- HTTPS OTA → HTTP client: downloads image
- OTA update → Device flash: writes image
- Boot support → Secure boot: validates image
- Secure boot → Device flash: checks image