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.

[参考译文] RTOS/TM4C123GH6PGE:RTOS HWI -中断标志处理

Guru**** 2463330 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/659283/rtos-tm4c123gh6pge-rtos-hwi---interrupt-flag-handling

器件型号:TM4C123GH6PGE

工具/软件:TI-RTOS

您好!

我正在 RTOS 中为 SSI1实施 HWI。
我的问题是关于中断标志。

我像这样初始化 SSI1

   SSIDisable (SSI1_base);
   SSIClockSourceSet (SSI1_base、SSI_Cock_SYSTEM);
   SSIConfigSetExpClk (SSI1_base、系统时钟频率、SSI_FRF_MOTO_MOTO_0、SSI_MODE_SLAVE、1000000、 16);
   SSIEnable (SSI1_base);
   SSIIntEnable (SSI1_BASE、SSI_RXFF | SSI_RXOR);

然后、按照 RTOS 文档、我用这个设置 HWI

   Hwi_Params HwiParams;
   Hwi_handle SSI1Hwi;
   ERROR_Block EB;

   Hwi_Params_init (hwiParams);
   ERROR_INIT (&EB);

   hwiParams.maskSetting = Hwi_MaskingOption_self;

   SSI1Hwi = Hwi_create (50、SSI1Isr、&hwiParams、&EB);
   if (SSI1Hwi =空)
      System_printf ("SSI1 Hwi 创建错误\n"\});

ISR ...
通常情况下(使用 Tivaware 而不是 RTOS 中的)位于我的 ISR 顶部
   uint32_t intFlags;
   intFlags = SSIIntStatus (SSI1_base、true);      //获取标志
   SSIIntClear (SSI1_base、intFlags);         //清除标志

然后、我将检查 intFlags 以找出导致中断的原因并采取相应的措施。

我应该使用的 RTOS 文档信息器
   Hwi_clearInterrupt (50);

1) 1)是否可以使用 Tivaware 函数来处理上述中断标志?
2) 2)如果不使用 Hwi_clearInterrupt ()、如何判断导致中断的原因(Rx、TX、RTO、Mirror)?

谢谢、
Richard


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

    您可以使用外设 driverlib 调用。 只需确保用 Hwi 而不是 driverlib 的中断模块来插入 ISR。 您可以以 TI-RTOS 中的 SPITivaDMA.c 文件为例。 它使用大量的 driverlib 调用、但使用 Hwi 模块来管理矢量表。

    供参考...上述文件中的 Mware 定义用于 Concerto 器件(不是 TM4C)的 M3侧。 外设是相同的、但 Concerto driverlib 有一些差异)。

    Todd
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢 Todd 的答复。
    恐怕我不明白"用 Hwi 插入 ISR "是什么意思。
    http://www.ti.com/tool/TI-RTOS 的何处可以找到 SPITivaDMA.c?
    此致
    Richard
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Richard、

    如果您安装 TI-RTOS、SPITivaDMA.c 位于中 /products/tidrivers_tivac_ /packages/ti/drivers/spi 目录。

    "用 Hwi"->调用 Hwi_create (或 Hwi_con构)。

    注意:以下是有关 create 和 construction 之间差异的讨论: processors.wiki.ti.com/.../TI-RTOS_Object_Creation_Comparison

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

    Richard