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.

[参考译文] Starterware/TMS320C6748:如何在 C6748 (INT4到 INT15)中使用多个中断源对每个中断进行优先级排序?

Guru**** 2613075 points
Other Parts Discussed in Thread: TMS320C6748

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/582148/starterware-tms320c6748-how-do-i-prioritize-each-interrupt-with-multiple-interrupt-sources-in-c6748-int4-through-int15

器件型号:TMS320C6748

工具/软件:Starterware

我当前 正在尝试使用 多个中断(int4到 int15)。 正确记录所有这些中断后、如何控制每个中断的优先级? 中断的优先级是否由 INT#决定、例如 INT4、INT5、INT6、... ,INT15? 或者、我是否需要编写特定代码来 寄存每个 中断的优先级?

对于第二个问题、 在 Starterware SPI 驱动程序中、即 SPI.C、我认为 SPI TX 和 Rx 中断似乎映射到 INT1。  数据表中也有这种情况。  这个 INT1意味着中断#1吗? 我是否无法将其映射到 INT8等其他位置或 INT4和 INT15之间的某个位置?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    中断编号越低、优先级越高、例如不可屏蔽中断(NMI)=0=INT0或最高、异常=1=INT1、通过 INT15、中断编号越低。 每个优先级可被分配一个事件、例如 SPI0=37、MMCSD1=53、等等 保留的 execept INT0-INT3。

    SPIInterruptVectorGet ()的文档引用了 INT1。 这是 SPI 模块上的信号 SPINT1。 它与中断控制器中的 INT1不同。 StarterWare 使用 IntEventMap()将事件连接到中断。 SPI 示例将其称为:

    IntEventMap (C674x_MASK_INT4、SYS_INT_SPI1_INT);

    从而将 SPI 外设置于最高用户可配置优先级。 可以通过 C674x_MASK_INT15将 C674x_MASK_INT4替换为 C674x_MASK_INT4。 为其分配最低优先级、如下所示:

    IntEventMap (C674x_MASK_INT15、SYS_INT_SPI1_INT);

    参考文献:
    spruh79
    TMS320C6748 DSP 技术参考手册
    表2-1. DSP 中断映射

    sprufk5.
    《TMS320C674x DSP 超级模块参考指南》
    中断控制器
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    谢谢你、Norman。 所有问题都已明确说明。