[bsp][esp32-s3] add ESP32-S3-DevKitM-1 support - #11844
cms19859230182-lang wants to merge 6 commits into
Conversation
UART0 reaches msh on the DevKitM-1. help, version, ps and free answer, and the tick keeps moving. GPIO and the other peripherals are not checked on the board.
|
👋 感谢您对 RT-Thread 的贡献!Thank you for your contribution to RT-Thread! 为确保代码符合 RT-Thread 的编码规范,请在你的仓库中执行以下步骤运行代码格式化工作流(如果格式化CI运行失败)。 🛠 操作步骤 | Steps
完成后,提交将自动更新至 如有问题欢迎联系我们,再次感谢您的贡献!💐 |
The format check wants these files aligned to the repository style.
The D6 workaround only rewrote packages/CH32V20x-SDK-for-RTT. riscv-none clones libraries/ch32v20x_sdk-latest, so Exit() still ran and dist/project was never created.
📌 Code Review Assignment🏷️ Tag: workflowReviewers: @Rbb666 @kurisaW @supperthomas Changed Files (Click to expand)
📊 Current Review Status (Last Updated: 2026-09-29 10:10 CST)
📝 Review Instructions
|
The BSP matrix only installed the RISC-V toolchain. Add xtensa-esp32s3-elf and point the manual all-BSP job at bsp/ESP/ESP32_S3.
pkgs --update-force names the shim FreeRTOS_Wrapper-latest and puts ESP-IDF in bsp/ESP/libraries. The SConscripts only looked under packages/FreeRTOS-Wrapper-latest and packages/ESP-IDF-latest.
@cms19859230182-lang 编译还有点问题,相关的软件包依赖没有添加 |
好的,稍等一下,我回去就开始改。 |
等一下,这个bug我改好了,你引用的是我在21:36的commit。不过我在commit完以后就意识到了问题,所以我在21:52的时候就又commit了一份上去,你康康 |


拉取/合并请求描述:(PR description)
为什么提交这份PR (why to submit this PR)
主仓还没有 ESP32-S3 的 BSP。这块板是 ESP32-S3-DevKitM-1,模组 ESP32-S3-MINI-1,Xtensa LX7。它不是 RISC-V,不能用 ESP32-C3 的工具链,也不能搬 C3 的中断接法。
你的解决方案是什么 (what is your solution)
新增
bsp/ESP/ESP32_S3和libcpu/xtensa/esp32s3。本镜像单核。UART0 在开发板标着 UART 的 USB 口上,TX GPIO43,RX GPIO44,CP210x,115200。默认打开 GPIO 和 UART0。builtin_imgs里是 ESP32-S3 的 bootloader 和分区表,不能换成 ESP32-C3 的。Flash 是 DIO、8MB、80MHz。应用在0x10000。pkgs --update拉官方RT-Thread-packages/esp-idf。这份包的 SConscript 只编 ESP32-C3,S3 的源文件由idf_components/SConscript从包里挑。工具链是 xtensa-esp32s3-elf GCC 12.2.0(esp-12.2.0_20230208)。共享改动:
libraries/drivers/Kconfig:SoC 收进 choice,默认仍是 ESP32-C3,新增 ESP32-S3 和 DevKitM-1。board.c:S3 的节拍中断只加 tick。向量里已经做过 enter/leave。启动时关掉两个核的 systimer stall,并只留 level-1。sdkconfig.h:S3 转去包含sdkconfig_s3.h。中断看门狗默认关掉。IDF 用自己的向量喂 TG1WDT,这份 BSP 换了向量。不关的话,启动大约 300 ms 后以
rst:0x8 (TG1WDT_SYS_RST)复位。GPIO、I2C、SPI、ADC、PWM、Wi-Fi、BLE、板载灯和片内 8MB PSRAM 都还没在板上测,README 里写的是待支持。
现有 ESP 的 CI 工具链是 riscv32-esp-elf,编不了这颗 Xtensa,所以没有把本 BSP 挂进
ALL_BSP_COMPILE.json。在 ESP32-S3-DevKitM-1 上用 xtensa-esp32s3-elf GCC 12.2.0 烧过默认镜像:
msh。help、version、ps、free有回应。version是 5.3.1。ps,left tick从0x08变到0x0a。free:total 76704,used 12192,available 64512。ps里 timer 和 main 的 error 列是EINTRPT。shell 仍有回应,节拍仍在走。请提供验证的bsp和config (provide the config and bsp)
BSP:
bsp/ESP/ESP32_S3.config: 默认打开 GPIO 和 UART0。I2C、SPI、ADC、PWM、Wi-Fi、BLE 关闭。
action:
当前拉取/合并请求的状态 Intent for your PR
必须选择一项 Choose one (Mandatory):
代码质量 Code Quality:
我在这个拉取/合并请求中已经考虑了 As part of this pull request, I've considered the following:
#if 0代码,不包含已经被注释了的代码 All redundant code is removed and cleaned up