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.

[参考译文] RTOS/MSP430F5529:SWI_inc 不会使触发值递增至高于1

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/590802/rtos-msp430f5529-swi_inc-does-not-increment-trigger-above-1

器件型号:MSP430F5529

工具/软件:TI-RTOS

您好!

我在 CFG GUI 中定义了一个具有初始触发值为0的 Swi 对象。 这个 Swi 使用 Swi_inc 函数从一个时钟函数上下文中发布。 当我从 Swi 函数内调用 Swi_getTrigger ()函数时、无论 Swi 被布置的次数是多少(使用 Swi_inc)、我总是得到结果1。 此行为与 API 文档中 Swi_inc 的描述不一致。

如果有人能够帮助调查此问题、我将不胜感激。

非常感谢!

m

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

    您是否看到以下情况(按顺序)?

    Swi_inc
    Swi_inc
    SWI 运行并调用 Swi_getTrigger、返回1

    这应该返回2。

    或者您是否看到了这种情况
    Swi_inc
    SWI 运行并调用 Swi_getTrigger、返回1
    Swi_inc
    SWI 运行并调用 Swi_getTrigger、返回1

    没错。

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

    我想我看到第二个情况、因为每5秒从时钟函数调用一次 Swi_inc。

    您能解释一下这种行为是正确的原因吗?
    这是否有效地计算了当前处于"活动"状态的同一类型的 Swi 实例的数量? (当然、提供触发器最初设置为0)。

    非常感谢!

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

    Swi_post 是二进制函数。 你本来可以在 Hwi 中的循环中调用它5次、但你只能在 Hwi 结束后运行 Swi 一次(我知道...愚蠢的情况、但希望能够跨越这一点)。 当 Swi 运行时、它不知道它被布置了多少次。 这就是 Swi_inc 的用武之地。 如果 Hwi 调用了 Swi_inc 5次、当 Swi 运行并调用 Swi_getTrigger 时、它知道它被布置了5次并可以相应地执行(如果需要)。

    这是否说明了用例?

    Todd

x 出现错误。请重试或与管理员联系。