Repository navigation
[bsp][esp32-s3] add ESP32-S3-DevKitM-1 support - #11844
cms19859230182-lang wants to merge 1 commit into
Conversation
|
👋 感谢您对 RT-Thread 的贡献!Thank you for your contribution to RT-Thread! 为确保代码符合 RT-Thread 的编码规范,请在你的仓库中执行以下步骤运行代码格式化工作流(如果格式化CI运行失败)。 🛠 操作步骤 | Steps
完成后,提交将自动更新至 如有问题欢迎联系我们,再次感谢您的贡献!💐 |
📌 Code Review Assignment🏷️ Tag: workflowReviewers: @Rbb666 @kurisaW @supperthomas Changed Files (Click to expand)
📊 Current Review Status (Last Updated: 2026-10-10 12:12 CST)
📝 Review Instructions
|
@cms19859230182-lang 编译还有点问题,相关的软件包依赖没有添加 |
好的,稍等一下,我回去就开始改。 |
等一下,这个bug我改好了,你引用的是我在21:36的commit。不过我在commit完以后就意识到了问题,所以我在21:52的时候就又commit了一份上去,你康康 |
3246e11 to
77223ae
Compare
Add a BSP for ESP32-S3-DevKitM-1 (ESP32-S3-MINI-1, Xtensa LX7, single core), the Xtensa context switch port in libcpu/xtensa/esp32s3, an ESP32-S3 choice in the shared ESP drivers, and CI build coverage with xtensa-esp32s3-elf GCC 12.2.0. Compatibility notes for the vendored ESP-IDF fork: - Declare bootloader_flash_wrap_set (SOC_CACHE_SUPPORT_WRAP) for both flash_qio_mode.c and flash_ops_esp32s3.c via include_compat shims. - Force-feed ATOMIC_VAR_INIT for newer toolchains. - Do not ship rtc_gpio_force_hold_all shim; the package already defines it (added with the C6 sources), so a local forwarder causes a multiple definition at link time. Tested on the board: msh, help, version, ps and free work on UART0 (TX GPIO43, RX GPIO44, 115200). The interrupt watchdog is disabled because the replacement vectors do not feed IDF's TG1 watchdog, which otherwise resets the chip about 300 ms after boot. Local CI-toolchain scons of bsp/ESP/ESP32_S3 succeeds (elf2image OK).
3520458 to
16ecc10
Compare


拉取/合并请求描述:(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从包里挑。共享改动:
libraries/drivers/Kconfig:SoC 收进 choice,默认仍是 ESP32-C3,新增 ESP32-S3。board.c:S3 的节拍中断只加 tick,向量里已经做过 enter/leave。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 里写的是待支持。
CI 新增 xtensa-esp32s3-elf GCC 12.2.0 工具链,本 BSP 已加入
ALL_BSP_COMPILE.json和bsp_buildings。在 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: CI 跑完后补上链接。
当前拉取/合并请求的状态 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