FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

Bsp/gd32h77d peripheral series by CYFS3 · Pull Request #11829 · RT-Thread/rt-thread · GitHub

Bsp/gd32h77d peripheral series - #11829

Open
CYFS3 wants to merge 19 commits into
RT-Thread:masterfrom
CYFS3:bsp/gd32h77d-peripheral-series
Open

CYFS3 wants to merge 19 commits into
RT-Thread:masterfrom
CYFS3:bsp/gd32h77d-peripheral-series

Conversation

CYFS3 commented Sep 23, 2026

Copy link
Copy Markdown
Contributor

拉取/合并请求描述:(PR description)

[

为什么提交这份PR (why to submit this PR)

你的解决方案是什么 (what is your solution)

需要合并
RT-Thread-packages/at_device#227
RT-Thread-packages/gd32-arm-cmsis#8
RT-Thread-packages/gd32-arm-series#13

请提供验证的bsp和config (provide the config and bsp)

  • BSP:
  • .config:
  • action:

]

当前拉取/合并请求的状态 Intent for your PR

必须选择一项 Choose one (Mandatory):

  • 本拉取/合并请求是一个草稿版本 This PR is for a code-review and is intended to get feedback
  • 本拉取/合并请求是一个成熟版本 This PR is mature, and ready to be integrated into the repo

代码质量 Code Quality:

我在这个拉取/合并请求中已经考虑了 As part of this pull request, I've considered the following:

  • 已经仔细查看过代码改动的对比 Already check the difference between PR and old code
  • 代码风格正确,包括缩进空格,命名及其他风格 Style guide is adhered to, including spacing, naming and other styles
  • 没有垃圾代码,代码尽量精简,不包含#if 0代码,不包含已经被注释了的代码 All redundant code is removed and cleaned up
  • 所有变更均有原因及合理的,并且不会影响到其他软件组件代码或BSP All modifications are justified and not affect other components or BSP
  • 对难懂代码均提供对应的注释 I've commented appropriately where code is tricky
  • 代码是高质量的 Code in this PR is of high quality
  • 已经使用clang-format 源码格式化工具确保格式符合RT-Thread代码规范 This PR has been formatted with clang-format and complies with RT-Thread code specification
  • 如果是新增bsp, 已经添加ci检查到.github/ALL_BSP_COMPILE.json 详细请参考链接BSP自查

Use SOC_SERIES_GD32H77x_H78X with the dedicated CMSIS and peripheral library packages. Add startup, linker scripts, toolchain templates and board configuration.

Keep the default configuration limited to UART1 and PIN. Select application sources explicitly and provide an Applications menu for optional examples. The minimal firmware was downloaded and booted with the UART1 console at 115200 baud.
Add the ENET1 RMII adapter under libraries/gd32_drivers and select it with SOC_SERIES_GD32H77x_H78X and BSP_USING_ETH. Let the peripheral package select manufacturer sources.

The PHY and e0 device were detected on GinoPi. Link-up and network traffic still require a connected network.
Add the USBHS0 device and USBHS1 host adapters. Gate the CDC heartbeat with an independent application option, disabled by default.

USB CDC enumeration and repeated device-to-PC heartbeat data were verified on GinoPi. USB host transfers still require an attached device.
Add clock-derived refresh, startup delay, readiness reporting and SDRAM verification commands. Keep the heap test optional and require memheap automatic binding so its allocations can use external SDRAM.

Validated eight passes over a 1 MiB buffer and a 2 MiB allocation from the external heap on GinoPi.
Use the H77x/H78x I2C interface and expose bus pin and alternate-function settings. Keep I2C disabled in the minimal configuration.

Verified I2C1 device registration. Camera and touch support use the same controller interface on their respective buses.

Guard the new-controller receive path for F5/H7/H77x and preserve the legacy transfer block. Single-file compilation passed for GD32F4 receive modes A/B and GD32H7/H77x; the original GD32F4 CI errors were reproduced before the fix.
Select the H77x/H78x SPI interface and expose SPI3 pin settings. Keep SPI disabled in the minimal configuration.

Verified SPI3 device registration; external loopback requires the corresponding pin connection.
Add PWM1, PWM2 and PWM30 support with an optional dual-output verification command. Keep timer source selection in the peripheral package and build the example only when selected.

Verified PWM2/PWM30 start and stop commands. Output frequency and duty cycle still require waveform measurement.
Add SDIO1 pin configuration, card detection and filesystem integration. Build filesystem benchmarks only through their application option.

Verified SD card detection, mounting and a 1 MiB temporary-file write/read comparison. Keep SDIO and DFS disabled by default.
Add timed oscillator startup, retained calendar state and synchronized alarm writes. Make the one-shot alarm example independently selectable.

Verified three-second Alarm0 and Alarm1 triggers on GinoPi. Keep RTC disabled by default.
Use the H7 watchdog oscillator setup for SOC_SERIES_GD32H77x_H78X. Keep the watchdog disabled by default.

Verified continued execution while feeding the watchdog and automatic reset after feeding stopped.
Place module registration under board/ports and add an independently selectable MQTT example. Handle MQTT timeouts, publishing and shutdown, and preserve ping targets when the AT module omits an address.

Verified UART4 AT communication and MAC queries. Wi-Fi association to the default hotspot failed, so TCP and MQTT traffic remain unverified. Keep the module and example disabled by default.
Add mailbox allocation, nominal and data timing, frame validation, interrupt handling and error recovery. Keep CAN disabled by default.

