Skip to content

Conversation

@QianJiu05
Copy link
Contributor

原bsp设置的flash是128kb,可能会出问题,详见README_zh:在出厂时,STM32F103C8T6仅对前64KB进行了测试和认证,因此官方文档中仅标注为64KB。

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

[

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

该BSP原Flash设置为128KB,但是STM32F103C8T6实际Flash仅有64KB。

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

修改链接脚本、keil5 template文件、board.h文件为正确的值

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

  • BSP: bsp/stm32/stm32f103-blue-pill
  • .config:无

]

当前拉取/合并请求的状态 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
  • [] 已经使用formatting 等源码格式化工具确保格式符合RT-Thread代码规范 This PR complies with RT-Thread code specification
  • 如果是新增bsp, 已经添加ci检查到.github/workflows/bsp_buildings.yml 详细请参考链接BSP自查

原bsp设置的flash是128kb,可能会出问题,详见README_zh:在出厂时,STM32F103C8T6仅对前64KB进行了测试和认证,因此官方文档中仅标注为64KB。
@CLAassistant
Copy link

CLAassistant commented May 10, 2025

CLA assistant check
All committers have signed the CLA.

@github-actions github-actions bot added BSP: STM32 BSP related with ST/STM32 BSP labels May 10, 2025
@supperthomas
Copy link
Member

请问你这个在使用的时候,有实际遇到异常吗?

@QianJiu05
Copy link
Contributor Author

请问你这个在使用的时候,有实际遇到异常吗?

目前没有(因为没有烧录过超过70KB的程序)。官方datasheet确实是写的64KB,原bsp的FLASH是按照CBT6写的(包括keil模板),我这里做出了修改。超过64KB的Flash虽然理论上可以访问,但是生产时厂商是不会测试超出的部分的,可能会出问题。个人认为flash的设置应该与官方手册的64kb一致。

此外,请问failing check(Auto Review Assistant / assign-reviewers (pull_request_target)Failing after 4s)会不会影响merge呀,新人第一次pr,不知道怎么改,这个failing查了一下貌似和我的改动关系不大?

@supperthomas
Copy link
Member

有一些程序之前能放下的,现在放不下了

@supperthomas
Copy link
Member

/opt/arm-gnu-toolchain-13.2.Rel1-x86_64-arm-none-eabi/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/bin/ld: region `ROM' overflowed by 12332 bytes

这个如果改小了的话很多应用就不太能用了,建议可以提交一些常用的yml配置,方便大家使用,具体参考stm32f407-rt-spark

@supperthomas supperthomas requested a review from mysterywolf May 12, 2025 01:38
@QianJiu05
Copy link
Contributor Author

/opt/arm-gnu-toolchain-13.2.Rel1-x86_64-arm-none-eabi/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/bin/ld: region `ROM' overflowed by 12332 bytes

这个如果改小了的话很多应用就不太能用了,建议可以提交一些常用的yml配置,方便大家使用,具体参考stm32f407-rt-spark

请问使用在rtconfig.py中以if else进行链接脚本的控制的方案可以吗?

if FLASH_USE == 64:
        LFLAGS = DEVICE + ' -Wl,--gc-sections,-Map=rt-thread.map,-cref,-u,Reset_Handler -T board/linker_scripts/link_64k.lds'
    else:
        LFLAGS = DEVICE + ' -Wl,--gc-sections,-Map=rt-thread.map,-cref,-u,Reset_Handler -T board/linker_scripts/link.lds'

这样的话用户可以自行选择链接的是64kb还是128kb的脚本,缺点是需要多存一份link。

如果这个方案不可行,我再看看yml配置可以吗?或者双管齐下?

@supperthomas
Copy link
Member

/opt/arm-gnu-toolchain-13.2.Rel1-x86_64-arm-none-eabi/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/bin/ld: region `ROM' overflowed by 12332 bytes
这个如果改小了的话很多应用就不太能用了,建议可以提交一些常用的yml配置,方便大家使用,具体参考stm32f407-rt-spark

请问使用在rtconfig.py中以if else进行链接脚本的控制的方案可以吗?

if FLASH_USE == 64:
        LFLAGS = DEVICE + ' -Wl,--gc-sections,-Map=rt-thread.map,-cref,-u,Reset_Handler -T board/linker_scripts/link_64k.lds'
    else:
        LFLAGS = DEVICE + ' -Wl,--gc-sections,-Map=rt-thread.map,-cref,-u,Reset_Handler -T board/linker_scripts/link.lds'

这样的话用户可以自行选择链接的是64kb还是128kb的脚本,缺点是需要多存一份link。

如果这个方案不可行,我再看看yml配置可以吗?或者双管齐下?

这个完全适配实际上不是很好弄,还有gcc的,还有keil project templete里面的,你就先用128KB的吧,遇到问题,再用吧。用128KB有什么影响吗,或者真实遇到问题再复现看看?64KB,实际上跑不了多少东西。多一点,能做的事情更多一些。

@supperthomas
Copy link
Member

我觉得你多做一些yml配置给大家用起来,还是挺实用的。

@supperthomas
Copy link
Member

@QianJiu05
Copy link
Contributor Author

/opt/arm-gnu-toolchain-13.2.Rel1-x86_64-arm-none-eabi/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/bin/ld: region `ROM' overflowed by 12332 bytes
这个如果改小了的话很多应用就不太能用了,建议可以提交一些常用的yml配置,方便大家使用,具体参考stm32f407-rt-spark

请问使用在rtconfig.py中以if else进行链接脚本的控制的方案可以吗?

if FLASH_USE == 64:
        LFLAGS = DEVICE + ' -Wl,--gc-sections,-Map=rt-thread.map,-cref,-u,Reset_Handler -T board/linker_scripts/link_64k.lds'
    else:
        LFLAGS = DEVICE + ' -Wl,--gc-sections,-Map=rt-thread.map,-cref,-u,Reset_Handler -T board/linker_scripts/link.lds'

这样的话用户可以自行选择链接的是64kb还是128kb的脚本,缺点是需要多存一份link。
如果这个方案不可行,我再看看yml配置可以吗?或者双管齐下?

这个完全适配实际上不是很好弄,还有gcc的,还有keil project templete里面的,你就先用128KB的吧,遇到问题,再用吧。用128KB有什么影响吗,或者真实遇到问题再复现看看?64KB,实际上跑不了多少东西。多一点,能做的事情更多一些。

好的好的,那我看看yml配置~

@Rbb666 Rbb666 closed this May 12, 2025
@Rbb666 Rbb666 reopened this May 12, 2025
@github-actions
Copy link

📌 Code Review Assignment


📊 Current Review Status (Last Updated: 2025-05-12 02:41 UTC)


📝 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.

@Rbb666 Rbb666 self-requested a review May 12, 2025 02:42
@mysterywolf
Copy link
Member

你好 这个是故意改成128kb的,解锁高64kb

@mysterywolf
Copy link
Member

您可以在readme上加上一个提醒。但是配置还是按照128kb来。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

BSP: STM32 BSP related with ST/STM32 BSP

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants