Skip to content

Conversation

@kurisaW
Copy link
Member

@kurisaW kurisaW commented Mar 19, 2025

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

[

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

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

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

meng-plus and others added 30 commits February 18, 2025 09:16
* [lwp]对检查killpg的signo参数的有效性
* [bsp][wch] move ch32v307 sdk to package

* [bsp][wch] move ch32v307 sdk to package

* [bsp][wch] use a fixed version

* [bsp][wch]fix: ch32v307v-r1 build

* [bsp][wch] add yd board to ci

* [bsp][wch] revert toolchain path
RT-Thread#10001)

Add recommanded script and extension for writing doxygen comments on vscode

Signed-off-by: 1078249029 <1078249029@qq.com>
This patch modifies the original linker script provided by NXP by
adding RT-Thread related constant tables to flash.

Signed-off-by: Yilin Sun <imi415@imi.moe>
Regular macro definitions according to [1].

Note: for variadic macros such as MSH_CMD_EXPORT, we can
not use normal @param command, otherwise doxygen will
report "@param is not found in the argument list of ...".
So I just write the parameters by manual.

Link: https://rt-thread.github.io/rt-thread/page_howto_macro.html [1]

Signed-off-by: Chen Wang <unicorn_wang@outlook.com>
Github CI doc_doxygen is very strict in checking the
build results, and will output failure even if there
are warnings.

In order to match CI's checks, local build scripts
are also checked more strictly to detect potential
errors and even warnings as early as possible.

Signed-off-by: Chen Wang <unicorn_wang@outlook.com>
Enable PORT and GPIO peripheral clocks and release resets for all
ports.

Signed-off-by: Yilin Sun <imi415@imi.moe>
Add LED blinking demo to align with other BSPs.

Signed-off-by: Yilin Sun <imi415@imi.moe>
MCXA156 series supports FPU and DSP, adding corresponding compiler
flags.

Signed-off-by: Yilin Sun <imi415@imi.moe>
MCXA156 does not support CMSE (Secure Extension). Remove it from Kconfig.
Minor: Fixed a typo in Kconfig which makes Kconfig fail on
case-sensitive operating system.

Signed-off-by: Yilin Sun <imi415@imi.moe>
MCXA153 does not support CMSE (Secure Extension). Remove it from Kconfig.

Minor: Fixed a typo in Kconfig which makes Kconfig fail on
case-sensitive operating system.

Minor: Fixed a Kconfig defined incorrect SOC name
(SOC_MCXN947 -> SOC_MCXA156)

Signed-off-by: Yilin Sun <imi415@imi.moe>
[Problem Description]
When assigning name to rt_object, strncpy() uses size equal to RT_NAME_MAX,
which causes missing null-terminator and overflows into adjacent 'type' field.
This corruption leads to unexpected system behavior.

[Problem Analysis]
The rt_object structure defines:
| char name[RT_NAME_MAX] | -> buffer
| rt_uint8_t type        | -> adjacent field

Original code calculates size as:
size = end - first + 1;
if (size > RT_NAME_MAX) size = RT_NAME_MAX;

When size equals RT_NAME_MAX, strncpy() will copy exactly RT_NAME_MAX bytes
without adding terminating '\0', causing two issues:
1. name buffer is not null-terminated
2. The implicit null-byte writes beyond name[] into type field

[Solution]
Change boundary check from:
if (size > RT_NAME_MAX) size = RT_NAME_MAX;
to:
if (size >= RT_NAME_MAX) size = RT_NAME_MAX - 1;

This ensures:
1. Always leaves space for null-terminator
2. Prevents overflow into type field
3. Maintains maximum valid name length (RT_NAME_MAX-1 + '\0')

Signed-off-by: Liu Gui <kenneth.liu@sophgo.com>
…d#10013)

- added tools and dist_handle function

Signed-off-by: Fan YANG <fan.yang@hpmicro.com>
This patch:
* Enables SPI support
* Adds RW001 driver example
* Increases heap size to 32kB.

Signed-off-by: Yilin Sun <imi415@imi.moe>
Previously, you had to enter the documentation directory
before executing the run.sh script, which was not very
convenient during development, especially when you needed
to execute other commands in the source code root directory
at the same time, such as git commands.

Now you can directly run script in the source code root
directory as below:

```shell
$ cd $RTT
$ ./documentation/run.sh
```

No need to switch the working path any more after entering
the source code root directory.

Signed-off-by: Chen Wang <unicorn_wang@outlook.com>
Adjust the paragraph format and correct some inaccurate statements.

Signed-off-by: Chen Wang <unicorn_wang@outlook.com>
…uncation

[Problem Description]
1. When enabling RT_USING_MODULE=y, compilation warnings occur:
   dlelf.c:386:27: warning: cast from pointer to integer of different size
   dlelf.c:398:25: warning: cast from pointer to integer of different size
   dlelf.c:408:24: warning: cast from pointer to integer of different size

2. On RV64 architectures (e.g. Sophgo SG2042 with RISC-V Sv39 and 40-bit physical addressing),
   dlsym may fail when accessing addresses beyond 32-bit range.

[Root Cause]
In dlmodule_load_relocated_object() and dlmodule_symbol_find(),
pointer is cast to rt_uint32_t which truncates:
| rt_ubase_t rodata_addr = (rt_uint32_t)ptr;
This causes:
- Warnings on 64-bit systems (pointer width > 32-bit)
- Actual address truncation on RV64 when physical address exceeds 32-bit

[Solution]
Replace rt_uint32_t with architecture-adaptive rt_ubase_t:
| rt_ubase_t rodata_addr = (rt_ubase_t)ptr;
The rt_ubase_t is defined in include/rttypes.h as:
| #ifdef ARCH_CPU_64BIT
|   typedef rt_uint64_t rt_ubase_t;
| #else
|   typedef rt_uint32_t rt_ubase_t;
| #endif
This ensures correct width casting for both 32/64-bit architectures.

Signed-off-by: Liu Gui <kenneth.liu@sophgo.com>
description: Using the vector instruction set to trigger
an illegal instruction exception when ARCH_SISCV_VECTOR=y.

analysis: When initializing the thread stack,
the rt_cw_stack_init function did not enable VS for SSTATUS.

Solution: When ARCH_SISCV_VECTOR=y,
increment the initial value of sstatus by 0x600(SSTATUS_VS).

Signed-off-by: Liu Gui <kenneth.liu@sophgo.com>
unicornx and others added 24 commits March 19, 2025 11:04
The original directory structure was too flat and
inconvenient to view.

The directory is now reorganized according to the
first-level chapters, and some sub-chapters are
moved to the second-level directory.

Note: documentation/env is not moved to
documentation/4.tool because there are too many
external places that reference this path,
especially in bsp, so this directory path remains
as it is.

Signed-off-by: Chen Wang <unicorn_wang@outlook.com>
Signed-off-by: 1078249029 <1078249029@qq.com>
Organize the document content of the "Kerenl Basics" section.
This PR does not make substantial changes to the text content,
but only makes some optimizations and adjustments to the
document formatting, including:

- Enclose the function name and variable name in "`", so that
  the HTML rendering will use different fonts to distinguish
  them from the text part.

- Add blank lines between paragraphs, otherwise the HTML
  rendering will merge the paragraphs without blank lines
  into one paragraph.

- Use "@ref" to reference the page of the corresponding
  chapter, such as the reference to page_thread_management
  at the end of the "Thread Scheduling" chapter.

- For tables in markdown, try to align the columns in the
  text to beautify the reading experience.

Signed-off-by: Chen Wang <unicorn_wang@outlook.com>
Added comments for data structure and rt_audio_ops in dev_audio.h.
Enriched comments for macro group. Moved and renamed folder audio.

Signed-off-by: 1078249029 <1078249029@qq.com>
Doxygen examples are grouped on different pages so that you can
easily link to pages of related types in the documentation.
For example, macro examples have their own page, and function
examples have their own page, which correspond to their own code
examples, such as "macro.h" or "function.h".

Signed-off-by: Chen Wang <unicorn_wang@outlook.com>
- Add description on how to group macros.
- Add description for structs on how to write comments
  for members when the name of member is too.
- Use @ref to link group instead of the html filenames.

Signed-off-by: Chen Wang <unicorn_wang@outlook.com>
Signed-off-by: 1078249029 <1078249029@qq.com>
Move the introduction of function parameters in markdown to
source code comments, because this part of the content is
completely repeated. We only need to keep and maintain the
comments in the code. The detailed explanation of the API
in markdown can directly refer to the comments in the code.

Try not to directly copy the definition of the structure
in the markdown document, because this part of the content
may change with the upgrade of the code. Therefore, when
the structure definition is involved in markdown, try to
indicate that it is just a code snippet. The specific
definition is still directly quoted from the source code
and the source code comments.

It is very convenient to quote structures and functions
in markdown. Just use "`" to enclose the structure name
or function name, and the generated html is a link to
its definition.

According to this principle, this patch only modifies
the documents and code comments of the kernel object model.
Other modules will be modified one by one in separate
patches later.

Signed-off-by: Chen Wang <unicorn_wang@outlook.com>
Fixes: 94afe6a ("doxygen: improve howto")
Signed-off-by: Chen Wang <unicorn_wang@outlook.com>
Signed-off-by: 1078249029 <1078249029@qq.com>
* [github/action] 添加scons显示编译时间的命令

* [bsp/pico] 删除ci 耗时的config,在F412中已验证

* [bsp/f412] 这个编译需要3分钟,不合理,先从ci中删除
If a node request a new node or it's parent node. the  request's node will probe a double time.
So we check the device object of node in ofw probe entry and ofw probe child exit.
@kurisaW kurisaW closed this Mar 19, 2025
@kurisaW kurisaW reopened this Mar 19, 2025
@Rbb666 Rbb666 changed the base branch from master to v5.2.0-beta March 19, 2025 03:38
@Rbb666 Rbb666 requested a review from Cathy-lulu as a code owner March 19, 2025 03:38
@kurisaW kurisaW closed this Mar 19, 2025
@kurisaW kurisaW deleted the version-format branch May 11, 2025 00:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

BSP: AT32 BSP related with AT32 BSP: GD32 BSP related with GD32 BSP: NXP Code related with NXP BSP: Renesas BSP related with Renesas BSP: STM32 BSP related with ST/STM32 BSP: WCH BSP related with WCH BSP

Projects

None yet

Development

Successfully merging this pull request may close these issues.