[bsp/stm32] add STM32F103C6 support for stm32f103-blue-pill - #11850
avm1234567 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: bsp_stm32Reviewers: @Liang1795 @hamburger-os @wdfk-prog Changed Files (Click to expand)
🏷️ Tag: bsp_stm32f103-blue-pillReviewers: @Liang1795 Changed Files (Click to expand)
📊 Current Review Status (Last Updated: 2026-10-02 15:07 CST)
📝 Review Instructions
|
拉取/合并请求描述:(PR description)
[
为什么提交这份PR (why to submit this PR)
The
stm32f103-blue-pillBSP previously only supported the STM32F103C8 chip (64KB/128KB Flash, 20KB RAM).However, many Blue Pill development boards on the market come equipped with the lower-cost STM32F103C6 variant
(32KB Flash, 10KB RAM). This PR adds STM32F103C6 support to the Blue Pill BSP while maintaining 100% backward
compatibility for the default C8 variant.
你的解决方案是什么 (what is your solution)
RT_KLIBC_USING_LIBC_VSSCANFto optimize memory and prevent linking heavy double-precision float libraries.2. Dynamic Memory Boundary (
board/board.h):- Dynamically defines
STM32_FLASH_SIZE(32KB for C6 vs 128KB for C8) andSTM32_SRAM_SIZE(10KB for C6 vs20KB for C8), accurately bounding
HEAP_ENDat0x20002800for C6 to prevent runtime heap corruption.3. Peripheral Constraints (
board/Kconfig):- Guarded peripherals that do not physically exist on C6 (USART3, SPI2) and RTduino with
depends on !SOC_STM32F103C6. AddedBSP_USING_SPI1.4. Linker Script & Optimization (
board/linker_scripts/link.lds&rtconfig.py):- Updated GNU ld linker script with dynamic
_ROM_SIZEand_RAM_SIZEsymbols with default fallbacks.- In
rtconfig.py, conditionally pass--defsym=_ROM_SIZE=32k,--defsym=_RAM_SIZE=10kand-Osoptimizationfor C6 builds.
5. Documentation (
README.md&README_zh.md):- Added step-by-step instructions in English and Chinese on how to configure and build for STM32F103C6 using
menuconfig.请提供验证的bsp和config (provide the config and bsp)
bsp/stm32/stm32f103-blue-pillCONFIG_SOC_STM32F103C6=y
CONFIG_RT_USING_SMALL_MEM=y
CONFIG_RT_USING_SMALL_MEM_AS_HEAP=y
CONFIG_RT_KLIBC_USING_LIBC_VSSCANF=y
# CONFIG_RT_USING_DEBUG is not set
# CONFIG_RT_USING_EVENT is not set
# CONFIG_RT_USING_MAILBOX is not set
# CONFIG_RT_USING_MESSAGEQUEUE is not set
# CONFIG_RT_SERIAL_USING_DMA is not set
# CONFIG_FINSH_USING_DESCRIPTION is not set
# CONFIG_FINSH_USING_OPTION_COMPLETION is not set
CONFIG_FINSH_THREAD_STACK_SIZE=2048
]
当前拉取/合并请求的状态 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 https://clang.llvm.org/docs/ClangFormat.html 源码格式化工具确保格式符合RT-Thread代码规范
https://github.com/RT-Thread/rt-thread/blob/master/documentation/7.contribution/coding_style_cn.md This PR has been
formatted with clang-format and complies with RT-Thread code specification https://github.com/RT-Thread/rt-
thread/blob/master/documentation/7.contribution/coding_style_en.md
[ ] 如果是新增bsp, 已经添加ci检查到.github/ALL_BSP_COMPILE.json https://github.com/RT-Thread/rt-
thread/blob/master/.github/ALL_BSP_COMPILE.json 详细请参考链接BSP自查 https://www.rt-thread.org/document/site/#/rt-
thread-version/rt-thread-standard/development-guide/bsp-selfcheck/bsp_selfcheck