Блог
Архитектура ESP32: ARM, RISC-V и Xtensa
Какой процессор стоит внутри ESP32, относится ли он к ARM, RISC-V или Xtensa и как чип устроен на самом деле — прямые ответы без воды.
Как работает ESP32?
При включении загрузчик в ROM проверяет флеш-память, загружает вашу прошивку и передаёт ей управление. Ваша программа — обычно под FreeRTOS — распределяет задачи между ядрами: одно держит Wi-Fi живым, второе выполняет вашу логику. Периферия (пины, таймеры, I2C, SPI) сидит на шине, настраиваемой как регистры памяти. Вся архитектура — это два ядра, коммутатор пинов и радио по бокам.
ESP32 — это ARM?
Нет. Классический ESP32 использует ядра Xtensa LX6 от компании Tensilica (теперь Cadence) — это лицензируемая архитектура, как ARM, но не ARM. У S2 и S3 стоят более новые ядра LX7. Если вы знакомы только с ARM-чипами (STM32, Raspberry Pi), разница в основном в инструментарии: код для ARM не скомпилируется для ESP32 без изменений.
ESP32 построен на ARM?
Нет — во всём семействе нет ни одного ARM-ядра, так что ответ тот же, что и на вопрос «использует ли esp32 arm». На классических чипах стоит Xtensa, на новых — RISC-V. ARM лицензирует свои разработки производителям; Espressif выбрал другие архитектуры — во многом поэтому чипы такие дешёвые. Статьи, называющие ESP32 ARM-чипом, путают его с STM32 или nRF.
ESP32 — это RISC-V?
Половина семейства. ESP32-C3, C6, H2 и P4 используют RISC-V, а оригинальные ESP32, S2 и S3 — Xtensa. Так что «esp32 — это risc-v» — вопрос про семейство: буква C в названии означает RISC-V, без буквы или с буквой S — Xtensa. У меня на столе лежат и C3, и S3 — в повседневном коде разница почти не ощущается. На форумах на вопросы «esp32 riscv» или «esp32 risc v» ответ один: какая модель?
ESP32 — это open source?
Частично, и это разделение важно. SDK (ESP-IDF), Arduino-ядро и большинство библиотек — открытый код под лицензией Apache 2.0: их можно проверять и пересобирать. Сам чип — закрытый кремний: открытой разводки нет, а часть компонентов радио и Bluetooth поставляется бинарниками. C3 и C6 документированы лучше, но полностью открытого железа среди них нет.
Какое процессорное ядро стоит в ESP32?
Два 32-битных ядра Xtensa LX6 на частоте до 240 МГц с блоком вычислений с плавающей точкой. LX6 спроектирован для DSP-задач с SIMD-расширениями — поэтому ESP32 при своих размерах так хорошо справляется со звуком. У S3 ядра LX7 дают больше пропускной способности памяти и быструю криптографию; C-серия меняет LX6 на RISC-V RV32 — проще, но по реальной скорости сравним.
Почему ESP32 использует Xtensa, а не ARM?
Цена лицензии и история. Первый хит Espressif, ESP8266, уже был построен на Xtensa, а условия Tensilica позволили Espressif демпинговать по сравнению с ARM. Обратная сторона ложится на вас: для Xtensa нужен собственный компилятор, и часть библиотек под ARM не переносится. Зато вы получаете полноценный Wi-Fi-микроконтроллер за два доллара; PlatformIO прячет все мучения с инструментарием.
Как ESP32 общается с внешним миром?
Через GPIO-матрицу — кроссбар, который коммутирует сигнал почти любой периферии на почти любой пин. UART, SPI, I2C, I2S, RMT, ШИМ через LEDC и сенсорные входы настраиваются в софте, а не распаяны жёстко. Такая гибкость редкость в этой ценовой категории — на вопрос «какой пин можно использовать для X» почти всегда ответ «любой, какой хотите».
Можно ли запустить Linux на ESP32?
Практически нет: ESP32 работает на FreeRTOS, MicroPython или без ОС вовсе. Он микроконтроллерного класса: нет MMU, мало RAM, нет нормального интерфейса для накопителей. RISC-V модель ESP32-P4 — шаг вперёд, но всё ещё не Linux-машина. Нужен Linux — нужно другое железо, например Raspberry Pi.
Влияет ли архитектура на выбор платы?
Влияет, но только по краям. Для разработки в стиле Arduino она невидима — та же IDE, те же библиотеки. Архитектура важна для инструментариев, работающих только с RISC-V, векторных инструкций или глубокой настройки энергопотребления, а ещё она определяет, какие готовые бинарники можно прошить. FAQ о внутренностях ESP32 копает глубже в ядра и память, а в базе знаний можно сравнить семейства.
Проекты по этой теме запускаются прямо в бесплатном симуляторе sensbench: схема уже собрана, прошивка включена — без аккаунта и установки.