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.

[参考译文] MSP430FR5969:嵌套中断,2嵌套时发出

Guru**** 2538930 points


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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1001193/msp430fr5969-nested-interrupt-issue-when-2-nested

器件型号:MSP430FR5969

大家好,  

我有一个应用 程序,它具有3个不同的中断源  ,它们可能会被嵌套。   我遵循了应用 程序并执行了嵌套,当 我  在 另一个(1级) 中嵌套1个中断时,它可以完美地工作

平滑。  当 我有 2个嵌套时会发生问题  :在这种情况下 ,第一个中断 (在我的情况下是 DMA), 在两个嵌套之后 ,我可以看到 我退出了所有例程,但 这个 DMA 第一个中断在程序中不再起作用...

显然, 在退出2个级别后所有标志等都已正确设置 ,但 DMA 中断不再提供服务。

请 检查什么? 有什么可能的错误?   我尝试使用较大的堆栈,但尚未找到解决方案。

 您是否有一个2级中断示例,我可以使用 它?

欢迎提出任何想法  

谢谢你  

BR
卡洛

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

    通常、CPU 不知道中断是否嵌套( ISR 中的 GIE=1)、因此首先假设它在软件中是什么。 你能发布它吗?

    我不确定我是否理解您的症状。 根据您的描述:

    1) 1)输入 DMA ISR、并设置 GIE=1

    2) 2)器件 B 中断 DMA ISR、并设置 GIE=1

    3) 3)器件 C 中断器件 B 的 ISR

    它在哪个点  

    a) ISR 返回 C->B->main,即设备 B 的 ISR 不返回 DMA ISR?

    b) ISR 返回 C->B->DMA->main,但之后 DMAIE (实际上)被禁用?

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

    您好 Bruce,  

    我们在案例 B 中, 显然 使用仿真器 ,一切看起来都不错( DMAIE 是@ 1)  ,但 它没有得到满足...有什么想法?

    要检查什么 ?   

    谢谢你  

    BR
    卡洛

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

    GIE=1和(相关) DMAIFG=1吗?

    我看到过调试器在"步进" ping 时禁用中断的情况。 尝试在下一条语句上设置断点并运行。