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.
BU 先生/女士、
客户在后台发现、在他们的板连续工作9天之后、他们基于计时器的周期性任务不再运行。
据我了解、芯片硬件内部有2个处理中断的阶段:RTI 中断生成逻辑+ VIM 中断优先级排序和处理。 满足 RTI INT 条件后、VIM IRQ STS 应置位并等待有效。
我编写了一个程序来了解硬件行为。 并且、从硬件运行来看、如果之前的 RTI INT 标志未被清除、相应的 VIM IRQ STS 将不会被置位。 为了更好地展现这一点、请参阅下图:
测试代码如下所示: e2e.ti.com/.../timer_5F00_int_5F00_not_5F00_handled.zip
我有以下想法:
1)。 出现此问题的根本原因是、当先前的 RTI INT 标志未清除时、后一个 RTI INT 将不会向 VIM 发出以设置 VIM INT STS、对吗?
2)。 将类型的属性从 Pulse 更改为 level 以解决此问题;
3)。 在 RTI 中启用定期标志清除功能来解决此问题。
请查看此问题并提供您的建议、谢谢。
Br、
将会
您好、Will、
我尝试了您提供的软件、但找不到确切的问题、我仍在处理、但我继续尝试示例、这符合预期- https://software-dl.ti.com/mcu-plus-sdk/esd/AM263X/latest/exports/docs/api_guide_am263x/EXAMPLES_KERNEL_DPL_INTERRUPT_PRIORITIZATION.html
e2e.ti.com/.../all_2D00_trace_2D00_functionality.diff
尝试通过 syscfg 更改不同计时器的中断优先级、然后了解中断和 VIM 的工作情况。
希望它有所帮助。
此致、
Aakash
尊敬的 Aakash:
用于 ClockP 软件组件的计时器的中断优先级是固定的、在 ClockP 驱动程序内、无法由 SysConfig 配置。
现在的主要问题是、为什么在最后一个中断标志未被清除后、定时器中断不能发出到 VIM。 我提供的项目是为了说明这种情况。 提交的图 I 用于演示这种情况的时序。
请帮助与设计团队确认有关此 RTI 硬件行为的问题。 我认为、对于向 VIM 发出中断、原始 RTI 中断信号应该有一个上升沿、这就是为什么如果不清除此标志、下面的中断不能向 VIM 发出中断。
在应用中、由于复杂的中断任务、例如控制环路、RTI 中断不能被及时清除是很常见的。 因此、在我看来、最好 RTI 驱动程序/ClockP 软件可以使用硬件功能-按如下所示定期清除中断标志:
此致、
将会
我没有任何额外的东西添加到这里。 您正确地理解了工作原理。
VIM 支持一个电平或者脉冲中断(并且必须相应地配置 VIM)
1.如果是水平的,那么首先源必须被清除,然后 VIM 必须被清除。 这样、VIM 将不会得到错误的额外中断
2.如果是"脉冲",那么您可以按任何顺序清除。 但 IP 必须严格生成脉冲中断。 它应该 为 VIM 生成另外一个边沿来将其注册为一个新中断。
在该示例中、RTI 生成一个级别中断。 您可以使用 RTI 的自动清零功能并使其成为一个脉冲。 或者配置 VIM、以将其视为一个电平中断。 两者的工作原理取决于您希望系统设置的方式。
此致
普里特维