This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] ClockP-timerTickIsr 与代码注释 (Clock-AM243x) 中计时器列表更新的处理不一致 MCU-PLUS-SDK MCU-PLUS-SDK

Guru**** 2650625 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1590726/mcu-plus-sdk-am243x-inconsistent-handling-of-timer-list-update-in-clockp_timertickisr-vs-code-comment-mcu-plus-sdk-am243x

器件型号: AM243X - MCU-PLUS-SDK

说明

产品: MCU-PLUS-SDK-AM243x
文件: ti_sdk/source/kernel/nortos/dpl/common/ClockP_nortos.c
代码行: 66–72

摘要

代码注释与ClockP_timerTickIsr函数中的实际实现之间存在差异、有关何时应将计时器对象放回gClockCtrl.list

详细信息

相关代码:

// Commented logic (lines 66–72):
/*
 *  Put the clock object back in the list before calling the
 *  callback. The callback may call ClockP_stop(), so we don't
 *  want to put the clock object back in the list if it has been
 *  stopped.
 */
ClockP_addToList(obj);

当前实施的方案:
在代码中、调用回调之前将计时器添加回列表。
然而、评论本身含糊不清、似乎与典型的最佳做法相矛盾:
通常情况下,推迟将对象添加回列表,直到回调之后,这样ClockP_stop()可以考虑任何副作用(如),防止停止的计时器被重新添加。

问题

计时器对象是否应该放回到列表中 之后 调用回调,以正确处理回调中的潜在副作用(如回调调用)ClockP_stop()?
或者当前逻辑(在回调执行前添加到列表)是否有意、以及需要澄清的注释?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    嗨、Petr、

    是否要将计时器对象放回列表中 之后 调用回调,以正确处理回调中的潜在副作用(如回调调用)ClockP_stop()?
    或者当前逻辑(在回调执行前添加到列表)是否有意、以及需要说明的注释?

    我已通读了你的问题,并理解相同。

    为了理解电流实现、我们需要查看 ClockP_start 和 ClockP_stop 的定义方式。

    目前、您将看到在回调之前计时器已添加回列表。 这纯粹是因为 ClockP_STOP 的定义方式而有意为之。

    如果您在最新 SDK 中浏览 ClockP_stop 实现、就会发现它是为了处理列表中已有计时器的情况。

    注释后面的正确意图可以改写为:回调前插入、因为如果用户在回调中调用 ClockP_stop、它将删除计时器(因为它已在列表中)。

    希望这有所帮助。

    此致、
    Vaibhav

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢您的背景,响应让 Vaibhav Kumar 有意义 。