Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

component:mm: improve sconscript #9028

Merged
merged 1 commit into from
Jun 5, 2024

Conversation

unicornx
Copy link
Contributor

@unicornx unicornx commented Jun 4, 2024

改进 components/mm/SConscript

改进理由:
components/mm/ 目录下不存在下一级目录,不需要再进入下一级目录处理 SConscript 文件

当前拉取/合并请求的状态 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

There is no next-level directory under the components/mm/
directory. Do not need to enter the next-level directory
to process the SConscript file.

Signed-off-by: Chen Wang <unicorn_wang@outlook.com>
@BernardXiong
Copy link
Member

谢谢。这样修改是正确的,更加精简、高效。好像有反馈milk-v duo下一些build有些乱,请问是和这个SConscript脚本相关吗?

@unicornx
Copy link
Contributor Author

unicornx commented Jun 4, 2024

谢谢。这样修改是正确的,更加精简、高效。好像有反馈milk-v duo下一些build有些乱,请问是和这个SConscript脚本相关吗?

应该没有直接关系,这个 SConscript 也就是多了些冗余的操作,而且mm 模块也不只是影响 duo。

duo 的 build 我倒是也在看,目前发现 duo 上 soc 中 riscv 小核和大核的工程差别比较大,build 的相关脚本也不统一,不知道是历史原因还是什么原因,我现在想法是想尽量统一起来,不知道您这有没有什么建议。

另外您说的 ”反馈milk-v duo下一些build有些乱“,具体是指什么?

目前还发现一些奇怪的问题,譬如 https://github.com/RT-Thread/rt-thread/issues/8943,听 @flyingcys 说小核上就ok,大核会 crash,这也很奇怪,应该是和工程的构建有关。

@BernardXiong
Copy link
Member

BernardXiong commented Jun 5, 2024

谢谢。这样修改是正确的,更加精简、高效。好像有反馈milk-v duo下一些build有些乱,请问是和这个SConscript脚本相关吗?

应该没有直接关系,这个 SConscript 也就是多了些冗余的操作,而且mm 模块也不只是影响 duo。

duo 的 build 我倒是也在看,目前发现 duo 上 soc 中 riscv 小核和大核的工程差别比较大,build 的相关脚本也不统一,不知道是历史原因还是什么原因,我现在想法是想尽量统一起来,不知道您这有没有什么建议。

另外您说的 ”反馈milk-v duo下一些build有些乱“,具体是指什么?

目前还发现一些奇怪的问题,譬如 https://github.com/RT-Thread/rt-thread/issues/8943,听 @flyingcys 说小核上就ok,大核会 crash,这也很奇怪,应该是和工程的构建有关。

主要是 @flyingcys 反馈的,具体的我还未知。中间试图搭建一套milk-v duo的环境,后来发现是需要基于玄铁的gcc工具链,而不能用通用的工具链,后来就作罢了。小核和大核差异大,应该和milk-v duo本身用的芯片架构相关,具体要看看芯片的情况了。在issue上,我发了份建议出来 #9034 ,希望把milk-v duo bsp加入到ci-build中。

关于risc-v部分,我还是比较反感需要用自己的一套工具链的,每家risc-v芯片、IP可以有扩展,但是是否可以以比较好的形式来做到(后端外挂?指令库?)。或者说,对于最基本的,标准的部分,大家是否都可以遵循,避免过于碎片化了

@BernardXiong BernardXiong merged commit f0af6ef into RT-Thread:master Jun 5, 2024
47 checks passed
@unicornx
Copy link
Contributor Author

unicornx commented Jun 5, 2024

谢谢。这样修改是正确的,更加精简、高效。好像有反馈milk-v duo下一些build有些乱,请问是和这个SConscript脚本相关吗?

应该没有直接关系,这个 SConscript 也就是多了些冗余的操作,而且mm 模块也不只是影响 duo。
duo 的 build 我倒是也在看,目前发现 duo 上 soc 中 riscv 小核和大核的工程差别比较大,build 的相关脚本也不统一,不知道是历史原因还是什么原因,我现在想法是想尽量统一起来,不知道您这有没有什么建议。
另外您说的 ”反馈milk-v duo下一些build有些乱“,具体是指什么?
目前还发现一些奇怪的问题,譬如 https://github.com/RT-Thread/rt-thread/issues/8943,听 @flyingcys 说小核上就ok,大核会 crash,这也很奇怪,应该是和工程的构建有关。

主要是 @flyingcys 反馈的,具体的我还未知。中间试图搭建一套milk-v duo的环境,后来发现是需要基于玄铁的gcc工具链,而不能用通用的工具链,后来就作罢了。小核和大核差异大,应该和milk-v duo本身用的芯片架构相关,具体要看看芯片的情况了。在issue上,我发了份建议出来 #9034 ,希望把milk-v duo bsp加入到ci-build中。

关于risc-v部分,我还是比较反感需要用自己的一套工具链的,每家risc-v芯片、IP可以有扩展,但是是否可以以比较好的形式来做到(后端外挂?指令库?)。或者说,对于最基本的,标准的部分,大家是否都可以遵循,避免过于碎片化了

小核和大核差异大,应该和milk-v duo本身用的芯片架构相关

据我了解,duo 系列芯片上使用的 cv1800b/sg200x 芯片上的大小核都是用的 C906,除了主频不一样,分别是850 / 500
超频是 1G / 750,中断号有点区别。然后都有MMU,dcache的差别是64KB / 32KB 然后大核有vector单元,小核没有。就只有这些差别而已。其他完全一样。包括PLIC/CLINT这些寄存器,都是一样。

所以我理解应该有可能将大小核的 build 脚本尽量统一起来。

至于工具链部分,的确比较乱,rtt 这里用的是 xuantie 的 newlib gcc,sophgo 那边提供的是 elf 的 gcc。我看 rtt 对 smart 又要求是 musl 的 gcc。
我不清楚像其他譬如 d1 这些产品用的是啥,其实大家都是 c906 的 core,为啥不能尽量统一。没法用主线的 gcc 这个可能可以理解,和平头哥的实现,譬如 vector 标准不统一有关吧?

@unicornx unicornx mentioned this pull request Jun 9, 2024
@unicornx unicornx deleted the dev-mm-sconscript branch June 13, 2024 07:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants