在多核嵌入式開發中,如何實現任務的高效分工與跨核通信,一直是開發者關注的重點。ESP-AMP 作為專為 ESP32 系列打造的非對稱多處理框架,現已支持主核運行 FreeRTOS、從核運行裸機或其他實時操作系統,并提供完整的核間通信機制。
啟明云端旗兩款高性能開發板——WT99P4C5-S1與 WTDKP4C5-S1,搭載樂鑫科技ESP32-P4芯片和ESP32-C5芯片,均已支持 ESP-AMP 框架,為開發者提供即插即用的多核開發體驗,助力項目快速落地。
ESP-AMP介紹
ESP-AMP 是一款開源框架,適用于在多處理核心的 ESP32 系列片上系統(SoC)上構建非對稱多處理(AMP)應用。該框架支持一個核心運行 IDF FreeRTOS 固件,另一個核心運行裸機或其他實時操作系統(RTOS)等不同軟件環境,并提供了一套用于核心間通信與同步的 API。本文檔后續將運行 IDF FreeRTOS 的核心稱為主核(maincore),運行其他軟件環境的核心稱為從核(subcore)。
與 ESP-IDF 提供的默認對稱多處理(SMP)系統相比,ESP-AMP 具有以下差異化特性:
核心功能定制選擇:在單高性能(HP)核心的 SoC 中,低功耗(LP)核心可作為從核,為從主核分擔部分任務;在多 HP 核心系統中,ESP-AMP 支持將一個 HP 核心作為主核,其余 HP 核心作為從核運行。
靈活性更高:支持在兩個核心上并行部署不同配置、運行專用應用,以適配更復雜的使用場景(目前從核僅支持裸機環境)。
ESP-AMP架構
ESP-AMP 提供了一套完整的核心間通信(IPC)和同步組件,采用分層架構設計,如下圖所示:

你可選擇不同層級的 API,或組合多層級 API,以滿足特定需求或使用場景。從下至上,各組件如下:
共享內存(Shared Memory):跨核心通信的基礎數據共享機制。
軟件中斷(Software Interrupt):跨核心通信的基礎通知機制。
事件(Event):包含主核與從核間同步的 API。
隊列(Queue):無鎖隊列,支持核心間單向通信。
遠程處理器消息傳遞(RPMsg):遠程處理器消息傳遞協議的實現,支持應用中并發通信流。
遠程過程調用(RPC):基于 RPMsg 構建的簡易遠程過程調用框架。
此外,ESP-AMP 還提供了端口層(Port Layer),用于抽象不同環境和 SoC 之間的差異,為上層提供統一接口。
構建系統
ESP-AMP 配備靈活的構建系統,可輕松構建主核和從核固件,核心特性包括:
采用標準 ESP-IDF 構建系統構建主核固件。
從核固件支持兩種構建模式:統一構建模式(單條命令同時構建主核和從核固件)和獨立構建模式(單獨構建從核固件)。
從核固件支持兩種存儲方式:嵌入主核固件中,或寫入閃存分區。
為裸機環境下的從核構建提供專用工具鏈配置。
系統組件
系統組件包含主核用于管理從核生命周期、處理從核系統事件的 API,目前支持的功能如下:
啟動和停止從核。
將從核固件加載到 HP RAM 或 RTC RAM。
從核異常事件通知主核,并調用可自定義的異常處理器。
將從核的 printf 消息路由至主核控制臺。
支持的ESP-IDF版本及SoC系統
目前 ESP-AMP 支持以下主核-從核配置組合,后續將持續擴展,支持更多 SoC 及配置方案。
SOC | 版本 | 主核 | 從核 |
ESP32-C5 | v5.5及以后版本 | HP核心 | LP核心 |
ESP32-C6 | v5.3.1及以后版本 | HP核心 | LP核心 |
ESP32-P4 | v5.3.1及以后版本 | HP核心 | HP核心 |
啟明云端推出的WT99P4C5-S1和 WTDKP4C5-S1開發板,搭載樂鑫科技ESP32-P4芯片和ESP32-C5芯片,均已適配 ESP-AMP 框架,為開發者提供穩定、高效的多核開發硬件平臺。無論是高性能計算還是低功耗協處理,這兩款開發板都能輕松勝任。

