Conversation
[cpp_check.py 80 INFO] bsp/w60x/drivers/drv_rtc.c:58:11: error: Syntax Error: AST broken, binary operator '&=' doesn't have two operands. [internalAstError] [cpp_check.py 80 INFO] libcpu/arm/s3c24x0/rtc.c:34:12: error: Expression 'RTCCON|=RTCCON|=0x01' depends on order of evaluation of side effects [unknownEvaluationOrder]
|
👋 感谢您对 RT-Thread 的贡献!Thank you for your contribution to RT-Thread! 为确保代码符合 RT-Thread 的编码规范,请在你的仓库中执行以下步骤运行代码格式化工作流(如果格式化CI运行失败)。 🛠 操作步骤 | Steps
完成后,提交将自动更新至 如有问题欢迎联系我们,再次感谢您的贡献!💐 |
There was a problem hiding this comment.
Pull Request Overview
This PR fixes cppcheck static analysis errors by correcting syntax issues in RTC-related code across two files.
- Fixes a double assignment operator issue in s3c24x0 RTC code that was causing AST evaluation errors
- Replaces hardcoded bit masks with BIT() macro for better readability and consistency in w60x RTC driver
Reviewed Changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
| libcpu/arm/s3c24x0/rtc.c | Removes incorrect double assignment and replaces with direct macro call |
| bsp/w60x/drivers/drv_rtc.c | Replaces hardcoded bit shift operations with BIT() macro |
|
|
||
| /* enable access to RTC registers */ | ||
| RTCCON |= RTC_ENABLE; | ||
| RTC_ENABLE; |
There was a problem hiding this comment.
Bug/错误: The line RTC_ENABLE; appears to be a standalone macro call that likely has no effect. Based on the original code RTCCON |= RTC_ENABLE;, this should probably be RTCCON |= RTC_ENABLE; to actually enable RTC access by setting the enable bit in the control register. / 单独的宏调用 RTC_ENABLE; 可能没有任何效果。根据原始代码 RTCCON |= RTC_ENABLE;,这应该是 RTCCON |= RTC_ENABLE; 来通过设置控制寄存器中的使能位来实际启用RTC访问。
There was a problem hiding this comment.
Hi, the AI is not smart enough, because
#define RTC_ENABLE RTCCON |= 0x01; /*RTC read and write enable */
|
|
||
| /* enable access to RTC registers */ | ||
| RTCCON |= RTC_ENABLE; | ||
| RTC_ENABLE; |
There was a problem hiding this comment.
有区别,这个代码有问题,正确用法也有参考
| sec = BIN2BCD(ti->tm_sec); | ||
|
|
||
| /* enable access to RTC registers */ | ||
| RTC_ENABLE |
|
标题以后注意下 |
? 注意啥? |




[cpp_check.py 80 INFO] bsp/w60x/drivers/drv_rtc.c:58:11: error: Syntax Error: AST broken, binary operator '&=' doesn't have two operands. [internalAstError]
[cpp_check.py 80 INFO] libcpu/arm/s3c24x0/rtc.c:34:12: error: Expression 'RTCCON|=RTCCON|=0x01' depends on order of evaluation of side effects [unknownEvaluationOrder]
拉取/合并请求描述:(PR description)
[
为什么提交这份PR (why to submit this PR)
你的解决方案是什么 (what is your solution)
请提供验证的bsp和config (provide the config and bsp)
]
当前拉取/合并请求的状态 Intent for your PR
必须选择一项 Choose one (Mandatory):
代码质量 Code Quality:
我在这个拉取/合并请求中已经考虑了 As part of this pull request, I've considered the following:
#if 0代码,不包含已经被注释了的代码 All redundant code is removed and cleaned up