Verified 100 internal loopback frames for both classic CAN and CAN FD, including standard/extended identifiers, varied payload lengths and BRS. External bus operation remains to be tested.
Add the OSPI adapter and GD25Q64E flash integration. Protect MDMA cache maintenance from interrupts and require whole cache lines for DMA buffers; use polling for unaligned transfers. Let the peripheral package select OSPI, OSPIM and MDMA sources.

Verified 1 MiB filesystem write/read comparisons and 70 buffer-boundary cases with guard bytes. MDMA was exercised for reads; page programming uses polling. Keep OSPI disabled by default.
Add the LCD adapter, SDRAM MPU policy and frame-boundary reloads. Keep display manufacturer source selection in the peripheral package and LCD disabled by default.

Verified LCD initialization and display-buffer updates through the LVGL camera preview; visual quality still requires inspection.
Add the board adapter for the GT911 package. Release the interrupt pin after address selection and wait for valid configuration after reset instead of reporting zero resolution.

Verified product ID 911, 720x720 resolution and five-point capability. Physical touch interaction remains to be tested.
Add DMA and frame-completion handling, error precedence and capture restart. Keep camera adaptation under board/ports and expose the LVGL preview as an independent application option.

Verified the sensor identity, QVGA RGB565 capture and preview start/stop, with no dropped frames or capture errors in the test run. Keep the camera disabled by default.
Add the camera rendering and IPA display pipeline with matching GCC and MDK DTCM heap layouts. Place LVGL adaptation and configuration under board/ports, selected by the LVGL package option.

Verified camera preview rendering and buffer updates on GinoPi. Keep LVGL disabled by default.
Add the optional board console and backend for storage, CAN, MQTT, PWM, SPI, I2C and camera commands. Put the option under Applications and select the preview dependency explicitly. Require an LVGL thread stack of at least 8192 bytes for this demo.

Verified demo startup and camera preview start/stop without the previous stack overflow; measured peak LVGL stack use was 71%. Keep demonstrations disabled in the default UART1/PIN configuration.
Register gd32h77d-ginopi in the Arm BSP CI matrix and provide 33 attach configurations for peripherals, packages and optional applications. Each configuration extends the minimal UART1/PIN default. Enable memheap automatic binding for the SDRAM heap test and use an 8192-byte LVGL stack for the board demo.

All 33 configurations were compiled with GCC 13.3 during hardware validation; affected configurations were retested after fixes. These configurations require the matching GD32H77x_78x CMSIS/series packages and GD32VW553 at_device support.

Copy link
Copy Markdown

👋 感谢您对 RT-Thread 的贡献!Thank you for your contribution to RT-Thread!

为确保代码符合 RT-Thread 的编码规范,请在你的仓库中执行以下步骤运行代码格式化工作流(如果格式化CI运行失败)。
To ensure your code complies with RT-Thread's coding style, please run the code formatting workflow by following the steps below (If the formatting of CI fails to run).


🛠 操作步骤 | Steps

  1. 前往 Actions 页面 | Go to the Actions page
    点击进入工作流 → | Click to open workflow →

  2. 点击 Run workflow | Click Run workflow

  • Use workflow from 保持默认分支(通常为 master)
    Keep the default branch (usually master) in Use workflow from
  • 在 branch 输入框填写 PR 分支 bsp/gd32h77d-peripheral-series
    Enter PR branch bsp/gd32h77d-peripheral-series in the branch field
  • 设置需排除的文件/目录(目录请以"/"结尾)
    Set files/directories to exclude (directories should end with "/")
  1. 等待工作流完成 | Wait for the workflow to complete
    格式化后的代码将作为独立提交推送至你的分支。
    The formatting changes will be pushed to your branch as a separate commit.

完成后,提交将自动更新至 bsp/gd32h77d-peripheral-series 分支,关联的 Pull Request 也会同步更新。
Once completed, commits will be pushed to the bsp/gd32h77d-peripheral-series branch automatically, and the related Pull Request will be updated.

如有问题欢迎联系我们,再次感谢您的贡献!💐
If you have any questions, feel free to reach out. Thanks again for your contribution!

github-actions Bot commented Sep 23, 2026
edited
Loading

Copy link
Copy Markdown

📌 Code Review Assignment

🏷️ Tag: workflow

Reviewers: @Rbb666 @kurisaW @supperthomas

Changed Files (Click to expand)
  • .github/ALL_BSP_COMPILE.json

📊 Current Review Status (Last Updated: 2026-09-23 21:09 CST)


📝 Review Instructions

  1. 维护者可以通过单击此处来刷新审查状态: 🔄 刷新状态
    Maintainers can refresh the review status by clicking here: 🔄 Refresh Status

  2. 确认审核通过后评论 LGTM/lgtm
    Comment LGTM/lgtm after confirming approval

  3. PR合并前需至少一位维护者确认
    PR must be confirmed by at least one maintainer before merging

ℹ️ 刷新CI状态操作需要具备仓库写入权限。
ℹ️ Refresh CI status operation requires repository Write permission.

github-actions Bot commented Sep 23, 2026
edited
Loading

Copy link
Copy Markdown

CYFS3 closed this Sep 23, 2026
CYFS3 reopened this Sep 23, 2026
CYFS3 force-pushed the bsp/gd32h77d-peripheral-series branch from 6157c82 to 247c862 Compare September 23, 2026 09:33
Rbb666 closed this Sep 23, 2026
Rbb666 reopened this Sep 23, 2026

This branch has not been deployed

No deployments
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants


Back | FazBrowse Home | New Git URL