入門指南
如需快速上手,可按以下步驟構建并運行示例:
搭建 IDF 環境
gitclone--recursive https://github.com/espressif/esp-idf.gitcdesp-idfgit checkout v5.3.1# for ESP32-C6/ESP32-P4 or v5.5 for ESP32-C5./install.sh. export.sh
克隆本倉庫
gitclonehttps://github.com/espressif/esp-amp.git
開始構建示例
cdesp-amp/examples/idf.py set-target idf.py buildidf.py flash monitor
從核應用構建技巧
從核應用受資源限制且有特殊工具鏈需求,需專用構建配置。
已知限制
ESP-AMP 仍在積極開發中,目前存在以下限制:
ESP32-P4 相關限制:
從核類型:目前 ESP32-P4 僅支持 HP 核心作為從核,暫不支持 LP 核心。
缺少 XIP 和 PSRAM 支持:從核暫未啟用緩存,因此不支持從 PSRAM 訪問數據及從閃存執行片上執行(XIP)。
主核緩存容量受限:ESP32-P4 SoC 內置 768 KB 內部 L2MEM,緩存內存從中分配,用戶可通過 sdkconfig 中的 CONFIG_CACHE_L2_CACHE_SIZE 配置 128KB、256KB 或 512KB 緩存。但由于 256KB L2MEM 需預留用于從核固件,啟用 ESP-AMP 后,緩存最大容量將降至 256KB。
常見問題(FAQ)
為何不使用 OpenAMP?
OpenAMP 是一款廣泛用于多核心 SoC 構建 AMP 應用的開源框架,ESP-AMP 正是受其啟發開發。
未直接復用 OpenAMP 而選擇獨立開發的核心原因是,我們需要一款輕量級的 AMP 框架 ——OpenAMP 的豐富功能不僅增加了使用復雜度,還導致代碼體積臃腫,難以移植到資源受限的系統(尤其是 ESP32-C5 和 ESP32-C6 的 LP 核心,默認僅 16KB RTC RAM 作為內部 RAM)。
ESP-AMP 設計初衷即為輕量化,同時提供構建 AMP 應用所需的核心功能。
能否將 RTC RAM 用作共享內存?
不建議將 RTC RAM 用作共享內存,因為 HP 核心與 LP 核心之間無法保證操作的原子性,且 RTC RAM 不支持比較并交換(CAS)操作。
如何為從核開發外設驅動?
對于 HP 外設:ESP-IDF 的 hal 組件包含底層驅動,提供與操作系統無關、接口統一的 API,可在任意環境中操作不同 SoC 的 HP 外設寄存器。
對于 LP 外設:ESP-IDF 的 ulp 組件已實現即用型驅動。
-
ESP
+關注
關注
0文章
197瀏覽量
36577 -
開發板
+關注
關注
26文章
6321瀏覽量
119005 -
Amp
+關注
關注
0文章
100瀏覽量
48534 -
樂鑫科技
+關注
關注
1文章
107瀏覽量
5894
發布評論請先 登錄
啟明云端WTDKP4C5-S1開發板入選樂鑫2026“全國大學生嵌入式芯片與系統設計競賽”推薦開發板名單
不到百元的開發板,能跑AI局端人臉識別?實測樂鑫科技ESP32-P4C5全功能開發板方案!啟明云端樂鑫代理
誰說網關難做?用樂鑫科技ESP32-P4C5開發板,小白也能搞定專業級方案!啟明云端樂鑫代理
想快速打造共享咖啡機方案?樂鑫科技ESP32-P4+攝像頭方案開源了!燒錄演示已備好!
ESP32-P4 口袋開發板 啟明云端 WT9932P4-TINY開發板
樂鑫科技ESP-AMP框架詳解!兩款已支持的ESP32-P4C5開發板推薦!啟明云端樂鑫科技代理
評論