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.

[参考译文] TM4C129DNCPDT:SYS/BIOS HWI 优先级设置问题

Guru**** 633105 points
Other Parts Discussed in Thread: TM4C129DNCPDT, SYSCONFIG
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1087449/tm4c129dncpdt-sys-bios-hwi-priority-settings-issue

部件号:TM4C129DNCPDT
“线程 :sysconfig”中讨论的其它部分

您好,

我在 TM4C129DNCPDT 微控制器中配置了2个 HWI。 GPIO 端口 B HWI 和 UART 5 HWI。  

当两个中断同时发生时,我面临着问题。 GPIO 端口 B 中断是对 UART 5中断的预占。 由于这个问题,UART5正在发生数据丢失。 那么如何解决这个问题呢?

我已经尝试为两个 HWI 设置优先级,但如果我设置优先级,则程序将在中间停止。

请为我提供解决此问题的解决方案。

请提前感谢。

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

    您好,Balaji,

    1)哪个外围设备被优先考虑?

    2)您是否可以共享用于配置优先级的代码?

    3)您是否尝试跟踪导致内核停止的任务?

    此致,

    拉尔夫·雅各比

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

    感谢 Ralph Jacobi 的回复,

    1.我已将0优先级分配给 UART5 HWI,而-1(默认)优先级分配给 GPIO B

    2.我已使用 SYS/BIOS cfg 窗口配置 HWI。  我没有为此编写代码。

    3.我没有跟踪任务。 跟踪该数据的过程是什么?

    我有一个疑问。 如果在处理器执行最高优先级中断(GPIO)时 UART Rx 引脚上出现任何数据,数据将丢失,或者 UART 能否在完成最高优先级中断执行后检索该数据?

    谢谢你。

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

    您好,Balaji,

    我对您的实施问题非常了解。  

    但是,首先,当 您以不同的方式设置优先级时,系统停止运行:

    1)要设置 HWI 优先级级别,您需要在 TM4C 特定级别配置该优先级。 不要在 sysconfig 中调整 TI-RTOS 内核来执行此操作。

    2) 我认为,将 TI-RTOS 中的 HWI 优先级设置为其他项可能会导致系统崩溃/停止运行,特别是在优先级为0的情况下,空闲任务和其他低优先级任务/SWI。

    现在返回到您的原始设置和问题...

    如果您没有 UART5的 SWI 或任务,则我假设您正在处理 HWI 中的 UART 数据。 这不是正确的体系结构-您需要使用 HWI 来触发要运行的任务(如通过信号)来处理数据处理。 这样,即使 GPIO 中断有时会触发,该任务也应该能够在不丢失数据的情况下运行。 我认为这里的问题是,试图在 HWI 中处理这一问题会导致问题,因为这不是应该做的事- HWI 应该非常细小,并且执行得很快。

    此致,

    拉尔夫·雅各比