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.

[参考译文] AM2434:如何设置中断优先级

Guru**** 2393725 points
Other Parts Discussed in Thread: AM2434

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1423063/am2434-how-to-set-interrupt-priority

器件型号:AM2434

工具与软件:

您好!

我的客户正在使用 tidep_01032_dual_motor_drive\single_chip_servo 的示例代码评估 AM2434。

在本示例代码中"内核0"的源代码中、将 CH1和 CH2的中断分开。

当这些中断同时被输入时、优先级是如何配置的?

是否有任何配置参数?

CH1:pruEncoderIrqHandler

Ch2:pruEncoderIrqHandler2

 

谢谢。此致、

英明

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

    还有一个问题、是否可以统一这些中断? 一个中断可以同时控制 CH1和 CH2吗?

    例如、pruEncoderIrqHandler 同时执行 CH1和 CH2的处理。

    谢谢。此致、

    英明

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

    您好、松本先生、请允许我有一些时间、因为我已经不在办公室了。 我会在一两天内回到你身边

    谢谢!

    Paula.

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

    松本山市

    这些中断的优先级由硬件决定。 较低的中断编号具有较高的优先级。  

    在"single_chip_servo.c"中搜索时、我找到了以下内容:

    CH1: hwiPrms.intNum    = ICSSG_PRU_ENDAT_INT_NUM;对应于"CSLR_R5FSS0_CORE0_INTR_PRU_ICSSG0_PR1_HOST_INTR_pend_0 (120U)"

    和 CH2: hwiPrms.intNum    = ICSSG_PRU_ENDAT_INT_NUM + 2;对应于"CSLR_R5FSS0_CORE0_INTR_PRU_ICSSG0_PR1_HOST_INTR_pend_2 (122U)"
    在 AM243x TRM 中、我看到有两个优先级级别。 通道编号和中断编号。 平均值 "pruEncoderIrqHandler"  应有较高的优先级

    谢谢!

    Paula.

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

    尊敬的 Paula:

    非常感谢您的回答。  

    您还可以帮助回答以下问题吗?

    [报价 userid="1059" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1423063/am2434-how-to-set-interrupt-priority/5454378 #5454378"]

    还有一个问题、是否可以统一这些中断? 一个中断可以同时控制 CH1和 CH2吗?

    例如、pruEncoderIrqHandler 同时执行 CH1和 CH2的处理。

    [报价]

    谢谢。此致、

    英明

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

    松本山,我认为这是另一种方式。 一个通道可以映射多个中断、我猜这里可能需要这个解决方案。 如果我误解了,请告诉我,他们正在努力实现什么,以便我们可以更好地指导他们

    谢谢!

    Paula.

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

    尊敬的 Paula:

    非常感谢您的回答。

    在我确认客户的问题后、让我修改以下问题。

    [报价 userid="1059" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1423063/am2434-how-to-set-interrupt-priority/5454378 #5454378"]

    还有一个问题、是否可以统一这些中断? 一个中断可以同时控制 CH1和 CH2吗?

    例如、pruEncoderIrqHandler 同时执行 CH1和 CH2的处理。

    [报价]

    目前、CH1中断进入 R5F0_0、而 CH2进入 R5F0_1。

    CH1:pruEncoderIrqHandler     Ch2:pruEncoderIrqHandler2

    是否可以将 CH1和 CH2中断同时输入到 R5F0_0中?

    如果可能,你能告诉他们如何修改代码吗?

    他们希望通过一个内核来控制两个通道。

    谢谢。此致、
    英明  

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

    大家好、松本先生、请允许我查看一下内部情况、然后回复给您

    谢谢!

    Paula.

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

    松本山、我们的专家之一发送了以下信息。

    有三种方法可以做到这一点:  

    1) 1)我们可以为两个轴生成相同的事件编号  

    2)我们可以对两个轴使用不同的事件编号并将其映射到同一个 INTC 通道(此处最低的 INTC 事件编号被赋予高优先级  

    服务高电平事件后、应该再次服务最低优先级的事件)  

    3) 3)我们可以对轴和不同的 INTC 通道以及相同的主机中断使用不同的事件编号(此处最低 INTC 通道编号被赋予高优先级)

    为了实现第三个案例、我们可以在"tisddf_pruss_intc_maping.h"中执行以下操作。

    e2e.ti.com/.../tisddf_5F00_pruss_5F00_intc_5F00_mapping.h


    这些是在进行更改后事件编号、通道编号、两个轴使用的主机中断编号:

    Event_18 ->通道2 ->主机中断2 -> 120 (R5F0_0)
    Event_20 ->通道4 ->主机中断2 -> 120 (R5F0_0)

    此外、请更新应用程序的 EnDAT 以对两个电机使用 hwiPrms.intNum" 120

    请告诉我们、这是否适合您客户的用例

    谢谢!

    Paula.

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

    实际上、以下内容可能不需要、因为客户的意图是在一个 R5F 内核中、在同一个 ISR 上为两个轴提供服务。

    此外、请更新应用程序的 EnDAT 以使用"hwiPrms.intNum" 120 for Both Motors

    谢谢!

    Paula.