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.

[参考译文] MSP430FR5994:硬件乘法器线程安全问题

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1173601/msp430fr5994-hardware-multiplier-thread-security-issue

器件型号:MSP430FR5994

大家好、

 将硬件乘法器与 RTOS 配合使用时是否存在任何线程安全问题?

谢谢、此致、

耶鲁李

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

    您好、Yale、

    您能帮助我了解您问题中的"线程安全性"是什么意思吗? MSPM0有几个可能相关的特性:

    • M0有两种执行模式:处理程序和线程。 处理程序对系统具有完全访问权限。 可以限制线程。  
    • 存储器保护单元可以将对存储器区域的访问限制为特权代码。
    • MSPM0具有单周期硬件乘法

    希望得到帮助。 我想详细了解您的问题。

    此致、

    Evan

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

    您好 Evan、

    感谢您的回复。

    这个客户正在使用 RTOS、所以上面提到的线程是指任务、软件中断和硬件中断等线程模块 我不熟悉 RTOS。 它似乎与操作系统软件的某些稳定性问题有关。

    客户使用的是 FR5994、而不是 M0。

    谢谢、此致、

    耶鲁李

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="514648" URL"~/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1173601/msp430fr5994-hardware-multiplier-thread-security-issue/4418158 #4418158"]并且客户使用的是 FR5994、而不是 M0。

    好的、感谢您指出这一点。 我没那样。

    我不确定客户想要知道什么。 您能否询问客户尝试保护的安全/威胁模型?

    此致、

    Evan

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

    RTOS 通常不会保存乘法器状态、这意味着如果多个任务使用乘法器、它们必须通过防止任务切换来保护这些操作。 通常要做的是在操作期间禁用中断。 这可能很复杂、因为有时编译器会在不可见显式乘法运算符的情况下使用它。

    我查找了 GCC 的-mhwmmmmult 选项的说明、并找到:

      "硬件乘法例程在运行时禁用中断
        并在它们完成时恢复之前的中断状态。  这种情况
        使它们在中断处理程序内部以及在中安全使用
        正常代码。"

    因此、GCC 生成的代码应该是可以的。 其他编译器可能会有所不同。

    如果您直接访问乘法器、比如说运行一个扩展的乘法累加运算、则您有责任对其进行保护。