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.

[参考译文] TMS570LS1224:对嵌套中断进行计数

Guru**** 2553450 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/917635/tms570ls1224-counting-nested-interrupt

器件型号:TMS570LS1224

我想动态检查我的函数是否已从 ISR 调用。

例如、在 PIC32的 FreeRTOS 端口中、您可以使用:

#define IN_ISR() uxInterruptNesting >0? 对:错 


是否有一个 TMS570特殊寄存器来计数我可以轮询的嵌套中断?

谢谢、

Gabriel

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

    加布里埃尔

    Cortex R4/5本身不支持中断嵌套。 如果确实需要嵌套中断、则需要完全由应用程序代码管理。 除了挂起中断状态标志之外、没有其他硬件机制可以帮助实现这一点。

    此致、

    Sunil

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

    本应用手册可能很有用:

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

    > Cortex R4/5本身不支持中断嵌套。  
    >除了挂起的中断状态标志外、没有其他硬件机制可以帮助解决此问题。

    我的目标是对以下问题给出布尔答案:"AM-I in an ISR now?"。

    要回答这个问题、我们是否可以轮询当前运行模式? (如果我们处于 IRQ 模式、我知道我处于 ISR 中。)


    感谢你的帮助。

    Gabriel

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

    很抱歉、我之前误解了您的问题。 当然、您可以读取 CPSR 模式位来识别您是否处于 IRQ 模式。

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

    感谢您的支持。
    对于搜索相同信息的用户、下面是使用 sys_code.h TI SDK API 的代码片段:

    uint32_t const PSR =_getCPSRValue_();
    uint8_t const 模式=(PSR 和0x1F);
    bool isInIRQ =(MODE = 18);//<请参阅 ARM Cortex-R4F 技术参考
    


    祝你度过美好的一天
    Gabriel。