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.

[参考译文] CC2652R:hal_mcu.h 中的 HAL_Enter_Critical_SECTION ()是否正确实现?

Guru**** 2589280 points


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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1372162/cc2652r-is-hal_enter_critical_section-in-hal_mcu-h-correctly-implemented

器件型号:CC2652R

工具与软件:

大家好!

"C:\ti\simplelink_cc13xx_cc26xx_sdk_7_40_00_77\source\ti\ble5stack_flash\hal\target\_common\hal_mcu.h" src
在第235-239行中定义了以下宏:

#define HAL_ENTER_CRITICAL_SECTION(x)  \
  do { (x) = !IntMasterEnable(); } while (0)

#define HAL_EXIT_CRITICAL_SECTION(x) \
  do { if (x) { (void) IntMasterEnable(); } } while (0)

它不应该是 IntMaster DIS 能够在 HAL_enter_critical_SECTION ()中执行吗?

此致、
沃尔夫冈

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

    您好、Wolfgang、

    感谢您的咨询。 我们想在 cs 期间禁用中断、所以您提到的内容似乎是正确的。 我可以在您提到的文件(相同的 SDK)中看到 IntMaster DIS 能够使用。

    BR、

    David。

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

    David、您好!

    我们似乎看到了不同的文件、我在我的"\ti\simplelink_cc13xx_cc26xx_sdk_7_40_00_77\source\ti\副本中找不到您用图片显示的行 ble5stack_flash \hal\common\target\_common\ src hal_mcu.h "。
    我有:

    ...对于 CC23X0、使用"Disable"(禁用)实现看起来可以。 但不适用于非 CC23xx (我们有 CC26xx)。

    但是、我在 同一目录中的"_hal_mcu.h"副本(请注意前导下划线)看起来像您的(第164-168行)、并按预期禁用。

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

    您好、Wolfgang、

    是的,道歉的困惑。 感谢您的报告。 我将向主管团队提出这一问题。

    您是否遇到过因此问题?

    BR、

    David。

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

    不、我不会因此遇到问题、因为我不使用它。 但如果我这样做的话、我当然会。 这就是我不使用它的原因。

    我们对关键部分使用我们自己的宏、在将这些宏移植到 CC2674R 时、我查看了 TI 的实现并注意到了 这一点。

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

    您好、Wolfgang、

    我懂了。 再次感谢您报告此情况。

    我会让大家在研发团队的修订版中随时关注。

    BR、

    David。