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.

[参考译文] TMS320F28379D:中断嵌套

Guru**** 2539500 points
Other Parts Discussed in Thread: C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1338100/tms320f28379d-interrupt-nesting

器件型号:TMS320F28379D
主题中讨论的其他器件:C2000WARE
您好、TI 专家:
在我的应用中、我使用多种外设、如 ePWM、SDFM、ADC、eQEP、ECAP、 电流。 另外、我想为一些外设嵌套中断。 最大数量是多少? 这样、在执行 ISR 时不会由于多个嵌套而导致堆栈溢出。 否有限制。 哪些中断可以嵌套?
2.我将尝试 swpristaled_interrupts 示例来了解中断嵌套。 我已经阅读了文档、 https://software-dl.ti.com/C2000/docs/c28x_interrupt_nesting/html/index.html。 通过更改下面 F2837xD_SWPrioritizedIsrLevels.h 头文件中显示的 INTxPL 和 Gx_yPL 值、 可以更改优先级、自此、sw_interrupt_prioritization_logic.h 在编译期间自动生成一个掩码值。
  
我的问题是如何在以下示例中直接计算掩码值并将其分配给 IER 和 PIEIER。 您能够详细说明一下采样掩模计算。 (M_INT2、MINT2)。  
4.简单说明一下:我 使用的是软件中断嵌套、我将 ePWM 优先级设为1、ADC 优先级设为2。 如果我同时接收到两个组的中断、那么根据硬件优先级、将首先进入 ADC ISR。 但在 ADC ISR 函数内部、正如我所定义的:
IER |= 0x003; //通过调整 IER 设置全局优先级 
IER &= 0x003;(启用 ePWM 中断) 
ADC ISR 被推至堆栈、并且 EPWM ISR 现在将执行。 在执行 EPWM ISR 之后、ADC ISR 现在将继续。 我的理解是否正确? 


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

    尊敬的 Vishanth:

    在哪里可以找到 DSP28_SWPrioritizeIsrLevels.h

    在 F2837x 中、该文件会拆分为 F2837xD_SWPrioritizedIsrLevels.h (包括用户定义的优先级)和 sw_interrupt_prioritization_logic.h (包括生成掩码的代码、此文件不应由用户更新)。 此路径位于 C2000Ware_SDK\device_support\f2837xd\common\include 文件夹。

    请 ︎ 查看 E2E 主题以获取更多信息-(+) LAUNCHXL-F280049C:缺少 ePIE 文件 C2000ware - C2000微控制器论坛- C2000 μ 微控制器- TI E2E 支持论坛

    [quote userid="594997" url="~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1338100/tms320f28379d-interrupt-nesting 将使 ADC ISR 推入堆栈、并且 ePWM ISR 将立即执行。 在执行 EPWM ISR 之后、ADC ISR 现在将继续。 我的理解是否正确?

    是的、您答对了

    我将返回剩余的问题。

    谢谢

    阿斯温

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

    感谢您的答复。 请提供有关 在 网站  https://software-dl.ti.com/C2000/docs/c28x_interrupt_nesting/html/index.html 中设置掩码值(MINT、M_INT、MG21)的说明。

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

    尊敬的 Vishanth:

    您可以为 IER 分配中断屏蔽、并且可以按照中断组的优先级更新 sw_prioritized_isr_level.h 文件。

    如果您看一下中断 ex3_sw 优先级示例、计时器0、计时器1和计时器2 ISR 已定义。

    默认情况下、ISR 应先执行 timer0、然后执行 Timer1、再执行 timer2。 但是我们已经在 SW 中进行了更改以更改中断执行的优先级、详细信息显示在 sw_prioritized_isr_level.h 文件中。

     为基于软件的中断优先级生成的掩码可在 sw_interrupt_prioritization_logic.h 文件中找到、无法修改。

    谢谢

    阿斯温