Skip to content

Conversation

@unicornx
Copy link
Contributor

K230 支持 6 个通用硬件定时器和 3 个 stc 定时器。本补丁仅实现了通用硬件定时器的驱动程序。

拉取/合并请求描述:(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自查

@github-actions github-actions bot added the BSP label May 30, 2025
@github-actions
Copy link

github-actions bot commented May 30, 2025

📌 Code Review Assignment

🏷️ Tag: bsp_k230

Path: bsp/k230
Reviewers: unicornx

Changed Files (Click to expand)
  • bsp/k230/.config
  • bsp/k230/board/Kconfig
  • bsp/k230/drivers/interdrv/hwtimer/SConscript
  • bsp/k230/drivers/interdrv/hwtimer/drv_timer.c
  • bsp/k230/drivers/interdrv/hwtimer/drv_timer.h
  • bsp/k230/drivers/utest/SConscript
  • bsp/k230/drivers/utest/test_timer.c

📊 Current Review Status (Last Updated: 2025-05-30 14:29 UTC)

  • unicornx Pending Review

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

@unicornx unicornx requested a review from Rbb666 May 30, 2025 02:37
# CONFIG_BSP_SDIO0_1V8 is not set
# CONFIG_BSP_USING_SDIO1 is not set
CONFIG_BSP_SD_MNT_DEVNAME="sd0p1"
# CONFIG_BSP_USING_TIMERS is not set
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

.config和rtconfig.h 没有特殊情况可以不用提交。

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

这是一个新增的配置项,所以更新一下应该更好吧。

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

这是注释

Copy link
Contributor Author

@unicornx unicornx May 30, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

这是注释

这次 pr 在 Kconfig 中增加一项菜单 BSP_USING_TIMERS(默认为 n),所以然后运行 scons --menuconfig 后 kconfiglib 会自动更新出来这个。所以这个修改是需要的。

@unicornx unicornx added the BSP: K230 BSP related with K230 label May 30, 2025
# CONFIG_BSP_SDIO0_1V8 is not set
# CONFIG_BSP_USING_SDIO1 is not set
CONFIG_BSP_SD_MNT_DEVNAME="sd0p1"
# CONFIG_BSP_USING_TIMERS is not set
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

这是注释

@supperthomas supperthomas requested a review from Copilot May 30, 2025 11:16
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR adds support for K230 hardware timers by implementing a driver for 6 general-purpose timers along with corresponding test cases and build configurations.

  • Added test case for timer driver under bsp/k230/drivers/utest.
  • Implemented driver and ISR routines in bsp/k230/drivers/interdrv/hwtimer.
  • Updated SConscript and board configuration (Kconfig and .config) to enable timer support.

Reviewed Changes

Copilot reviewed 7 out of 7 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
bsp/k230/drivers/utest/test_timer.c Introduces test cases for hardware timers with minor spelling errors in messages.
bsp/k230/drivers/utest/SConscript Adds dependency check for BSP_USING_TIMERS and includes the new test file.
bsp/k230/drivers/interdrv/hwtimer/drv_timer.h Defines register structures and driver interface for timers.
bsp/k230/drivers/interdrv/hwtimer/drv_timer.c Implements driver functions, timer registration and ISR with potential misassignment issues and missing return.
bsp/k230/drivers/interdrv/hwtimer/SConscript Provides build script for the hardware timer component.
bsp/k230/board/Kconfig Updates board configuration with options for enabling timers.
bsp/k230/.config Reflects changes in timer configuration.

struct rt_hwtimer_device *rt_timer = rt_container_of(dev, struct rt_hwtimer_device, parent);
struct k230_timer *kd_timer = rt_container_of(rt_timer, struct k230_timer, device);

LOG_I("---> [%s] timeout callback fucntion!\n", kd_timer->name);
Copy link

Copilot AI May 30, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Correct the typo in the log message: change "fucntion" to "function".

Suggested change
LOG_I("---> [%s] timeout callback fucntion!\n", kd_timer->name);
LOG_I("---> [%s] timeout callback function!\n", kd_timer->name);

Copilot uses AI. Check for mistakes.
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed

rt_hwtimerval_t timerval;
rt_hwtimer_mode_t mode;
rt_size_t tsize;
rt_uint32_t freq = 25000000; /* Frequency optionas: 12.5M 25M 50M 100M */
Copy link

Copilot AI May 30, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Correct the misspelling "optionas" in the comment to "options".

Suggested change
rt_uint32_t freq = 25000000; /* Frequency optionas: 12.5M 25M 50M 100M */
rt_uint32_t freq = 25000000; /* Frequency options: 12.5M 25M 50M 100M */

Copilot uses AI. Check for mistakes.
.device.parent.fops = &k230_timer_fops,

.name = "hwtimer4",
.id = 0,
Copy link

Copilot AI May 30, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Timer4 is assigned id 0, which conflicts with timer0. It is likely that timer4 should have a unique id (e.g., 4).

Suggested change
.id = 0,
.id = 4,

Copilot uses AI. Check for mistakes.
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed

.device.parent.fops = &k230_timer_fops,

.name = "hwtimer5",
.id = 0,
Copy link

Copilot AI May 30, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Timer5 is assigned id 0, causing a conflict. It is likely that timer5 should have a unique id (e.g., 5).

Suggested change
.id = 0,
.id = 5,

Copilot uses AI. Check for mistakes.
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed

timer_devices[i].name);
rt_hw_interrupt_umask(timer_devices[i].irq_num);
}
}
Copy link

Copilot AI May 30, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The function rt_hw_timer_init does not return a value on success. Consider adding 'return RT_EOK;' at the end.

Copilot uses AI. Check for mistakes.
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed

K230 support 6 general hardware timers and 3 stc timers.
This patch only implement drivers for general hw timers.

Signed-off-by: Chen Wang <unicorn_wang@outlook.com>
@Rbb666 Rbb666 merged commit 8525e08 into RT-Thread:master May 31, 2025
35 checks passed
@unicornx unicornx deleted the dev-hwtimer branch June 5, 2025 08:08
@Rbb666 Rbb666 mentioned this pull request Sep 18, 2025
11 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

BSP: K230 BSP related with K230 BSP

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants